boostcampwm2023 / iOS06-FlipMate

우리들이 공부하는 시간

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UseCase 분리

ericKwon95 opened this issue · comments

Why

서로 연관된 유즈 케이스들을 같은 프로토콜 안에 두고 사용했을 때 아래와 같은 문제점들이 있었습니다.

  • 뷰모델에서 원하는 유즈 케이스의 재사용이 어렵다
    • ex) follow + unfollow + googleLogin의 조합이 필요한 경우 프로토콜 합성을 통해 새로운 구현체를 만들어야 한다.
  • 사용하지 않는 유즈 케이스에 대한 접근이 가능하다
    • ex) 만약 뷰모델이 follow라는 유즈 케이스만을 사용하고 싶다고 해도, FriendUseCase를 준수하는 구현체를 주입받으면 unfollow, search, loadChart 등의 기능에 접근 가능하다

이를 해결하기 위해 고민 과정을 거쳐 유즈케이스를 독립적으로 분리하기로 하였습니다.

Todo

  • 유즈 케이스 분리
  • 분리한 유즈 케이스 각 뷰모델에 적용