728x90
개요
이전 프로젝트를 진행하면서 멀티모듈 구조의 프로젝트를 경험했습니다. 그러나 그 당시에는 멀티모듈에 대해 깊이 이해하지 못했던 부분이 많았습니다. 그래서 이번 글에서는 멀티모듈 구조의 이론 중점으로 정리하고자 합니다.
멀티 모듈이란?
멀티모듈(Multi-Module)은 하나의 프로젝트를 여러 개의 모듈로 나누어 관리하는 구조를 의미합니다.
각 모듈은 독립적으로 개발 및 빌드가 가능하지만, 필요에 따라 다른 모듈들과 의존성을 공유하거나 통합하여 하나의 애플리케이션으로 동작하게 만듭니다.
멀티 모듈의 특징
1. 모듈 단위 관리
- 코드, 테스트, 의존성 등을 모듈별로 분리하여 독립적인 관리가 가능.
- 예: user, product, order 모듈로 나누어 관리.
2. 의존성 공유
- 공통 로직을 하나의 모듈로 만들고, 다른 모듈에서 이를 재사용 가능.
- 예: common 모듈을 만들어 모든 모듈에서 사용.
3. 빌드 통합
- 전체 프로젝트는 하나의 빌드 툴(Gradle/Maven)로 관리하지만, 각 모듈은 개별 빌드 가능.
4. 구조적 분리
- 각 모듈은 별도의 책임을 가지며, 높은 응집도와 낮은 결합도를 유지.
멀티 모듈을 사용하는 이유
1. 유지보수성 향상
- 모듈별로 코드를 관리하므로 특정 모듈의 변경이 전체 프로젝트에 영향을 최소화.
2. 재사용성 증가
- 공통 로직이나 유틸리티를 별도 모듈로 만들어 다른 프로젝트에서도 쉽게 사용 가능.
3. 개발 효율성
- 모듈 단위로 개발자가 나누어 작업할 수 있어 협업에 유리.
4. 빌드 시간 단축
- 변경된 모듈만 빌드하면 되므로 빌드 시간이 줄어듦.
멀티 모듈의 단점
- 복잡성 증가
- 모듈 간 의존성 관리 및 설정이 복잡해질 수 있음.
- 초기 설정 부담
- 멀티모듈 프로젝트를 설계하고 구성하는 데 시간이 소요됨.
- 의존성 문제
- 모듈 간 순환 의존성이 발생할 경우 해결이 어려움.
728x90
개요
이전 프로젝트를 진행하면서 멀티모듈 구조의 프로젝트를 경험했습니다. 그러나 그 당시에는 멀티모듈에 대해 깊이 이해하지 못했던 부분이 많았습니다. 그래서 이번 글에서는 멀티모듈 구조의 이론 중점으로 정리하고자 합니다.
멀티 모듈이란?
멀티모듈(Multi-Module)은 하나의 프로젝트를 여러 개의 모듈로 나누어 관리하는 구조를 의미합니다.
각 모듈은 독립적으로 개발 및 빌드가 가능하지만, 필요에 따라 다른 모듈들과 의존성을 공유하거나 통합하여 하나의 애플리케이션으로 동작하게 만듭니다.
멀티 모듈의 특징
1. 모듈 단위 관리
- 코드, 테스트, 의존성 등을 모듈별로 분리하여 독립적인 관리가 가능.
- 예: user, product, order 모듈로 나누어 관리.
2. 의존성 공유
- 공통 로직을 하나의 모듈로 만들고, 다른 모듈에서 이를 재사용 가능.
- 예: common 모듈을 만들어 모든 모듈에서 사용.
3. 빌드 통합
- 전체 프로젝트는 하나의 빌드 툴(Gradle/Maven)로 관리하지만, 각 모듈은 개별 빌드 가능.
4. 구조적 분리
- 각 모듈은 별도의 책임을 가지며, 높은 응집도와 낮은 결합도를 유지.
멀티 모듈을 사용하는 이유
1. 유지보수성 향상
- 모듈별로 코드를 관리하므로 특정 모듈의 변경이 전체 프로젝트에 영향을 최소화.
2. 재사용성 증가
- 공통 로직이나 유틸리티를 별도 모듈로 만들어 다른 프로젝트에서도 쉽게 사용 가능.
3. 개발 효율성
- 모듈 단위로 개발자가 나누어 작업할 수 있어 협업에 유리.
4. 빌드 시간 단축
- 변경된 모듈만 빌드하면 되므로 빌드 시간이 줄어듦.
멀티 모듈의 단점
- 복잡성 증가
- 모듈 간 의존성 관리 및 설정이 복잡해질 수 있음.
- 초기 설정 부담
- 멀티모듈 프로젝트를 설계하고 구성하는 데 시간이 소요됨.
- 의존성 문제
- 모듈 간 순환 의존성이 발생할 경우 해결이 어려움.