Why 헥사고날 아키텍처?
- 비즈니스 로직에 집중
- 인프라 추상화
- 중간단계(인프라, 어댑터 등)의 추상화를 통해 유연하게 변경이 가능함
- 포트의 명세를 통해 프로젝트의 전반적인 구조 파악에 용이함
- 명확한 관심사의 분리
- 어댑터, 포트, 서비스 → 비즈니스 로직 X
- 변경부분을 쉽게 파악, 수정이 용이함
- 인터페이스 수정? → 포트
- 로깅, 이벤트처리 등은 서비스
- 비즈니스 로직 → 도메인
- 쉬운 테스트
헥사고날 아키텍쳐
- 소프트웨어 설계에 사용되는 패턴
- 포트와 어댑터를 통해 느슨하게 결합된 프로그램을 만드는 것을 목표
- 포트 어댑터 아키텍처라고도 합니다.
- 개인적으로!! 생각하는 헥사고날 아키텍쳐의 핵심
- **모든 의존성은 애플리케이션 내부(코어)**를 향하고, 외부로 향하는 의존성이 없음
- 추상화를 통한 의존성 역전 → 느슨한 결합 → 변경과 확장에 용이
- 가능한 작은 범위로 나누기(포트)
헥사고날 아키텍쳐 용어
- 어댑터: 외부 세계와 포트 간 교환을 조정하고 인바운드 어댑터 / 아웃바운드 어댑터