피드로 돌아가기
Dev.toBackend
원문 읽기
Domain 중심 설계를 통한 비즈니스 로직과 인프라의 완전한 격리
Something about Architecture: Hexagonal
AI 요약
Context
전통적인 Four-Layer Architecture의 강한 결합도로 인한 유연성 부족 문제를 해결하기 위한 아키텍처적 접근. 기술 계층의 변경이 비즈니스 로직에 영향을 주는 구조적 한계를 극복하려는 시도.
Technical Solution
- Domain Entities와 Use Case를 중심에 배치하여 외부 의존성을 완전히 제거한 Core 설계
- 모든 의존성이 중심을 향하는 Dependency Inversion 원칙 적용으로 도메인 독립성 확보
- 기술 중립적인 인터페이스인 Port를 정의하여 Core와 외부 세계 간의 계약 기반 통신 구현
- 외부 요청을 Core로 전달하는 Driving Adapter(REST Controller, Message Consumer 등) 배치
- Core의 요청을 외부 시스템으로 전달하는 Driven Adapter(DB Persistence, External API 등) 구현
- Port와 Adapter의 분리를 통한 인프라 교체 시 도메인 로직 수정 없는 유연한 확장 구조 채택
실천 포인트
1. 비즈니스 로직 내에 특정 DB 라이브러리나 프레임워크 종속적 코드가 포함되었는지 확인
2. 외부 시스템과의 통신을 위한 인터페이스(Port)를 먼저 정의하고 구현체(Adapter)를 분리했는지 검토
3. 외부 인프라 변경 시 도메인 계층의 코드 수정 없이 어댑터 교체만으로 대응 가능한 구조인지 테스트