본문 바로가기
소프트웨어 개발/소프트웨어 설계 패턴

핵사고날 아키텍처란

by 인생은즐겁게 2026. 1. 21.
반응형

**핵사고날 아키텍처(Hexagonal Architecture)**

도메인(비즈니스 규칙)을 애플리케이션의 중심에 두고,
외부 세계(UI, DB, 메시징, 외부 API )와의 의존성을 명확히 분리하기 위한 아키텍처 스타일이다.

Alistair Cockburn이 제안했으며,
Ports and Adapters Architecture
라는 이름으로도 불린다.

 

2. 핵심 목적

목표 설명
비즈니스 보호 도메인 로직이 기술 변화에 영향받지 않게 함
변경 용이성 UI, DB, 외부 시스템 교체가 쉬움
테스트 용이성 도메인을 독립적으로 테스트 가능
의존성 제어 의존성 방향을 단방향으로 강제

 

 

 

3. 구조 개요 (큰 그림)

핵사고날은 3가지 핵심 요소로 설명된다.

① Domain (Hexagon / Core)

·         비즈니스 규칙의 집합

·         순수한 정책과 판단

·         외부 기술에 대해 아무것도 모름

② Ports (포트)

·         도메인이 외부와 통신하기 위해 정의한 인터페이스

·         무엇이 필요하다만 선언

·         구현은 없음

③ Adapters (어댑터)

·         포트를 실제 기술로 구현

·         Web, DB, Message Queue, External API

·         기술 의존성은 여기에만 존재

 

4. 의존성 규칙

핵사고날 아키텍처의 절대 규칙은 하나.

모든 의존성은 안쪽(Domain)으로만 향한다

 

5. Inbound / Outbound 개념

핵사고날은 포트를 방향성으로 구분한다.

Inbound Port

·         외부에서 도메인을 호출

·         : UseCase, Application Service 인터페이스

·         무엇을 할 수 있는가?”

 Outbound Port

·         도메인이 외부 기능을 필요로 함

·         : Repository, External API 인터페이스

·         이 기능이 필요하다

 포트는 항상 도메인 내부에서 정의된다.

 

6. 전통적 레이어드 아키텍처와의 차이

구분 레이어드 핵사고날
중심 기술 계층 도메인
의존성 아래 항상 도메인 방향
DB 위치 핵심 외부
테스트 통합 중심 도메인 단위
변경 영향 작음

핵사고날은 DB를 핵심으로 보지 않는다.
DB
는 교체 가능한어댑터일 뿐이다.

 

 

 

7. 육각형(Hexagon)’인가

육각형은 비유적 표현이다.

·         여러 방향에서 접근 가능

·         UI, API, Batch, Message Consumer

·         입력 경로는 여러 개, 핵심은 하나

, 도메인은 여러 입구를 가질 수 있지만, 규칙은 하나다

 

8. 요약

핵사고날 아키텍처는
비즈니스 규칙을 중심에 고립시키고,
기술은 모두 바깥으로 밀어내는 구조이다.

 

반응형

댓글