728x90

 

 

개요

이전 프로젝트를 진행하면서 멀티모듈 구조의 프로젝트를 경험했습니다. 그러나 그 당시에는 멀티모듈에 대해 깊이 이해하지 못했던 부분이 많았습니다. 그래서 이번 글에서는 멀티모듈 구조의 이론 중점으로 정리하고자 합니다.

 

멀티 모듈이란?

멀티모듈(Multi-Module)하나의 프로젝트여러 개의 모듈로 나누어 관리하는 구조를 의미합니다.


각 모듈은 독립적으로 개발빌드가 가능하지만, 필요에 따라 다른 모듈들과 의존성을 공유하거나 통합하여 하나의 애플리케이션으로 동작하게 만듭니다.

 

멀티 모듈의 특징

1. 모듈 단위 관리

 

  • 코드, 테스트, 의존성 등을 모듈별로 분리하여 독립적인 관리가능.
  • 예: user, product, order 모듈로 나누어 관리.

 

2. 의존성 공유

 

  • 공통 로직하나의 모듈로 만들고, 다른 모듈에서 이를 재사용 가능.
  • 예: common 모듈을 만들어 모든 모듈에서 사용.

 

3. 빌드 통합

  • 전체 프로젝트는 하나의 빌드 툴(Gradle/Maven)로 관리하지만, 각 모듈은 개별 빌드 가능.

4. 구조적 분리

  • 각 모듈은 별도의 책임을 가지며, 높은 응집도낮은 결합도를 유지.

 

멀티 모듈을 사용하는 이유

1. 유지보수성 향상

  • 모듈별로 코드를 관리하므로 특정 모듈의 변경이 전체 프로젝트영향을 최소화.

2. 재사용성 증가

  • 공통 로직이나 유틸리티별도 모듈로 만들어 다른 프로젝트에서도 쉽게 사용 가능.

3. 개발 효율성

  • 모듈 단위로 개발자가 나누어 작업할 수 있어 협업에 유리.

4. 빌드 시간 단축

  • 변경된 모듈만 빌드하면 되므로 빌드 시간이 줄어듦.

멀티 모듈의 단점

 

  • 복잡성 증가
    • 모듈 간 의존성 관리 및 설정이 복잡해질 수 있음.
  • 초기 설정 부담
    • 멀티모듈 프로젝트를 설계하고 구성하는 데 시간이 소요됨.
  • 의존성 문제
    • 모듈 간 순환 의존성이 발생할 경우 해결이 어려움.