Skip to content

UseCase와 Service와 Repository의 차이 정의

이강호 edited this page Jul 3, 2024 · 1 revision

Question

Service

단순 CRUD 이외 기능을 수행할 때

예시

  • Device Sensor
  • Auth관련 Token 서비스

Repository

DAO의 기능 일반적으로 CRUD Network(Remote)와 Local Data에 대한 접근

UseCase

Service와 Repository으로 얻은 단순 정보를 바탕으로 앱의 정책관련 Domain Logic을 수행.

질문

우리 앱에서 Image Upload는 Service일까? Repository일까?

Cache는 어디에서 책임져야할까? 책임진다면 어디에서 어떻게? UseCase? Repo?

데이터에 접근할 때 꼭 Repository를 거쳐야할까?

  • 그렇다면 Rx 비동기 방식을 유지해야할까? 종속성 때문에 disposeBag()이 필요해서 불편함. closure나 async로 수행하는 같은 메서드 만들기?
  • 현재 repository는 useCase를 통해 사용할 수 있다. 하지만 SceneDelegate나 Coordinator에서 사용할 니즈가 생긴다면 어떡해야할까?

기타 유저 디폴트와 CoreData는 인메모리 방식이다. 유저 디폴트는 thread-safe함