Etc

멀티 모듈을 사용하는 이유

SuperDT 2024. 12. 29. 23:17

 

기업에서 Springboot로 작업을 할 경우,

멀티 모듈로 구성하는 경우가 대부분입니다

멀티 모듈로 구성하는 이유에 대해서 간단하게 살펴봅시다

 

  • 공통 코드와 서비스(도메인)를 명확하게 분리하여 재사용성 향상
  • 체계적인 프로젝트 관리에 용이
  • 도메인/기능별 코드 분리
    • core, api, batch, admin 등 기능별/레이어별 모듈로 구성
    • 핵심 비즈니스 로직(도메인)과 외부 연동, UI 관련 로직(API, Admin) 등을 분리하여 유지보수성 향상
  • 공통 코드 재사용
    • 공통 라이브러리(공통 유틸 클래스, DTO, 예외 처리, 로깅 설정 등)를 common이나 core 와 같이 별도의 모듈로 분리
    • api나 batch 같은 여러 서비스 모듈 에서 공통 모듈을 의존하는 구조로 재사용성 극대화
  • 독립적인 빌드 및 배포
    • 서비스별로 별도의 Jar, War 등 아티팩트를 만들어 배포 가능
    • 특정 모듈에서 변경사항이 있더라도, 필요한 모듈만 선택적으로 빌드/배포 가능하며 CI/CD 구성 시 유리
  • 유지보수/확장성
    • 프로젝트가 커지더라도 모듈 단위로 코드를 파악하기 쉬움
    • 각 모듈 간 의존성이 명확해지고, 변경 사항이 모듈 내부로 최대한 캡슐화되어 사이드 이펙트를 줄임
  • 협업 효율성
    • 여러 팀이 협력해야 할 경우 모듈 단위로 작업을 분할할 수 있음
    • 팀마다 담당하는 모듈을 명확히 분리하여 충돌 감소
  • 버전 관리 및 호환성
    • 공통 모듈의 버전을 별도로 관리할 수 있어, 신규 기능 추가나 레거시 코드 마이그레이션 시 유리