image.png

의존성 역전에 대해 정의를 하면 아래와 같이 2개로 정의할 수 있습니다.

  1. 상위 수준의 모듈은 하위 수준의 모듈이 구체적으로 어떤 객체를 사용하는지 알지 못해야 한다.
  2. 추상화에 의존하여 구체적인 구현을 분리해야 한다

Domain

유스케이스 → repo 의존 ⇒ 하위 수준인 유스케이스가 상위인 레포에 의존해버림 위배

따라서 레포 추상화를 통해 의존성 역전을 적용

유스케이스 → repo를 추상화 그리고 이 인터페이스에 의존하도

실제 적용 시

image.png

구글 권장 아키텍처

image.png

도메인 레이어가 선택 사항으로 취급됩니다. 즉, 모든 비즈니스 로직을 도메인 레이어에 넣지 않아도 되며, 필요한 경우에만 도메인 레이어를 추가하여 사용할 수 있습니다.