본문 바로가기
프로그래밍/안드로이드

[Android] 안드로이드 멀티모듈 (Multi-Module) 의 정의와 사용 이유를 알아보자

by dev_gyu 2024. 9. 28.
728x90

이 글을 읽기 전 이전 포스팅인

2024.09.26 - [프로그래밍/안드로이드] - [Android] 안드로이드 클린 아키텍처 (Clean Architecture) 에 대해서 알아보자 를 참고한다면 이해 및 응용에 도움이 될 수 있으니 참고 부탁드립니다.

 


들어가며

  • Android Studio, Eclipse, Django, Spring 등 여러 개발 툴을 통해 프로젝트를 생성할때는 아무리 작은 프로젝트라도 여러 파일이 생기기 마련이다. 물론 이것이 작은 프로젝트일경우 양이 많지 않아 신경을 쓰지 않아도 되겠지만, 인스타그램이나 구글 같은 대기업들이 가진 프로젝트 내부 파일의 양은 어마어마 할 것이다.
  • 다른 곳들은 잘 모르겠지만 안드로이드의 경우 한 모듈에서 수정사항이 생기면 그 모듈에 대해 새롭게 빌드를 한다. 물론 캐시가 존재하긴 하지만, 빌드 과정에서 오랜 시간이 걸리는게 문제다.
  • 이외에도 단일 모듈을 사용할 경우의 여러 문제점들이 있지만 멀티 모듈을 사용하는 이유는 간략하게 설명하겠다.

 

멀티 모듈 사용 이유

  1. 빌드 시간 단축
    • 위에서 말했듯 A 모듈에서 수정사항이 생기면 해당 모듈은 이전 캐싱을 재사용하고, 바뀐 부분만 바꾸어 준 후 빌드를 진행한다
    • 이런 말은 멀티 모듈일 경우 새롭게 빌드를 진행해야하는 모듈의 수가 줄어들기에 빌드 시간이 줄어든다는 의미이다.
    • 멀티 모듈을 사용할경우 추가적으로 각 모듈이 독립적으로 빌드될 수 있기 때문에 시간이 더 줄어든다.
  2. 관심사를 분리하고 서로 간의 간섭을 제한하기 위해서 사용한다
    • 만약 A Project 에 모듈이 a 한개라면 모든 파일들은 이 a 라는 모듈에 집어넣어지기 때문에 a 모듈은 혼자서 방대한 파일들을 관리해야한다
    • 이때 여기서 사용하는 클래스, 함수들이 어떤 것은 Network 통신, 어떤 것은 UI, 어떤 것은 테스트 .. 등등 서로가 얽힐 경우 복잡성이 무척 방대해진다.
    • 이로 인해 서로 다른 모듈을 사용하여 그에 맞는 파일들을 집어넣어주고 관리하면 추후 시스템에 추가적으로 필요하거나 수정되어야 하는 파일을 찾기가 쉬워진다.
  3. 다른 프로젝트에 활용하기 쉬워진다
    • 공통 기능이나 서비스를 별도의 모듈로 분리함으로써 다른 프로젝트에서 필요한 부분만 갖다가 쓸 수 있다
  4. 각 모듈별로 테스트가 가능해진다
    • 하나의 모듈로 사용할때는 관심사가 여럿인 파일들이 많아 테스트가 어렵지만, 관심사 별로 모듈을 분리하니 자신의 테스트가 필요한 모듈만 테스트가 가능해진다.
728x90