## 🤔 작업 배경 - Presentation layer에서 Domain과 Data에 있는 UseCase와 Repository의 구현체를 사용하고 있는 문제가 있음. - 물리적으로 Presentation을 분리하기 위해서는 Presentation layer는 구현체가 아닌 Domain interface에 있는 UseCase, Repository 인터페이스들만 알도록 해야됨. - 다만 구현체를 주입해주기 위해 Application layer에서 의존성 주입을 해줘야 됨. - Application에서 전부 다 주입해주기에는 Application의 코드가 복잡해지고 가독성이 저하됨 - 이를 해결하기 위해 DIContainer(Swinject) 혹은 Needle을 도입할 필요가 있음 ## 📝 작업 내용 - Presentation(View(Controller), Reactor, Model)에 있는 모든 Respository를 제거한다 - Respository가 아닌 UseCase를 통해 비즈니스 로직을 처리한다 - Presentation(View(Controller), Reactor, Model)에 있는 모든 구현체를 제거한다. - Impl이 아닌 Interface를 주입받도록 처리한다 - Application부터 시작한 Presentation(View(Controller), Reactor, Model)들에 필요한 의존성을 주입해준다. - 이를 위해 Swinject 혹은 Needle을 사용한다. ## 👀 ETC (추후 개발해야 할 것, 참고자료 등) - [x] DIContainer에 의존성을 전부 등록해줬나 - [x] Persentation에서 다른 Layer의 구현체를 의존하지 않는게 확실한가 - [x] Presentation에서 의존성 주입이 올바르게 들어갔나 - [x] 앱이 이전과 같이 동작하나
🤔 작업 배경
📝 작업 내용
👀 ETC (추후 개발해야 할 것, 참고자료 등)