설계Hard#281
헥사고날 아키텍처(Ports and Adapters)의 핵심 아이디어는 무엇인가요?
#설계#Hexagonal#PortsAndAdapters#아키텍처
답변 포인트
도메인 중심과 외부 어댑터 분리를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
헥사고날 아키텍처는 핵심 도메인을 외부 기술로부터 분리하고 포트와 어댑터로 입출력을 연결합니다. 테스트와 인프라 교체에 유리합니다.
헥사고날 아키텍처는 핵심 도메인을 외부 기술로부터 분리하고 포트와 어댑터로 입출력을 연결합니다. 테스트와 인프라 교체에 유리합니다.
핵심 개념
핵심 기준은 도메인 중심과 외부 어댑터 분리입니다. 이 개념은 단순한 용어가 아니라, 실제 코드나 시스템에서 반복적으로 생기는 문제를 다루기 위해 등장했습니다.
설계는 앞으로의 변경을 감당하기 쉬운 구조를 만드는 일입니다. 책임, 의존성, 경계, 일관성을 기준으로 판단해야 합니다.
동작 흐름
- 먼저 어떤 문제가 있는지 확인합니다.
- 이 개념이 그 문제를 어떤 기준으로 나누거나 해결하는지 봅니다.
- 실제 코드에서는 입력, 상태, 실행 순서, 비용이 어떻게 바뀌는지 확인합니다.
- 마지막으로 한계와 부작용을 함께 점검합니다.
실제 예시
Text
좋은 경계의 기준
- 변경 이유가 같은 것끼리 모은다
- 외부 기술보다 도메인 규칙을 중심에 둔다
- 의존 방향을 한쪽으로 유지한다
- 테스트에서 대체하기 쉬운 구조를 만든다설계 판단은 정답을 고르는 일이 아니라 현재 문제의 변경 가능성과 운영 비용을 비교하는 일입니다.
실무에서 주의할 점
- 패턴을 위한 패턴은 오히려 복잡도를 키웁니다.
- 변경 가능성이 낮은 곳에 과한 추상화를 두면 읽기만 어려워집니다.
- 아키텍처 경계는 코드뿐 아니라 팀의 배포와 운영 방식도 함께 고려해야 합니다.
함께 연결해서 보면 좋은 키워드
설계, Hexagonal, PortsAndAdapters, 아키텍처
면접에서 짚으면 좋은 포인트
- 패턴을 적용하는 이유를 변경 용이성, 테스트 가능성, 운영 비용 관점에서 설명하면 좋습니다.
- 현재 문제보다 과한 추상화가 될 수 있는 상황도 함께 말하면 균형 잡힌 답변이 됩니다.
정리
한 줄로 정리하면, 헥사고날 아키텍처는 핵심 도메인을 외부 기술로부터 분리하고 포트와 어댑터로 입출력을 연결합니다. 테스트와 인프라 교체에 유리합니다. 실무에서는 개념을 적용하는 조건과 적용하지 않았을 때 생기는 문제까지 함께 이해하는 것이 중요합니다.