앱에서 로그를 넣는것은 개발하면서
특정 값의 검증이나 추적하고 싶을 때
잠깐 넣는 경우가 대부분 아닐까 라는 생각을 할 수 있습니다.
또한 서비스의 규모가 작으면 앱 로그의 필요성을 느끼지 못 할 수 있는데요.
그런데 서비스의 규모가 조금씩 커지고 있으면 어떨까요?
이럴 때 서버 혹은 클라이언트에서 단독으로 데이터를 보거나 문제를 해결하기보다
🔥빠르게 찾기 위해서 같이 데이터를 봐야하는 경우가 대다수 입니다.🔥
이럴 때 앱(클라이언트) 입장에서 로그를 설정하지 않으면
빈번하게 들어오는 확인 요청에 코드를 넣고 확인하는 과정은
리소스가 매우 많이들 수 밖에 없습니다.
경험상 요청 및 확인이 빈번한 데이터를
기준으로 하면 좋았습니다.
앱에서 HTTP Log를 보여주기 위한 구현 플로우
위와 같은 플로우로 구현하여 첨부한 파일처럼
HTTP Log를 볼 수 있게 설정 했습니다.
앱에서 데이터를 tracking할 때 저희는 Amplitude를 사용하는데
이벤트 & 데이터가 잘 전송되었는지 확인하기 위해서는
매번 Amplitude > 로그인 > Lookup Page 에서 확인해야 했습니다.
또한 앱에서 어느 시점에 어떤 데이터를 보냈는지
확인 요청도 또한 종종 있었습니다.
이에 Amplitude도 Log 시스템을 만들어 쉽게 볼 수 있게 만들었습니다.
플로우는 다음과 같습니다.
위와같은 플로우로 개발하여 첨부한 파일처럼
Amplitude Log를 볼 수 있게 설정 했습니다.
컴포즈로 웹뷰를 구현하고 있어서
웹뷰 컴포넌트 내에서 로그를 설정했고
기본적으로 어떤 url이 호출됐는지 보여주고
헤더가 존재한다면 헤더를 같이 볼 수 있게 설정 했습니다.
Push는 앱이 실행중일 때와 실행중이지 않을 때가 있어
이를 classInfo 에서 상태를 확인하고
나머지는 RemoteMessage의 구조를 그대로 가져와서
볼 수 있게 설정 했습니다.
(Push 컨텐츠도 곧 올려보겠습니다 🌱)
구현은 어려운 부분이 아니라서
자세한 설명보다는 컨셉(?)과 틀을
어떻게 잡으면 좋을지와 로그에 필요성에
집중하여 블로그를 썼습니다.
이는 안드로이드에서 로그에 포스트가 거의 없고
어느정도 규모가 있는 회사 또는 사수가 없다면
알 수 없는 인사이트라 정리 및 공유의 느낌으로
봐주시면 좋을 것 같습니다.
더 좋은 방법이 있다면 추가하여 업데이트 하겠습니다.
(피드백은 언제나 환영입니다 🙇🏻♂️)
이직 후 온보딩 기간에
작업했던 로그 시스템 작업 티켓을 올리며
블로그 마치겠습니다.