Skip to content

Domain Layer에서 DTO 제거 (Home, PopUp, SignUp, User API관련) #116

@dongglehada

Description

@dongglehada

🤔 작업 배경

  • 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프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions