
아키텍처
아키텍처에 대한 고민은 처음이라
두줄요약
계층형과 육각형 아키텍처를 실제 서비스 사례로 비교하며 적용 기준을 설명했습니다. 도메인 변화와 외부 의존성이 큰 환경에서는 육각형 아키텍처가 유리하다고 정리했습니다.
핵심 내용
- 계층형 아키텍처와 육각형 아키텍처를 실제 업무 사례로 비교한 글
- 기능만 단순한 소프트웨어에는 단일 진입점 수준의 단순 구조도 가능하나, 도메인과 외부 환경 변화가 커지면 아키텍처 고민이 필요
- 번역 봇 사례에서는 웹·도메인·인프라로 나눈 계층형 구조를, 영상 플랫폼 사례에서는 포트와 어댑터를 둔 육각형 구조를 적용
선택 이유
- 계층형 아키텍처는 역할 분리가 명확해 새 기능과 변경 지점을 직관적으로 파악하기 쉬움
- 육각형 아키텍처는 도메인이 외부 프로바이더 변화에 덜 흔들리도록 의존성을 역전시키는 데 유리
- 공통 서비스처럼 여러 외부 인프라를 통일된 인터페이스로 제공해야 하는 상황에 적합
장단점
- 계층형 아키텍처는 이해하기 쉽지만 비즈니스 로직이 인프라 계층으로 몰리기 쉬움
- 육각형 아키텍처는 외부 변경의 영향도를 줄이고 OCP에 부합하지만 구조와 관계를 처음 이해하기 어려움
- 복잡도 증가로 인해 계층 침범 유혹이 생길 수 있음
적용해볼 점
- 도메인 변화 가능성과 외부 의존성의 개수를 먼저 분석한 뒤 아키텍처를 선택할 필요
- 새로운 프로바이더나 인터페이스 추가 가능성을 고려해 포트와 어댑터로 경계를 나누는 방식 검토
- 아키텍처 결정과 하위호환성 이슈는 ADR 같은 문서로 관리하는 방식 참고 가능