반응형
app modularization
Summary (요약)
- 이전에 제시한 앱 모듈화 설계에서 이슈가 될만한 요소들을 해소 하면서 새로운 앱 모듈화를 제시합니다.
Background (문제점)
- core 모듈에서 repository 패턴을 넣는다면 결국엔 해당 repository 를 사용하는 여러 feature 에서 “변화” 가 생긴다면 유지보수단에서 소스 충돌에 대한 이슈는 필연적으로 발생하게 됩니다.
Solution (해결책)
- feature 모듈들은 core 모듈을 의존하지만, 최소한으로 의존을 두면서 각 feature 에게 “독립성” 을 부여합니다.
- core 모듈은 feature 에서 주로 사용되는 network, local 라는 데이터 소스를 최소한으로 사용할수 있는 클래스로만 모듈화를 하고 feature 에서 API Service, Data Model 를 각각 따로 두면서 “소스 충돌” 에 대한 이슈를 해소합니다. ex.) :core → Retrofit
AS-IS | TO-BE |
---|---|
![]() |
![]() |
Issue Point (이슈)
- 해당 방식대로 유지보수를 하게 되면 중복된 API Service 를 사용하게 되고 그만큼 보일러플레이트 코드가 많아집니다. API 가 자주 변경되는 서비스에서는 장점일지 몰라도 자주 변경되지 않는 서비스에서는 오히려 단점일수 있습니다.
회고
- 이전 설계 방식도 그렇고 지금 설계방식도 그렇고 개인 공부로만 설계를 해본거라 실제 서비스에 적용을 안했다는게 가장 큰거 같습니다.
- 하지만, 이전 설계 방식과 지금 제시한 설계방식에서의 공통점은 “소스 충돌 해소”, “빌드 최적화” 를 하기 위한 방식이기 때문에 디테일한 방식은 “환경”에 따라 변경하면 될거 같습니다.
관련 링크
반응형
'android' 카테고리의 다른 글
Android Compose 분석 1부 (2) | 2024.06.02 |
---|---|
[안드로이드] 갤러리 라이브러리 소개 (0) | 2023.01.03 |
[안드로이드] RecyclerView 공통 어댑터 개편기 (0) | 2022.12.25 |
[안드로이드] Fastlane & Google Play 배포 환경 구축 해보기 (1) | 2022.10.03 |
[안드로이드] 앱 테스터에 자동 배포 도전해보기! (1) | 2022.09.29 |