Android 멀티 모듈 프로젝트

timothy jeong·2021년 11월 17일
0

Android with Kotlin

목록 보기
65/69

드로 나이츠 발표 영상

2:16 모듈이란?

모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있다. 프로젝트에서 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈이 다른 모듈을 종속성으로 사용할 수 있다. 각 모듈은 개별적으로 빌드, 테스트 및 디버그 할 수 있다.

8:00 모듈은 언제 왜, 사용하나?

여러 앱을 빌드할 때, 일부 동일한 구성 요소를 재사용할 때 유용하다.

또한 앱에 새로운 기능을 추가할때 기존 코드에 기능을 추가하려면 힘이 더 들지만, 새로운 기능을 위한 모듈을 따로 만들고, demoapp 을 만들어서 테스트하면 훨씬 쉽다. 만약 기존 앱의 domain, data 계층이 모듈화 되어있다면 기존앱의 리소스들을 그대로 가져다가 테스트할 수 있으므로 유용하다.

18:10 모듈을 나눠서 개발하는 기준

(1) 이 기능이 조금이라도 다른 앱에 이용될 수 있는 가능이성이 있을때
(2) 이 기능이 잘 된다면 별도의 앱이 될 수 있다고 생각이 될떄
(3) 이 기능이 너무 커서 demo가 실제 기능이 될 때 까지 오랜시간이 걸릴다고 판단될때
(4) 기존 앱이 너무 무거워서 개발할때 앱을 자주 빌드해서 확인하기 버거울 때

19:10 멀티 모듈의 장점

(1) 코드 재사용성이 높아진다
(2) 의존성이 적은 코드를 작성할 수 있다.
(3) 모듈 단위의 코드 수정이 용이하다.
(4) 모듈 단위 테스트를 할 수 있다.
(5) 빌드 시간 감소 가능

빌드 시간 감소 '가능'
기본적으로 빌드를 할때 변경된 모듈만 빌드하므로 빌드 시간 감소를 기대할 수 있다.
하지만! 모듈간 종속성이 복잡해지고 모듈의 수정이 많다면 빌드 시간이 증가될 수 있다. 또한 Dagger 같은 AnnotationProcessor 를 사용할때도 빌드 시간이 증가한다.

단점

(1) 하나의 앱만 있는데, 모듈을 여러개로 나눠놓으면 코드량이 더 많게 느껴진다.
(2) 해당 프로젝트를 처음보면 코드 전체를 보고 이해하기 어렵다.
(3) 위의 이유로 오히려 빌드 시간이 늘어날 수 있다.

따라서

두개 이상의 앱을 서비스 하고 있거나, 여러 개의 앱으로 분리될 경우를 대비하고 싶은 경우에 잘 변하지 않는 기능/독립적으로 구성가능한 기능을 모듈화 하는게 좋다.

profile
개발자

0개의 댓글