각각 구현한 유스케이스, 웹 어댑터, 영속성 어댑터를 동작하는 애플리케이션으로 조립하기

의존성 주입 메커니즘

  1. 평범한 자바
  2. 스프링
  3. 스프링 부트 프레임워크

9-1. 왜 조립까지 신경 써야 할까?

올바른 의존성 방향

유스케이스와 어댑터를 필요할 때마다 인스턴스화한다면? 의존성이 여러 방향으로 퍼질 수도 있다.

모든 의존성이 애플리케이션 코어(도메인 코드)쪽인 올바른 방향으로 향해야 한다.

이것이 아웃고잉 포트 인터페이스이 존재 이유 - 유스케이스는 인터페이스만 알아야 하고, 런타임에 인터페이스의 구현을 제공받는다.

테스트의 용이성

필요한 모든 객체를 생성자로 받을 수 있다면, 테스트시 목 객체를 받아서 격리된 단위 테스트를 생성하기 쉬워진다.

중립적인 설정 컴포넌트

hexagonal architecture.png