해당 포스트는 MSA에 대한 개념과 주요 기술에 대해 알아보고 실무에 적용했었던 내용을 정리하는 포스트입니다.
헥사고날 아키텍처(Hexagonal Architecture)는 포트 앤드 어댑터(Port and Adaptor) 아키텍처라고도 불리며 고수준의 비즈니스 로직을 표현하는 내부 영역과 인터페이스 처리를 담당하는 저수준 외부 영역으로 구분됩니다.
여기서 포트와 어댑터는 각각 내부 영역과 외부 영역에 존재하는데
헥사고날 아키텍처의 가장 큰 특징은 포트로 인해 고수준의 내부 영역이 외부의 구체적인 어댑터에 전혀 의존하지 않는다는 점입니다.
내부 영역은 순수한 비즈니스 로직을 표현하는 기술 독립적인 영역이며, 외부 영역과 연계되는 포트를 지닙니다. 순수한 비즈니스 로직을 표현해야 하므로 내부 영역은 외부 영역과 직접 의존하지 않고 포트를 통해 통신하며, 외부 영역의 어댑터가 내부 영역의 포트에 의해서 구현됩니다.
포트는 크게 인바운드 포트와 아웃바운드 포트로 나뉩니다.
외부 영역은 인터페이스 처리를 담당하는 저수준 영역이며 외부에서 들어오는 요청을 처리하거나 외부로 데이터나 응답을 전송하는 어댑터를 지닙니다.
위에서 설명하였듯이 외부 영역에서 내부 영역으로 접근을 하기 위해선 내부 영역의 포트와 어댑터가 연결되어야 하며 어댑터는 포트에 의존해서 구현됩니다.
어댑터는 크게 인바운드 어댑터와 아웃바운드 어댑터로 나뉩니다.
도메인 주도 설계로 시작하는 마이크로서비스
마이크로서비스 패턴