헥사고날 아키텍처 사실 별 거 없네요

양말·2024년 7월 11일
0

SpringTestCode

목록 보기
8/10

해당 포스트는 인프런의 Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트 강의의 도움을 받았습니다

헥사고날은 사실...

지난 포스팅에서 레이어드 아키텍처를 개선해 보았습니다.

다음과 같이 최종적으로 개선된 레이어드 아키텍처를 통해, 테스트코드를 가볍게 만들 수 있었습니다.

포트-어댑터로 구분하고, 계층을 제거합니다.

다이어그램을 재배치합니다.

서비스와 도메인을 살짝 내리기만 하면

헥사고날 아키텍처입니다.

사실 지금까지 공부했던 내용들이 클린 아키텍처나 헥사고날 아키텍처로 진화하는 방향을 설명했던 것입니다!

외부에서 도메인으로 향하는 방향이 단방향으로 유지가 됩니다.

  1. 외부 세계에 관심이 없습니다. 어떤 프레임워크를 쓰는지, 어떤 데이터베이스를 쓰는지 중요하지 않게 됩니다.
  2. 테스트에 유리해집니다.

이렇게 만들어진 헥사고날 아키텍처는 상향식으로 고민할 때 자연스럽습니다.
도메인 중심 설계를 하게 됩니다.

이때 Controller와 RepositoryImpl은 테스트하기 어려운 부분이지만, 분리가 되었으므로 테스트하기 좋은 설계가 됩니다.
이렇게 분리된 Controller와 RepositoryImpl을 Humble이라고 부릅니다.

결론

테스트하기 좋은 설계를 하다 보니 자연스럽게 헥사고날 아키텍처를 지키게 되었습니다.

profile
코끼리

0개의 댓글