Dev/Article

헥사고날 아키텍처 (Hexagonal Architecture)

Luigi.yoon 2025. 3. 17. 02:21

헥사고날 아키텍처 (Hexagonal Architecture)

“애플리케이션의 내부 도메인 로직과 외부 인터페이스를 **포트(Port)**와 **어댑터(Adapter)**를 통해 명확히 분리하는 구조로, 외부 기술의 변화에 영향을 최소화하는 아키텍처 스타일”

 

출처 : https://guides.visual-paradigm.com/what-is-a-hexagonal-architecture-diagram/

 

  • Core (도메인/애플리케이션): 비즈니스 로직 - 가운데
  • Ports: Core가 필요로 하는 외부 기능 인터페이스 (Input/Output)
  • Adapters: 실제 구현체 (예: DB, API, UI, 메시지큐 등) 

 

항목 전통적인 레이어드 아키텍처 헥사고날 아키텍처
비즈니스 로직 위치 Service Layer 안에 있음 Core Domain 중심
외부 시스템 의존성 내부 레이어에 종속 포트를 통해 격리됨
테스트 용이성 외부 시스템이 필요함 모의 포트로 테스트 용이
유연성 기술 변경 시 영향 큼 어댑터만 교체하면 됨
관심사 분리 흐릿함 명확함 (Core vs Infra)
대표 기술 Spring MVC, DAO 중심 DDD + Clean Architecture 지향
 

📌 주요 개념 구성

구성 요소 설명
Application Core 도메인 모델, 유스케이스(서비스)
Inbound Port 사용자의 입력 인터페이스 (API 호출 등)
Outbound Port 외부 시스템에 대한 의존 인터페이스 (DB, API 등)
Inbound Adapter 실제 API 핸들러, 메시지 consumer 등
Outbound Adapter 실제 DB 저장소, API 클라이언트 등