
1. 도메인
- 순수 도메인 모델을 중심으로 구성됨
- ✅ POJO data class (기술 의존 없음)
2. Application
- 유즈케이스 흐름을 담당하는 영역
- ✅ 도메인 객체를 사용해서 시스템의 유즈케이스를 구현함
- ✅ 외부 연동이 필요할 경우 outbound port를 의존하여 처리함 (구체적인 외부 기술 모름)
- ✅ outbound port 인터페이스를 정의하고 실제 구현체는 adapter-out에서 구현함
3. Port
- 내부 애플리케이션이 외부와 소통하기 위해 정의해둔 인터페이스
- ✅ 도메인과 어댑터 간 포트를 경계로 구분됨
- ✅ 추상 API를 정의함
- ✅ 목적에 맞는 프로토콜을 따름
Inbound Port
- 외부 요청이 애플리케이션 기능을 실행할 수 있도록 정의한 입력 인터페이스
- ex) Controller, Scheduler, Consumer 등
Outbound Port
- 애플리케이션이 외부 시스템을 사용하기 위해 정의한 출력 인터페이스
- ex) JPA Repository, Mongo Repository, Kafka Producer, Email Sender
4. Adapter
- 포트를 실제 기술로 연결하거나, 외부 요청을 포트로 변환하는 코드
- ✅ 외부와 코어 사이에서의 언어를 통역해줌
- ➡️ 핵심 로직이 외부 기술을 직접 알지 않게 해줌
5. Bootstrap
- 애플리케이션을 실제로 실행하는 시작점
출처
'Software Engineering' 카테고리의 다른 글
| [Hexagonal Architecture] 3. 설계 방식 (0) | 2026.07.03 |
|---|---|
| [Hexagonal Architecture] 1. 헥사고날 아키텍처란? (0) | 2025.08.20 |