-
Notifications
You must be signed in to change notification settings - Fork 0
Labels
🔄 refactor프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링🚀 feat새로운 기능을 추가새로운 기능을 추가
Description
🤔 작업 배경
- 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 (추후 개발해야 할 것, 참고자료 등)
- DIContainer에 의존성을 전부 등록해줬나
- Persentation에서 다른 Layer의 구현체를 의존하지 않는게 확실한가
- Presentation에서 의존성 주입이 올바르게 들어갔나
- 앱이 이전과 같이 동작하나
Metadata
Metadata
Assignees
Labels
🔄 refactor프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링🚀 feat새로운 기능을 추가새로운 기능을 추가