지그재그 PDP, 헥사고날 아키텍처로 확장성 잡았다!
by DD
1년 전
조회수 23
헥사고날 아키텍처 기반의 PDP 서비스 아키텍처를 소개하며, DDD와 애그리거트 모델을 활용함
인터페이스(Port & Use Case)와 애그리거트를 통해 비즈니스 로직과 외부 호출을 분리함
코드 유지보수성 향상, 확장성 확보, 테스트 용이성 등 헥사고날 아키텍처의 장점 강조
헥사고날 아키텍처의 핵심 구성 요소
헥사고날 아키텍처는 Port와 Adapter를 통해 외부 의존성을 격리한다. 구체적으로 Controller는 Input Port를 호출하고, Output Port는 외부 시스템과 통신한다. 따라서 도메인 로직은 외부 변화에 독립적으로 유지되며, 유지보수성을 높인다.
DDD와 애그리거트 모델의 활용
PDP 서비스는 애그리거트 루트를 중심으로 도메인 객체를 관리한다. 애그리거트는 관련된 객체들을 묶어 데이터 일관성을 보장하며, 비즈니스 로직의 복잡성을 줄인다. 반면, 과도한 애그리거트는 트랜잭션 문제를 야기할 수 있으므로, 적절한 설계가 중요하다.
테스트 용이성을 위한 Mocking 전략
헥사고날 아키텍처는 Port를 인터페이스로 사용하므로, 테스트 코드 작성이 용이하다. 구체적으로 Output Port를 Mocking하여 외부 의존성을 격리하고, 단위 테스트를 수행한다. 따라서 테스트 속도를 향상시키고, 코드 품질을 높일 수 있다.