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