해당 포스트는 인프런의 Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트 강의의 도움을 받았습니다
지난 포스팅에서 레이어드 아키텍처를 개선해 보았습니다.
다음과 같이 최종적으로 개선된 레이어드 아키텍처를 통해, 테스트코드를 가볍게 만들 수 있었습니다.
포트-어댑터로 구분하고, 계층을 제거합니다.
다이어그램을 재배치합니다.
서비스와 도메인을 살짝 내리기만 하면
헥사고날 아키텍처입니다.
사실 지금까지 공부했던 내용들이 클린 아키텍처나 헥사고날 아키텍처로 진화하는 방향을 설명했던 것입니다!
외부에서 도메인으로 향하는 방향이 단방향으로 유지가 됩니다.
이렇게 만들어진 헥사고날 아키텍처는 상향식으로 고민할 때 자연스럽습니다.
도메인 중심 설계를 하게 됩니다.
이때 Controller와 RepositoryImpl은 테스트하기 어려운 부분이지만, 분리가 되었으므로 테스트하기 좋은 설계가 됩니다.
이렇게 분리된 Controller와 RepositoryImpl을 Humble이라고 부릅니다.
테스트하기 좋은 설계를 하다 보니 자연스럽게 헥사고날 아키텍처를 지키게 되었습니다.