<aside>
헥사고날 아키텍처는 포트 및 어댑터 아키텍처 (Ports and Adapters Architecture) 라고도 불리는 소프트웨어 아키텍처 패턴이다.
이 아키텍처의 핵심 목표는 애플리케이션의 핵심 비즈니스 로직(도메인 영역)을 외부 기술적 요소(데이터베이스, UI, 외부 API 등)로 부터 격리시켜 유연하고 테스트하기 쉬운 구조를 만드는 것이다.
전통적인 계층형 아키텍처와 달리, 헥사고날 아키텍처는 의존성이 항상 안쪽으로 향하도록 하여 핵심 로직이 외부 요소의 변경에 영향을 받지 않게 한다.
</aside>
<aside>
구조
핵사고날 아키텍처는 이름처럼 육각형(Hexagon) 다이어그램으로 표현되며, 중심에는 애플리케이션 코어가, 주 주변에는 포트와 어댑터가 위치한다.
애플리케이션 코어
포트 (Ports - 인터페이스)
어댑터(Adapters - 구현체)
헥사고날 아키텍서의 핵심은 의존성 역전 원칙(DIP)을 적용하는 것이다.
Domain (Entity, UseCase, Domain Service)
↑ ↑
Ports ←-----------→ Ports
↑ ↑
Web Adapter Persistence Adapter
(Controller) (JPA/MyBatis)