Multi Module로 Android Project 설계하기-1
모듈(Module)의 정의
모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있습니다. 프로젝트에는 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈이 다른 모듈을 종속 항목으로 사용할 수 있습니다. 안드로이드의 각 모듈은 개별적으로 빌드, 테스트 및 디버그 할 수 있습니다.
우리가 프로젝트를 생성하면 만들어지는 app 및 오픈 소스 라이브러리도 모듈이라고 할 수 있습니다. 여기서 드는 의문은 모듈과 라이브러리 구분하는 기준은 Android Studio 기준으로 점(.)이 찍혀있는 폴더가 앱 모듈이고, 책 모양의 폴더가 라이브러리로 볼 수 있습니다.
모듈(Module)을 언제, 왜, 기준은?
1) 여러 앱을 빌드하거나, 동일한 구성 요소를 재사용할 때 유용하다.
2) 앱에 새로운 기능을 추가할 때 demoApp을 만들어 테스트하면 훨씬 쉽다.
3) 기존 앱 내에 domain, data, buildSrc 게층이 모듈화 되어있다면 기존 앱의 리소스들을 그대로 가져다가 사용할 수 있다.
4) 기존 앱이 무거워서 개발할때, 앱을 자주 빌드해서 확인하기 버거울때 유용하다.
모듈(Module)의 장점
1) 코드 재사용성이 높아진다.
2) 의존성이 적은 코드를 작성할 수 있다.
3) 모듈 단위의 코드 수정이 용이하다.
4) 모듈 단위 테스트를 할 수 있다.
5) 빌드 시간 감소 가능
필자가 모듈을 사용하는 궁극적인 이유는 빌드 시간 감소가 가능하다는 것이다. 기본적으로 빌드를 할때 변경된 모듈만 빌드할 수 있으니, 빌드 시간 감소를 기대할 수 있다. but) 모듈간 종속성이 복잡해지고 모듈의 수정이 많다면 오히려 빌드 시간이 증가될 수 있다.
모듈(Module)의 단점
1) 하나의 앱만 있는데, 여러 모듈이 존재하면 코드량이 더 많게 느껴진다.
2) 해당 프로젝트를 처음 보면 코드 이해가 어렵다.
두 개 이상의 앱을 서비스하고 있거나, 여러 개의 앱으로 분리될 경우를 대비하고 싶은 경우에 독립적으로 구성 가능한 기능을 모듈화 하는게 좋을 것 같다.
이어서
두 번째 포스트에서는 실제 프로젝트에서 적용하는 방법과 예시를 게시할 예정이다.
Leave a comment