android

Android Module & Multi-Module

Seon Dev Notes 2025. 4. 29. 13:46

안녕하세요 오늘은 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