💡 Intro 이전 안드로이드 위치정보 가져오기 글에서는 LocationManager에 대한 내용만 있다. 사실 LocationManager 보다는 더 정확한 위치 정보를 제공해주는 FusedLocationProviderClient를 사용하고, 이전 글에 같이 정리했었지만 계속 내용이 추가되면서 글이 자꾸 길어져서 읽기 편하게(?), 혹은 분량을 보고 뒤로가기를 클릭하지 않도록 하기 위해 분리를 했다. LocationManager가 궁금하다면 아래 링크를 따라 이동해도 된다. 안드로이드 위치정보 가져오기 - LocationManager 💡 Intro 현재 진행하고 있는 프로젝트는 위치를 기반으로 하는 프로젝트다. 때문에 필수로 위치 정보를 가져와야 한다. 네이버맵 혹은 카카오맵에서 반환되는 값으로부터 간..
💡 Intro 서버에 이미지 파일을 업로드 하는 기능은 이전에 구현해본적 있기 때문에 수월하게 잘 할 수 있을 것이라고 생각했다. 그런데 생각보다 헷갈리고 모르는 것이 많더라. 딱 한 번 쓰고 기억을 하겠다는 것도 욕심이겠지만 처음하는 것과 다름없을 정도로 기억이 안나니 당황스럽다. 그 당시에는 기능이 정상동작하면 오! 된다! 하고 지나갔었는데 아마 그래서이지 않을까? 하지만 이번에는 그 때와는 다르게, 구현하면서 얘는 왜 이렇게쓰지? 쟤는 왜 이렇게쓰지? 이놈은 되고 저놈은 왜 안되는거야😩 와 같은 궁금증들이 계속 생겼고, 이 궁금증을 해결하고 싶어 상당히 많은 시간을 투자했다. 이번에 알게된 내용이 꽤나 많아서 정리하는 시간을 갖고 나중에 봐도 단번에 기억날 수 있기를 바라며 글을 시작한다. ❓ Mu..
레벨 3에서 진행한 예외처리 적용기 💡 Intro https://krrong.tistory.com/entry/예외처리 위 글을 작성하며 프로젝트에서 예외처리를 어떻게 하면 잘 할 수 있을까 고민을 많이 했고 제이슨의 도움으로 이론적인 해결의 실마리를 찾았다. 이 krrong.tistory.com 아래 내용을 적용한 글의 내용이 궁금하다면 참고해보자. 💡 제이슨의 특급강의 ❓ 나의 질문 현재 오류처리에 대해 진행하고 있다. 서버에서 http 응답 코드 4xx대로 내려주는 응답들이 body를 가지고 있고, 이 body는 각각 서버에서 정의한 errorCode와 message를 가지고 있는 형태다. ex) { errorCode : 2xx, message : messageString } 이전에 제이슨이 말씀해주..
💡 Intro 3주차 데모데이 권장 요구사항은 Firebase 연동과 Firebase Analytics, Crashlytics 등 모니터링 환경 구축, Log 설계 이렇게 세 개가 주어졌다. 지난 글에서 Firebase 연동에 대해 정리했으니 이번 글에서는 Analytics, Crashlytics를 이용한 모니터링 환경 구축하는 방법과 Log 설계에 대해 정리하려고 한다. Analytics, Crashlytics를 이용하는 방법은 크게 어렵지 않다. 이것보다는 Log를 어떻게 설계해야 하는지가 굉장히 고민되었다. 그래서 처음부터 로그를 완벽하게 설계한다는 것은 불가능하다고 생각하기 때문에 어느정도 기반만 잡아놓고 앱을 운영하면서 필요성을 느끼면 반영하고 수정하기로 했다. ❓ 로깅 이벤트는 Firebase..
💡 Intro 3주차 데모데이 권장 요구사항으로 Firebase와 연동과 Firebase Analytics, Crashlytics 등 모니터링 환경 구축, Log 설계 이렇게 세개가 주어졌다. 아마 결국 사용자의 행동 사항이나 앱의 문제에 대한 모니터링을 어떻게 진행할 것이고 어떤 상황에 어떤 로그를 남겨 확인할 것인지의 전략을 정하라는 것이 아닐까 생각한다. 이번 글에서는 앱과 Firebase를 연동하는 방법에 대해 정리하려고 한다. ❓ ADB 설치 및 환경변수 설정 Android Debug Bridge (ADB)는 안드로이드 기기와 컴퓨터 간의 통신을 위한 도구다. 기본적인 개념은 Unix Shell에 대한 접근을 제공하는 클라이언트-서버 프로그램이라고 할 수 있다. ADB는 안드로이드 디바이스와 상..
💡 Intro 현재 진행하고 있는 프로젝트는 위치를 기반으로 하는 프로젝트다. 때문에 필수로 위치 정보를 가져와야 한다. 네이버맵 혹은 카카오맵에서 반환되는 값으로부터 간편하게 좌표를 받아올 수 있다. 네이버맵 혹은 카카오맵을 사용하는 액티비티에서 API를 이용하여 가져오는 방법이다. 하지만 우리는 지도를 사용하지 않는 뷰에서도 위치 좌표가 필요했고, 이 때는 위치 정보를 어떻게 받아올 수 있을까 고민했다. 현재 해결한 방법은 LocationManager를 이용한 방법이며 글을 정리하려고 더 자세하게 찾아본 결과 google-play service를 사용한다면 더 정확하고 효율적으로 위치 정보를 받아올 수 있을 것으로 예상된다. 일단은 사용했던 LocationManager에 대해 기록하고, 4주차 데모데..
💡 Intro 지금까지 다른 사람과 협업을 해본 적이 없다. 개인 프로젝트만 진행했었고, git의 리포지터리 역시 혼자만 사용했었다. 그러니 git은 단지 코드를 올려놓는 곳으로만 사용했고, 명령어도 push와 pull만 사용했다. 이번에 우테코에서 프로젝트를 하면서 한 리포지터리를 팀이 같이 사용하게 되었고, git의 히스토리를 관리하는 것이 중요해졌다. fetch가 무엇인지, 언제 사용하는지 그리고 fetch와 pull의 차이는 무엇인가에 대해 알아보자. ❓Git이 커밋을 구성하고 저장하는 방식 일단 git이 커밋을 어떻게 구성하고 있고 저장하는지에 대해 간단하게 알아보자. 어떻게 보면 꼭 알아야 하는 내용은 아닐 수 있다. 그런데 나는 찾아보다보니 이것도 재밌어서 알아보게 되었다. Git git은 ..
🔥 기능요청 PR 시나리오 1. remote 리포지터리를 로컬로 clone 해온다. 2. pull 을 해서 상태를 최신화한다. 3. 개인 로컬에서 feat/#이슈번호 브랜치를 생성한다. 4. 기능 구현을 완료한 뒤 origin에 새로운 브랜치(현재 작업하고 있는 같은 이름의 브랜치)를 생성하고 push 한다. 5. origin에 있는 feat/#이슈번호 브랜치를 dev로 Pull Request를 보낸다. (같은 분야의 크루를 모두 리뷰어로 등록) 6. 리뷰어는 리뷰를 마친 뒤 수정할 사항이 없는 경우 approve 한다. 7. 마지막 approve를 한 리뷰어는 squash merge를 한다. 1. remote 리포지터리를 로컬로 clone 해온다. 이 때 우리 리포지터리의 default 브랜치는 dev..