안드로이드 멀티 모듈(multi module) 관리는 어떻게 하면 좋을까?
최근 안드로이드 개발은 모듈에 대한 고민을 많이 하는 추세이다. 하나의 app 모듈에서 package를 분리하여 개발하던 방식에서 모듈 단위로의 분리를 시도하고 있다.
모듈 단위로 분리하여 개발하면 얻을 수 있는 이득은 무엇일까?
- 모듈 간 디펜던시 최소화로 아키텍처 적용의 용의
- DI 적용으로 유연한 개발 가능
- 단독 화면으로 테스트 가능성
등등 다양한 이유가 있을 것이다.
적절한 모듈 분리도 필요하고, 모듈을 분리하는 조건도 정해야 할 것이다.
- feature 단위로 모듈을 구분한다.
- feature 단위의 데이터 역시 함께 구분한다.
- Architecture에 따라 모듈화를 구성한다.(View-ViewModel + Model(+ Clean Architecture) + core + ui system 등)
다행히 DI가 있으니 이런 모듈이 여러 개여도 app/main 화면에서 쉽게 엮어 줄 수 있다.
이 글에서는 모듈 분리 기법을 소개하지는 않고, 모듈을 분리 시 어떤 식으로 관리하면 좋을지 소개한다.
폴더 구조를 include 하는 방식은 두 가지가 있다.
- include(“:모듈이름”)
- include(“:상위폴더:모듈이름”)
여기서는 상위 폴더 위치는 신경쓰지 않는 방식에 대해서 소개한다.
이 글에서 알아볼 내용
- 폴더 구조의 모듈을 정리해보자.
- 폴더 구조 작업 시 설정 부분을 살펴본다.
- 폴더 구조 작업 시 Android 카테고리에서도 볼 수 있는 방법 추가
- build.gradle plugin 관리 방법을 소개한다.
- 모듈 나누는 방법을 소개하지는 않는다.