하루를살자

MVVM 을 사용해보고 느낀점 - iOS 본문

디자인 패턴

MVVM 을 사용해보고 느낀점 - iOS

Kai1996 2022. 5. 7. 20:58
배경
  • ViewController 를 어떻게 하면 조금이나마 어떻게 하면 비대해지는 것으로 부터 방지할수 있을까? 
  • 기존 프로젝트의 MVC 패턴 를 사용하면서 ViewController 가 가졌던 책임들:
    • 네트워크 API 호출
    • 네트워크 응답에 대한 모델 데이터 가공
    • 뷰에게 가공 된 데이터를 뿌려주기
    • 비지니스 로직 

이런 MVC 패턴의 특징은 ViewController 에 비지니스 로직 뿐만아니라 데이터 가공, 네트워크 호출 등의 역할 을 다 맞아서 하고 있다. 여기서 문제점은 많은 기능이 하나의 공간 ViewController 라는 곳에서 모두 이루어 지고 있기 때문에 에러가 발생했을때 디버그 및 수정, 각 기능의 테스트 등이 이루어지기 쉽지않게 된다. 

 

배운점
  1. ViewController 의 비지니스 로직을 ViewModel 에 분리 함으로써 위 문제점을 해결해줄 수 있었다. 
    • 기존 ViewController 에서 진행해오던 API 콜 로직 을 ViewModel 로 분리.
    • 데이터를 Parsing 하는 과정을 ViewModel 로 분리.
  2. 각 ViewModel 을 통해서 독립적인 비지니스 로직의 test 가 가능하다.
  • 꼭 MVVM 을 사용하지 않아도 여러개의 VIewController 를 만들어서 역할을 분리시킬수도 있다. 그래서 무조건 MVVM 을 써야한다는 강박관념을 가지는건 좋지 않다고 생각.
  • 프로젝트 를 설계하는 과정에서 관련된 ViewModel - View - Model 을 미리 생각해보고 진행해야하기 때문에 설계 하는 방법이 미숙하면 프로젝트진행이 더뎌 질수있다.
Comments