인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

gration77님의 프로필 이미지

작성한 질문수

iOS Clean Architecture & MVVM: RxSwift 완전 정복

Usecase 구현하기

유즈케이스 프로토콜과 구현체의 분리 이유

작성

·

109

·

수정됨

0

덤벨로퍼님 안녕하세요! 덕분에 좋은 강의 잘 듣고 있습니다!!

유즈케이스의 경우 프로토콜과 구현체를 분리해서 구현하셨고, 보통 다른 사람들도 분리해서 구현하더라구요.

만약 기능 단위로 유즈케이스를 구현하게 된다면 굳이 프로토콜과 구현체를 분리안해도 될 것 같은데, 둘을 분리하여 얻을 수 있는 이점이 궁금합니다!

의존성 관리 측면에서 이점이 있다고 생각은 되는데 잘 와닿지가 않아서요ㅠㅠ

답변해주시면 감사하겠습니다 :)

답변 2

0

gration77님의 프로필 이미지
gration77
질문자

확인이 너무 늦었네요ㅠㅠ 답변 감사드립니다!!

덕분에 프로젝트에서 Clean Architecture 적용도 잘 했습니다! 실제 코드를 작성하고 답변을 다시 보니 더욱 와닿는 것 같애요! 좋은 강의 감사드립니다~~

0

덤벨로퍼님의 프로필 이미지
덤벨로퍼
지식공유자

안녕하세요 !

usecase 프로토콜을 사용하여 추상화된 인터페이스를 구현했고

viewModel이 이를 의존하는 관계를 가지게 함이 목적입니다

 

가장 큰 장점은 말씀하신대로 의존성을 약화시키는 겁니다 usecase 구현체에 의존하는것보다

추상화에 의존하게하여 의존성을 약화시켜 usecase 수정이 일어났을때 viewModel이 비교적

취약하지 않게합니다

 

또 ViewModel 테스트 코드 작성에 용이 해질수있습니다

usecaseProtocol을 준수하는 MockUsecase를 만들수 있기 때문입니다!