MVVM과 MVC 패턴

MVC 패턴?

Model / View / Controller로 나누는 패턴입니다.iOS 에서는 ViewController가 있는데, 규모가 큰 프로젝트에서는 이 VC가 점점 커지고 무거워지면서Massive ViewController 라는 별명을 가지고 있기도한 패턴입니다.

view con에서 view도 같이 있는데 이것을 완전히 분리 mvvm

MVVM 패턴

  1. 사용자가 화면에서 Action을 취하면 Command Pattern으로 View → ViewModel로 전달됩니다.
  2. ViewModel 이 Model에게 data를 요청합니다.
  3. Model은 요청받은 data를 통해 update된 data를 ViewModel로 전달합니다.
  4. ViewModel은 응답받은 데이터를 가공해서 저장합니다.
  5. View는 ViewModel과의 Data Binding을 통해서 자동으로 갱신됩니다.

여기서 Data Binding 이란 ?

view와 로직이 분리되어 있어도 한 쪽이 바뀌면 다른 쪽도 업데이트가 이루어 지는 것입니다.

MVVM 장점 단점

장점

  1. 유지보수에 좋다.
  2. 자동화된 테스팅에 적합한 모델이다 ( View Model과 View 간의 의존성이 없기 때문에 )
  3. 새로운 개발자라도 빠르게 적응이 가능하고 개발이 가능한 수준의 난이도와 복잡성

단점

  1. 단순한 프로젝트를 개발하기에는 MVC에 비해서는 시간이 오래걸린다.

동시성 프로그래밍