무엇을 작업 했는가?
- 프로젝트를 세팅했습니다. 필요하다고 생각되는 의존성들을 추가했습니다.
- 프로젝트에서 아키텍처를 어떻게 할까. 이 기술을 사용할까 사용하지 말까 고민하는 시간을 보냈습니다.
- 어떤 기술을 사용할지 결정하기 못해 일정이 딜레이 됐습니다.
- auth와 관련된 repository, data source, usecase 등을 작업했습니다.
좋았던 점
- 오랜만에 객체 지향 코드를 보니 재미있습니다.
- 어떤 기술을 사용해야 하는가? 에 대해서 깊게 생각할 수 있는 시간이었습니다. 네트워크 통신 사용시 rx와 코루틴 중에 고민했었는데 결국 rx를 걷어내고 코루틴을 사용하기로 했습니다. 원래 rx를 사용하려던 이유는 익숙하다는 이유도 있지만 테스트 코드를 작성할 때 정말 편하기 때문이었습니다. 하지만 use case에서 rx에 의존해서 로직을 짜려고 하니, 하나의 라이브러리에 너무 의존하는 것 같아 코루틴 사용을 고민했습니다. 또한 여러 옵저버블을 사용하는 과정에서 데이터가 꼬일 것 같다고 생각했습니다. 결국 rx를 걷어내고 use case 부분을 퓨어한 코틀린으로만 이루어져 있도록 유지하는 것이 좋을 것 같아 코투틴을 도입하도록 결정했습니다.
- 아키텍처에 대해서도 다시 한번 공부할 수 있게 되었습니다. 처음에는 가볍게 하려고 했었는데 viewModel이 너무 무거워지는 것 같아 분리하고 분리하다 보니 use case까지 있는 아키텍처를 구성하게 되었습니다. 덕분에 rx도 걷어낼 생각 하고..ㅎ
아쉬운 점
- 너무 오랜만에 안드로이드를 만지다 보니 버벅 거림이 많은 것 같습니다.
- 기본 환경으로 빌드하니 스플래시 화면에 생겨 당황스러웠습니다. 찾아보니 안드로이드 12부터 스플래시 API를 강제한다는 사실을 알게 되었습니다. 스플래시 화면 디자인을 이미 작업해놔서 이거를 버려야 하나 마나 고민했습니다. 결론은 안드로이드에서 보여주는 스플래시를 보여주고, 제가 디자인한 스플래시 화면도 보여주는 것으로 결정했습니다. 결정적인 이유는 디자인한 스플래시 화면을 사용하고 싶어서 입니다ㅎ… 굳이 또 이유를 붙이자면 스플래시 화면에서 로그인 여부 확인 및 자동 로그인을 진행할 계획이 있었지만 이건 스플래시 API에서도 할 수 있으므로 결정적인 이유가 되진 않았습니다. 제가 스플래시 화면을 로고만 있는 화면으로 디자인했으면 스플래시 API를 사용했을 것 같습니다.
앞으로 계획
- 게으름 + 어떤 기술을 사용할까에 대한 끊임없는 고민으로 이번주 계획한 내용들을 구현하지 못했습니다. 아마 틀이 잡히면 금방 구현할 것 같긴 하지만 열심히 만들어야 겠습니다.
- 사실 어제까지 고민해서 오늘 rx를 다 걷어내야 합니다.
- 이슈에 있는 태스크들 처리하고 노션에 프로젝트 정리를 시작해야겠습니다.