강의

멘토링

로드맵

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

리틀마가린님의 프로필 이미지
리틀마가린

작성한 질문수

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

헥사고날 아키텍처와 DDD

작성

·

17

0

5년차 백엔드 개발자 이며 현재 섹션5. 헥사고날 아키텍처의 사실과 오해를 학습하고 있습니다.

현업에서 신규 프로젝트를 준비 하면서 어떤 아키텍처를 가져가는 것이 좋을지 고민중에 강의를 접하게 되었습니다.

부동산 관련 데이터를 기반으로 한 서비스를 개발 및 설계 단계에 있습니다.

제가 전부 리드하는 것은 아니지만 프로젝트 전반적인 부분을 개발 리드분에게 권한을 받고 저와 팀원 둘이서 백엔드 구조를 설계 하고 있습니다.

수천만건 그 이상이 될 수 있는 데이터를 기반으로한 서비스를 계획 및 설계하고 있는데, 자바 스프링으로 서버를 구축 하려고 하는데 헥사고날 아키텍처를 저와 팀원은 경험 하지 못하였는데, 확장성 있는 서비스를 만들기 위해 헥사고날 아키텍처 기반으로 어떤 구조 설계를 하는 것이 좋을지 ,,, 조언 부탁드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 리틀마가린님!

백엔드 개발자로서 새로운 프로젝트에 헥사고날 아키텍처 적용을 고민 중이시군요. 헥사고날 아키텍처는 확장성과 유지보수성을 높이기 위해 설계된 패턴으로, 특히 대규모 데이터 처리와 같은 시나리오에서 유용할 수 있습니다.

헥사고날 아키텍처의 핵심 요소

  1. 포트(Ports):

    • 외부 세계와의 통신을 담당하며, 클라이언트가 도메인에 접근할 수 있도록 인터페이스를 제공합니다. REST API, 메시지 큐 등이 이에 해당할 수 있습니다.
  2. 어댑터(Adapter):

    • 포트를 구현하는 구체적인 클래스들이며, 외부 요청을 내부 도메인 로직으로 변환합니다.
  3. 도메인 로직(Domain Logic):

    • 비즈니스 규칙을 캡슐화하며, 응용 프로그램의 핵심입니다. 외부의 인프라스트럭처 관련 코드와 독립적으로 설계됩니다.
  4. 유연한 테스트 환경:

    • 테스트 용이성을 높이기 위해, 각 레이어를 독립적으로 테스트할 수 있는 구조를 가집니다.

헥사고날 아키텍처 적용 방안

  • 외부 API 및 데이터 소스의 추상화: 기존의 API와의 통신 또는 데이터베이스와의 상호작용을 추상화하여, 다양한 데이터 소스에 유연하게 대처할 수 있습니다.

  • 모듈화된 설계: 각 기능 단위를 모듈화하여, 독립적인 서비스 업데이트가 가능토록 설계합니다.

  • 도메인 중심의 설계: 핵심 도메인 로직을 잘 정의하여, 변화하는 요구사항에 유연하게 대응할 수 있도록 설계합니다.

추가 자료 및 학습

이와 관련된 기존의 사례와 예제들이 많습니다. 아래의 자료들도 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 질문 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

리틀마가린님의 프로필 이미지
리틀마가린

작성한 질문수

질문하기