728x90
300x250
Hexagonal 아키텍쳐 (육각형)
핵심 도메인과 외부 의존성 분리: 도메인 로직(Core)과 외부 인터페이스(Ports and Adapters)를 명확히 분리하는 것이 특징.
어댑터와 포트 개념
- 핵심 도메인과 외부 의존성 분리: 도메인 로직(Core)과 외부 인터페이스(Ports and Adapters)를 명확히 분리합니다.
- 어댑터(Adapters): 외부 시스템(예: 데이터베이스, 사용자 인터페이스, 외부 서비스)과의 직접적인 구현과 상호작용을 처리하는 어댑터를 사용합니다.
e.g. 사용자(UI)로부터 들어오는 요청을 처음 받는 컨트롤러, DB에 접근하기 위한 DAO.. - 포트(Ports): 도메인 로직이 외부와 상호작용하기 위한 인터페이스를 정의합니다. 인터페이스기에 실제 구현체는 없음.
e.g. 도메인 로직에서 DB로 접근하려는 인터페이스(아웃바운드 포트)
어댑터는 포트랑만 통신한다.
어댑터를 통해야만 내/외부로 들어올 수 있다.
외부 시스템 --> 인바운드 어댑터 --> 인바운드 포트 --> 도메인 로직 (Biz. 로직)
도메인 로직 (Biz. 로직) --> 아웃바운드 포트 --> 아웃바운드 어댑터 --> 외부시스템
- 유연한 구조: 외부 시스템의 변화에 도메인 로직이 영향을 받지 않습니다.
- 테스트 용이성: 어댑터를 통해 도메인 로직이 외부 의존성 없이 독립적으로 테스트될 수 있습니다.
- 확장성: 새로운 외부 시스템을 추가하거나 변경할 때 기존 도메인 로직을 수정할 필요가 없습니다.
헥사고날 아키텍처는 시스템의 핵심 로직을 중앙에 두고, 외부와의 모든 상호작용을 인터페이스(포트)와 구현체(어댑터)를 통해 처리함으로써 유연성과 확장성을 높이는 설계 방식이다.
이를 통해 시스템의 각 부분이 독립적으로 변경될 수 있고, 유지보수가 쉬워진다. MSA에 최적화.
728x90
'프로그래밍 > MSA' 카테고리의 다른 글
[MSA] 레이어드 아키텍처란? (0) | 2024.08.05 |
---|---|
[MSA] MSA의 여러 패턴들 (1) | 2024.07.24 |
[MSA] 분해, 통신, 트랜잭션 패턴이란? (3) | 2024.07.23 |
[MSA] MSA의 단점과 진입장벽이 높은 이유 (3) | 2024.07.22 |
[MSA] MSA의 핵심 원칙 (0) | 2024.07.09 |