pinslog

    자정작용

    자정작용

    내가 먹은 것이 곧 나라는 말이 있듯 나의 작은 일상, 습관이 모여 곧 나라는 사람을 만든다고 생각한다. 그래서 하루하루가 어떻게 흘러가는 지에 대해 민감하게 반응하고 신경을 많이 쓰는 편인데, 요 근래 나의 일상은...아주 엉망진창이었다. 부족한 수면 시간 잦은 (자극적인 음식이 주된) 외식 스트레스 로 피부는 다 뒤집어졌고 인생 몸무게를 갱신했다. 살면서 이런 적이 어디 한 두번이었겠나? 그럴 때 마다 나는 마음을 다잡기 위해 방을 정리하고 다이어리를 챙긴다. 일상을 유지하기 위한 최소한의 루틴을 챙긴다. 그래서 이번엔 뭘 했냐면 요즘 일하면서 노션(기록)에 병적으로(?) 집착했더니 노션과는 한층 더 떨어질 수 없는 몸이 되어버렸고 이제 노션으로 개인 일정을 관리해야겠다고 마음을 먹었다. 그도 그럴 ..

    갑자기 방문자 수가 줄었다

    평일에는 하루에 못해도 50명 이상은 들어왔는데 갑자기 방문자수가 확 줄었다 10명 언저리... 검색해보니 저품질에 걸리면 그럴 수도 있다는데 하루에 한개씩 글 쓴게 문제가 될 수 있나...? 질 좋은 글을 쓰지 못했다는 걸 알고 있어서 더 반성하게 되는 것 같기도.. 흠 어렵다 어려워

    [Android] Thread.UncaughtExceptionHandler()  와 Firebase Crashlytics

    [Android] Thread.UncaughtExceptionHandler() 와 Firebase Crashlytics

    [Android] 전역적인 예외처리하기 | Thread.setDefaultUncaughtExceptionHandler상황 앱 사용 중 앱이 픽 죽어버리거나 응답 없음 창(ANR)이 뜨는 것을 경험한 적 있을 것이다. 한두번이야 왜이래~~ 하면서 다시 앱을 실행해 사용하겠지만 이러한 상황이 지속된다면? 끔찍한 사www.pinslog.com전역적인 예외 (정확하게는 잡아내지 못한 예외)를 처리하기 위해 사용중이던 Thread.UncaughtExceptionHandler() 앱이 갑자기 픽 죽어버리는 것을 방지하기 위해 해당 핸들러를 통해 오류가 발생하였음을 알리고 앱을 재시작할 수 있도록 처리를 해두었다. 그리고 원인을 파악하여 해결하기 위해 Firebase Crashlytics를 이용해 크래쉬 로그를 수집..

    드디어 쉰다

    알고리즘 마무리 짓고 내일 테스트 하러 나간다 나가면 보완해야할 것들 한바가지겠지만 일단 너무 후련하다 꼭 정리해서 블로깅해야지...

    [IDE] VSCode 새탭에서 열기

    [IDE] VSCode 새탭에서 열기

    간간히 VSCode를 사용할 일이 있는데 폴더에서 새로운 항목을 클릭할 때마다 새로운 창이 열리는 것이 아니라 기존에 열려있던 파일에 덮어씌워져 열리는 바람에 불편했던 적이 한두번이 아니었다. 파일을 열때마다 새로운 창에서 열리게 하기 위해서는 설정 > enable preview 관련 설정 두개를 해제해주면 된다.파일 오픈 시 기본 설정은 한번 클릭이 미리보기 모드 두번 클릭이 편집 모드라고 한다. 이때 미리보기 모드에서 다른 파일을 오픈할 경우 위에서 말했던 것 처럼 덮어씌워져 열린다고 한다.

    [git] 변경사항이 적용되지 않은 상태에서 다른 브랜치로 이동하기

    특정 브랜치에서 작업을 하던 중 다른 브랜치로 이동하려고 할 때 변경사항이 있으면 체크아웃할 수 없다. 그렇다고 커밋을 할 수도 없을 때git stash를 사용하면 변경사항이 숨겨진다(?) 이동한 브랜치에서 작업을 마친 후 다시 돌아와git stash apply를 입력하면 이전에 숨겨두었던 변경사항을 불러와 작업할 수 있다.

    [git] 머지 취소하기

    실수로 다른 브랜치와 병합을 해버렸다. 이때에는git reset --merge [이전 커밋 해시]를 통해 머지를 되돌리자

    이또한 지나간다는데

    곧 지나가겠지? 끝은 보일 듯 보이지 않는다.. 알고리즘 잘 짜는 사람 되고 싶어요 지도 데이터 없이 경로만으로 매칭하려고 하니 한계가 보이긴 하는데 일단은 할 수 있는 데까지 해보자 요즘엔 이거말고 아무것도 신경쓸 겨를이 없다 일상이 좀 망가지는 기분이 들긴한데 이또한 지나가겠지

    [Android] 로컬 프로젝트를 implementation하기

    [Android] 로컬 프로젝트를 implementation하기

    디바이스 방향값을 보정을 하기 위해 자료를 찾아다니던 중 좋은 소스를 발견해서 클론을 했다. 근데 버전이 너무 오래되어서 실행이 되지 않았고… 아쉬운대로 해당 레포의 리드미에 적힌 것처럼 라이브러리로 불러와 사용해보자 싶었다. 로컬 프로젝트를 불러와 사용하는 것은 처음이라 공식문서를 찾아보니 빌드 종속 항목에는 세가지 유형이 있다고 한다. 종속 항목 유형 plugins { id 'com.android.application' } android { ... } dependencies { // 로컬 라이브러리 모듈 종속 항목 implementation project(':mylibrary') // 로컬 바이너리 모듈 종속 항목 implementation fileTree(dir: 'libs', include: ['..

    [Android] EditText 바깥 영역 터치 시 키보드를 숨기기

    [Android] EditText 바깥 영역 터치 시 키보드를 숨기기

    Kotlin override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { val currentFocusView: View? = currentFocus if (currentFocusView != null && (ev?.action == MotionEvent.ACTION_UP) || ev?.action == MotionEvent.ACTION_MOVE && currentFocusView is EditText && currentFocusView.javaClass.name.startsWith("android.webkit.")) { val scored = IntArray(2) currentFocusView.getLocationOnScreen(scored) val x:..

    오늘도 알고리즘

    오후부터 알고리즘 계속 보고 있는데 여전히 오리무중 속수무책 진퇴양난 ㅋㅋ 블로그 써야하는데!!!! 매번 보는게 naver maps sdk랑 google map sdk 뿐이다 이것들이라도 정리해서 올려두면 도움이 되려나... 고민이 되는군

    [Kotlin] 함수 탈출하기

    지난 글에서 반복문을 탈출한 것 처럼 함수도 탈출할 수가 있다. 우린 그걸 return 이라고 부르지... 마찬가지로 함수에도 라벨을 지정할 수 있을까? val human = Human("홍길동", "1995-01-01", Hobby("골프", "운동")) human.hobby?.let { hobby -> if (hobby.type == "운동") { println("${human.name}(은/는) ${hobby.name}(을/를) 즐겨한다.") } println("${human.name}의 취미는 ${hobby.name}이다.") } println("${human.name}(은/는) ${human.birth}에 태어났다.") // 홍길동(은/는) 골프(을/를) 즐겨한다. // 홍길동의 취미는 골프이다..