-
Notifications
You must be signed in to change notification settings - Fork 0
Labels
🔄 refactor프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링
Description
🤔 작업 배경
- Repsotiory Interface는 Domain Layer에 존재하기에 사용되어야 하는 객체는 Entity이다.
- 하지만 지금 Repository Interface에서 사용되고 있는 객체는 DTO가 사용되고 있다.
- DTO가 사용되면서 Domain Layer가 Data Layer를 알아야하는 의존성이 발생하게 된다.
- 의존성 사이클이 발생함으로서 모듈화를 진행하였을 때 문제가 발생할 수 있다.
- 의존성 루프 발생으로 빌드가 되지 않음
📝 작업 내용
- Repository Interface의 파라미터 부분에 들어간 DTO를 Foundation(String, Int, …) 타입으로 변경한다.
- Entity가 같다고 이를 사용하는 방식 절대 X
- return 객체는 respository의 구현체에서 provider로부터 DTO를 받은 후 toDomain()을 진행하여 Entity로 반환되도록 한다.
- EmptyResponse를 제거하고, 관련 구현을 Provider로부터 제거한다.
- 이를 RxSwift의 특정 옵저버 타입을 적용한다(ex. Completable)
👀 ETC (추후 개발해야 할 것, 참고자료 등)
- Repository Inteface에서 DTO를 가지고 있지 않나요?
- 파라미터 및 return 객체의 변경으로 사이드 이펙트가 발생한 UseCase에서 에러가 생기지 않나요?
Metadata
Metadata
Assignees
Labels
🔄 refactor프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링