멀티모듈 적용하기

2024. 1. 18. 23:06백엔드/JAVA

프로젝트에서 모든 서비스를 특성에 따라 분리하지 않는다면, 추후 이슈 발생 시 코드 복잡성으로 인한 유지 보수가 어려워집니다.
이런 상황을 방지하기 위해 우리가 사용할 수 있는 해결책은 멀티모듈, 즉 모듈화입니다. 멀티모듈을 도입하면 각 모듈은 특정 기능을 수행하며 독립적으로 빌드, 테스트, 배포할 수 있어 코드의 복잡성을 낮추고 유지 보수성도 향상됩니다. 수정사항을 배포할 때 모든 서비스를 전체적으로 배포할 필요 없이 필요한 모듈만 업데이트할 수 있어 효율적인 개발 및 배포가 가능하다죠? 그래서 오늘은 멀티모듈의 개념과 적용 방법에 대하여 알아보도록 하겠습니다😎

 

 

# Module(모듈)

  • 프로그램을 구성하는 요소로 관련된 데이터나 함수를 하나로 묶은 단위
    Ex. 함수, 클래스, 패키지, 라이브러리, 프레임워크 등
  • 특정 기능이나 역할을 수행하는 독립적인 부분으로 재사용성을 높이며 코드의 유지보수를 쉽게 할 수 있도록 설계 가능 

 

# 모듈화 

  • 코드를 기능(모듈) 단위로 분할하여 코드를 더 작고 독립적인 조각(모듈)으로 분할하는 것 
  • 지나치게 많이 분리하는 경우 모듈 간의 통신 횟수가 증가하여 과부하가 발생
  • 모듈을 다른 곳에서 재사용할 수 있게 되어 개발 시간 단축과 함께 재사용성이 증가

 

# 멀티모듈 

  • 하나의 프로젝트에서 여러 개의 모듈로 분리하여 개발하고 관리하는 방식 
  • 각 모듈이 독립적으로 개발되기 때문에 의존성이 낮 하고 각 모듈별로 빌드/테스트/배포가 가능해짐 

 

# 모듈 생성하기 (Intelij 기준)

1. 프로젝트 최상위 패키지에서 오른쪽 마우스 클릭 > New > Module 

 

2. 프로젝트 환경 설정 정보 입력 후 생성 완료

 

3. 최상위 프로젝트 settings.gradle에 신규로 생성한 모듈이 include 되었는지 확인 / 추가되지 않은 경우 직접 작성

4. 모듈별 서버 포트 할당해 주기 

신규 모듈 > src > main > resources > application.properties 

 

5. 각 모듈의 main 메서드를 실행시켜 정상작동 확인하기