728x90

멀티 모듈이란?


 

모듈은 하나의 독립적인 배포 단위를 의미하기 때문에, 각 모듈은 build 과정에서 jar파일을 배포한다.

따라서, 멀티 모듈은 하나의 프로젝트 내에서 여러 개의 모듈을 가짐으로써, 각 모듈간의 역할, 의존성을 분리하는 것이다.

 

각 모듈을 나누는 방법


 

 

멀티 모듈을 통해 모듈 간의 역할과 의존성을 분리하였다.

Hexaonal구조에서 격리된 모듈의 기준은 도메인(비즈니스 로직)을 통해 구분된다. 그렇기에 도메인을 중심으로 설계하는 DDD방식이 주로 사용된다.

 

DDD가 MSA설계에 사용되는 이유는 무엇인가?

  • 유비쿼터스 언어 : 복잡한 도메인을 정의하기 위해서는 SW개발자 외에도 도메인 전문가가 필요하다. 도메인 전문가와 SW개발자 모두 이해할 수 있는 공통 언어를 사용한다.
  • 애그리게잇: 객체들의 그룹을 단일 단위로 취급하여, 서비스의 일관성을 유지한다. 객체는 엔터티로 치환되며, 엔터티를 그룹화한 단위가 애그리게잇이고 이는 하나의 서비스와 일치한다.
  • Bounded Context: 도메인 간의 관계에서 각 도메인마다 배타적인 문제를 해결해야 한다. 따라서 Bounded context에 따라 하위 도메인 (Sub-domain)을 분리한다.
  • Context Mapping: Bounded Context간의 상호작용 및 통합을 정의한다.

 

 

 

+ Recent posts