계층 구조에서는 서비스가 인프라스트럭처 계층에 의존하게 되는데 이런 경우 다음과 같은 문제가 있다.
테스트의 어려움
→ 이건 Mock 쓰면 테스트 가능한거 아닌가..?
기능 확장의 어려움
→ 인프라스트럭처 기술을 바꾸는 일은 거의 없지않나..? DB, DB 접근기술 등등은 바꾸는걸 거의 못봤는데..
[고수준 모듈]
[저수준 모듈]
고수준 모듈이 저수준 모듈에 의존하면 구현 변경과 테스트가 어렵다는 문제가 발생한다.
코드를 보니 결론은 여러 service에서 infra 클래스를 재사용하기 위해 범용적으로 만들지 말고, infra 클래스를 중복해서 만들더라도 service에 infra를 맞춰야하는 것 같다. → DIP를 이용해서 interface를 만드는 것도 결국 핵심은 이거인듯함.