SW마에스트로에서 개발할 프로젝트에 멀티 모듈을 적용할지 고민이 생겼습니다.
이번에는 멀티모듈에 대해서 간단하게 알아보는 글을 작성하고자 합니다.
먼저 모듈이란?
모듈은 프로그램을 기능 별로 분할한 논리적인 일부분이다.
여러 기능을 모아둔 코드 조각이라고 이해하면 될 듯하다.
자바에서 모듈은 독립적으로 배포될 수 있는 코드의 단위이다.
그래서 멀티 모듈이란?
멀티모듈은 쉽게 여러개의 모듈을 구성한 것으로 보면 되는 데
여기서, 멀티모듈을 만든다는 것은 상호 연결된 여러개의 모듈로 구성된 프로젝트를 의미한다.
멀티 모듈을 사용하는 이유!
단일 모듈의 한계
- 서로 다른 프로젝트에서 공통된 코드가 사용된다면, 코드를 복붙해서 사용해야한다. 즉 중복이 발생될 수 있다.
- 여러 프로젝트를 사용하기 위해 IDE, 인스턴스를 N개를 실행해야한다.
- 패키지끼리 의존성이 강해 하나의 수정이 N개의 오류를 발생시킬 수 있다.
- 프로젝트 규모가 커지면 각 패키지가 담당하는 역할이 모호해진다.
멀티 모듈의 장단점
장점
- 중복 코드가 많이 사라진다.
- 여러 프로젝트를 모듈화 시켜 하나의 IDE, 인스턴스에서 실행할 수 있다.
- 각각의 모듈과 패키지가 독립적인 역할을 해서 의존성이 낮아진다.
하지만
단점
- 여러 개의 서비스 모듈을 하나의 JVM에 띄우기 위한 추가 작업 필요하다.
- 서비스 모듈별 설정파일과 패키지 의존성 관리에 신경을 써야한다.
해당 단점이 존재한다.
다음 시간에는 멀티 모듈을 직접 구성하고 설정까지 실습해보는 글을 작성해보겠습니다.
참고
https://jie0025.tistory.com/534
https://mylifework.tistory.com/11
https://velog.io/@cha-sung-soo/Multi-Module-%EC%82%AC%EC%9A%A9-%EC%9D%B4%EC%9C%A0
https://hudi.blog/why-use-multi-module/
'Back-End' 카테고리의 다른 글
REST API URI 생성 규칙 (0) | 2024.07.26 |
---|---|
[Spring] Kafka 연동 간단 예제 (1) | 2024.07.24 |
HTTP 상태 코드에 대해서 (1) | 2024.04.12 |
[Spring Boot] 배포 방법 (JAR vs WAR) (0) | 2024.03.21 |
Gradle 의존성 옵션 종류 (0) | 2024.03.20 |