멀티 모듈은 하나의 큰 소프트웨어 프로젝트를 독립적인 기능을 수행하는 여러 개의 작은 모듈 단위로 나누어 관리하는 구조를 말합니다.

  • 패키지 vs 멀티모듈: 빌드 경계
  • 멀티모듈 vs MSA: 프로세스·배포 단위의 경계

예를 들어 API 서버, 배치 프로그램, 공통 도메인 모듈을 분리하고 필요한 의존성만 연결할 수 있습니다. 이렇게 하면 모듈 간 의존 관계가 명확해지고, 공통 코드를 재사용하기 쉬우며, 모듈별 테스트와 배포 범위를 관리하기 편해집니다. 여러 실행 애플리케이션이 같은 도메인 코드를 사용할 때 특히 유용합니다. 다만 모듈을 너무 잘게 나누거나 공통 모듈에 모든 코드를 몰아넣으면 오히려 의존성이 복잡해집니다. 따라서 변경 이유와 책임을 기준으로 경계를 나누고, 순환 의존을 피해야 합니다.