안녕하세요 오늘은 Android 개발에서 프로젝트를 체계적으로 관리하기 위해 꼭 알아야 할 개념, Module과 Multi-Module에 대해 알아보겠습니다.
Module
Module은 하나의 독립적인 코드 단위이다.
모듈은 독자적인 build.gradle.kts
파일을 가지고 있고, 독립적으로 빌드하거나 테스트할 수 있다.
- Application Module: 최종 앱 실행용 모듈 (com.android.application)
- Library Module: 코드나 리소스를 제공하는 모듈 (com.android.library)
- Java/Kotlin Library Module: 안드로이드 의존성이 없는 Java 또는 Kotlin 기반 모듈
Module 만드는 법
new -> module을 누르고
Templates에서 하나를 고른 후 Finish를 누르면 끝난다.
Multi-Module
Multi-Module은 프로젝트를 여러 개의 작은 모듈로 나누어 구성하는 방식이다. 대규모 프로젝트에서는 여러 모듈로 나누어 관리하는 것이 빌드 속도와 유지보수 측면에서 매우 유리하다.
Multi-Module의 장점
- 빌드 속도 최적화: 필요한 모듈만 다시 빌드할 수 있어서 전체 빌드 시간을 줄일 수 있다.
- 유지보수성 향상: 기능별로 모듈을 분리하여 수정할 때 다른 부분에 미치는 영향을 최소화한다.
- 협업 효율성: 여러 명의 개발자가 동시에 작업할 수 있어 협업 하기 더 편하다.
- 코드 재사용성: 여러 프로젝트에서 공통으로 사용할 수 있는 코드나 기능을 모듈화하면 재사용성이 높아진다.
Multi-Module 단점
- 초기 설정 복잡도: 프로젝트를 여러 모듈로 나누는 초기 설정이 복잡하고 시간이 걸릴 수 있다.
- 모듈 간 의존성 관리: 모듈 간 의존성을 잘못 설정하면 순환 의존성 문제가 발생할 수 있다.
- 빌드 시간 증가: 의존성이 많아지면 전체 빌드 시간이 길어질 수 있으며, 빌드 최적화가 필요하다.
- 디버깅 어려움: 여러 모듈 간의 상호작용에서 문제가 발생하면 디버깅이 더 복잡해질 수 있다.
예시 구조
```
project-root/
│
├── app/ // 최종 Application 모듈
│
├── core/ // 공통 기능 모듈
│ ├── core-ui/ // 공통 UI 컴포넌트
│ ├── core-network/ // 공통 네트워크 처리
│ ├── core-model/ // 공통 데이터 모델
│
├── feature/ // 기능별 모듈
│ ├── feature-login/ // 로그인 화면
│ ├── feature-home/ // 홈 화면
│
│
└── build.gradle (root)
```
'android' 카테고리의 다른 글
Android TextField에서 사용하는 VisualTransformation (0) | 2025.05.07 |
---|---|
Android clickable (0) | 2025.04.25 |
Android build-logic (0) | 2025.04.14 |
Android Okhttp (0) | 2025.04.08 |
Android Interceptor (0) | 2025.04.01 |