전통적인 계층형 아키텍처 → 데이터베이스 주도 설계

육각형 아키텍처 → 의존성을 역전시켜 영속성 계층을 애플리케이션 계층의 플러그인으로 작동

6-1. 의존성 역전

application.service.Service →(호출) application.port.out.OutgoingPort ←(구현) adapter.out.persistence.OutgoingAdapter

6-2. 영속성 어댑터의 책임

  1. 포트 인터페이스를 통해 입력을 받는다
  2. 입력을 데이터베이스 포맷으로 매핑한다
  3. 입력을 데이터베이스로 보낸다
  4. 데이터베이스 출력을 애플리케이션 포맷으로 매핑한다
  5. 출력을 반환한다

6-3. 포트 인터페이스 나누기

필요없는 화물을 운반하는 무언가에 의존하고 있으면 예상하지 못했던 문제가 생길 수 있다.