강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

rhdrlehf5님의 프로필 이미지
rhdrlehf5

작성한 질문수

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

ArchUnit을 이용한 아키텍처 테스트

멀티모듈

작성

·

7

0

안녕하세요 토비님

배운 내용을 바탕으로 기존 프로젝트 구조를 변경하는 연습하고 있습니다.

기존 프로젝트가 멀티 모듈로 되어있어 멀티모듈 구조는 그대로 가져가고 싶은데 분리한다면
어떻게 나누어야 할까요?

모듈을 두개로 나누어 api와 core로 구성했는데 adapter, application, domain를

api 모듈에 adapter core 모듈에 application, domain 이렇게 구성하였는데 이렇게 구분해도 괜찮은지 잘 모르겠습니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. rhdrlehf5님께서 멀티 모듈 구조에 대해 질문을 주셨습니다.

멀티 모듈 구조의 이해

멀티 모듈 프로젝트에서는 각 모듈이 명확한 책임과 역할을 가지도록 하는 것이 중요합니다. 질문 주신 대로 API와 Core로 나누는 접근 방식은 일반적이며 각각의 역할에 따라 구분해보겠습니다:

  1. API 모듈

    • Adapter Layer: 사용자 인터페이스 및 외부 시스템과의 통신을 처리합니다. HTTP 요청 처리, REST API 정의 등이 포함될 수 있습니다.
  2. Core 모듈

    • Application Layer: 비즈니스 로직과 애플리케이션의 유스케이스를 정의하는 부분입니다. 이 레이어에서는 도메인 객체를 활용하여 애플리케이션의 구체적인 유스케이스를 구현합니다.
    • Domain Layer: 순수한 비즈니스 로직과 규칙을 포함하며, 엔터티, 값 객체, 서비스 등을 포함합니다. 다른 레이어의 변경에 영향을 받지 않도록 설계되어야 합니다.

모듈 구성의 타당성

현재 구성하신 방식에서도 각 모듈의 역할이 잘 분리되어 있다면 충분히 괜찮은 접근 방식입니다. 다만, 헥사고날 아키텍처의 원칙을 고려한다면 각 모듈 내에서 책임과 의존성을 잘 관리하는 것이 중요합니다.

  • 외부와의 연결 및 구현 세부 사항은 Adapter 모듈이 담당하고
  • 비즈니스 로직과 도메인 관련 작업은 Core 모듈에서 관리하면 변경이 적고 유지보수가 용이한 구조가 될 수 있습니다.

참고 자료

이와 관련한 기존 답변과 추가적인 예시를 보시고 싶으시다면 다음 링크를 참고하세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

rhdrlehf5님의 프로필 이미지
rhdrlehf5

작성한 질문수

질문하기