멀티모듈 예제
🙉

멀티모듈 예제

Created
Jul 24, 2024 08:49 AM
Last edited time
Last updated July 25, 2024
Tags
Spring
Language
Java
URL

Intro::

멀티모듈 예제 구현에 대한 정리본 입니다.

멀티모듈이란?

멀티모듈 프로젝트는 하나의 프로젝트를 여러 개의 모듈로 나누어 관리하는 프로젝트 구조를 의미합니다. 각 모듈은 독립적으로 개발되고 빌드될 수 있으며, 서로 다른 책임을 가지거나 특정 기능을 담당할 수 있습니다. 이러한 구조는 대규모 프로젝트나 복잡한 시스템에서 특히 유용합니다.
  • 루트 프로젝트: 전체 프로젝트를 관리하는 최상위 프로젝트로, 공통 설정 및 의존성을 정의합니다.
  • 서브 모듈: 루트 프로젝트 아래에 위치하며, 각각 특정 기능을 담당하는 모듈들입니다. 서브 모듈은 독립적으로 개발되고 빌드될 수 있습니다.

장점

  • 모듈화된 코드베이스:
    • 코드를 기능 단위로 분리하여 모듈화할 수 있습니다.
    • 각 모듈은 특정 기능이나 책임을 담당하며, 코드의 응집도를 높일 수 있습니다.
  • 재사용성:
    • 공통 기능을 모듈로 분리하여 여러 프로젝트에서 재사용할 수 있습니다.
    • 코드 중복을 줄이고, 유지보수성을 향상시킵니다.
  • 독립적인 빌드:
    • 각 모듈을 독립적으로 빌드하고 테스트할 수 있습니다.
    • 빌드 속도를 향상시키고, 개발 효율성을 높일 수 있습니다.
  • 효율적인 팀 협업:
    • 팀별로 모듈을 나누어 개발할 수 있습니다.
    • 각 팀이 독립적으로 작업할 수 있어, 개발 프로세스를 병렬화할 수 있습니다.
  • 분리된 의존성 관리:
    • 각 모듈은 자신의 의존성을 관리할 수 있습니다.
    • 의존성 충돌을 줄이고, 모듈 간의 의존성을 명확히 할 수 있습니다.

단점

  • 초기 설정 복잡성:
    • 멀티모듈 프로젝트를 설정하고 관리하는 데 초기 비용이 들어갑니다.
    • 빌드 스크립트와 설정 파일을 제대로 구성해야 합니다.
  • 빌드 관리 어려움:
    • 모듈 간의 의존성을 제대로 관리하지 않으면 빌드 과정이 복잡해질 수 있습니다.
    • 모듈 간의 의존성 문제가 발생할 수 있습니다.
  • 코드베이스의 복잡성 증가:
    • 모듈이 많아지면 코드베이스가 복잡해질 수 있습니다.
    • 각 모듈의 역할과 책임을 명확히 하지 않으면 혼란이 발생할 수 있습니다.
  • 배포 복잡성:
    • 각 모듈을 개별적으로 배포해야 하는 경우 배포 과정이 복잡해질 수 있습니다.
    • 버전 관리와 배포 계획을 신중하게 수립해야 합니다.

코드 예제

궁금증

  1. 각 모듈별로 application.yml을 설정해줘야하나?? 아니면 스프링 부트 애플리케이션이 실행되는 모듈에만 있으면 되나???
    1. 멀티모듈 프로젝트에서 각 모듈별로 application.yml 파일을 설정할 필요는 없습니다. 스프링 부트 애플리케이션이 실행되는 모듈(예: app 모듈)에만 application.yml 파일을 설정하면 됩니다. 다른 모듈들은 스프링 부트 애플리케이션의 설정을 공유하게 됩니다. 이렇게 하면 설정 관리가 더 간편해지고, 설정의 중복을 피할 수 있습니다.
 

References::

Loading Comments...