MVVM과 MVC 패턴
MVC 패턴?
Model / View / Controller로 나누는 패턴입니다.iOS 에서는 ViewController가 있는데, 규모가 큰 프로젝트에서는 이 VC가 점점 커지고 무거워지면서Massive ViewController 라는 별명을 가지고 있기도한 패턴입니다.
view con에서 view도 같이 있는데 이것을 완전히 분리 mvvm
MVVM 패턴
- 사용자가 화면에서 Action을 취하면 Command Pattern으로 View → ViewModel로 전달됩니다.
- ViewModel 이 Model에게 data를 요청합니다.
- Model은 요청받은 data를 통해 update된 data를 ViewModel로 전달합니다.
- ViewModel은 응답받은 데이터를 가공해서 저장합니다.
- View는 ViewModel과의 Data Binding을 통해서 자동으로 갱신됩니다.
여기서 Data Binding 이란 ?
view와 로직이 분리되어 있어도 한 쪽이 바뀌면 다른 쪽도 업데이트가 이루어 지는 것입니다.
MVVM 장점 단점
장점
- 유지보수에 좋다.
- 자동화된 테스팅에 적합한 모델이다 ( View Model과 View 간의 의존성이 없기 때문에 )
- 새로운 개발자라도 빠르게 적응이 가능하고 개발이 가능한 수준의 난이도와 복잡성
단점
- 단순한 프로젝트를 개발하기에는 MVC에 비해서는 시간이 오래걸린다.
동시성 프로그래밍