android

[안드로이드] 앱 모듈화 그 두번째 이야기

sieunju 2023. 3. 27. 23:14
반응형

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
AS-IS TO-BE

Issue Point (이슈)

  • 해당 방식대로 유지보수를 하게 되면 중복된 API Service 를 사용하게 되고 그만큼 보일러플레이트 코드가 많아집니다. API 가 자주 변경되는 서비스에서는 장점일지 몰라도 자주 변경되지 않는 서비스에서는 오히려 단점일수 있습니다.

회고

  • 이전 설계 방식도 그렇고 지금 설계방식도 그렇고 개인 공부로만 설계를 해본거라 실제 서비스에 적용을 안했다는게 가장 큰거 같습니다.
  • 하지만, 이전 설계 방식과 지금 제시한 설계방식에서의 공통점은 “소스 충돌 해소”, “빌드 최적화” 를 하기 위한 방식이기 때문에 디테일한 방식은 “환경”에 따라 변경하면 될거 같습니다.

관련 링크

반응형