프로그래밍

헥사고날 아키텍쳐

일태우 2024. 8. 4. 20:17

포트와 어댑터 아키텍쳐라고도 불림

 

메인 아이디어

  • 비즈니스 코드를 기술 코드로부터 분리하는 것
  • 비즈니스 코드에 피해를 주지 않고 기술 코드 변경이 가능해야 한다
  • 핵심 도메인 로직을 외부 인터페이스(입출력, DB, 사용자 인터페이스 등)으로 부터 분리함으로 달성

도메인 헥사곤

소프트웨어가 해결하기를 원하는 핵심 문제를 설명하는 요소의 결합, 이러한 요소들은 기술에 구애 받지 않는 형태로 표현되어야 함

  • 구성 요소
    • 엔티티 - 식별자를 할당할 수 있는 것
    • 값 객체 - 엔티티들을 합성하기 위한 불변 객체

애플리케이션 헥사곤

도메인 헥사곤에서 나오는 비즈니스 규칙을 사용, 처리, 조정

비즈니스 측면과 기술 측면 사이에서 양쪽과 상호작용하는 중개자 역할

프레임워크 헥사곤

애플리케이션 기능의 노출 방법을 결정, 예를 들면 REST, gRPC 엔드포인트 정의