728x90
반응형
MVVM Pattern
MVVM
- M : Model → Data
- V : View (ViewController) → Presentation Logic 위치
- VM : ViewModel → Business Logic 위치, UI 관련 코드는 존재하지 않음 (→
import UIKit
❌ )
조금 풀어서 설명해보면
- 뷰 모델은 모델을 알지만 모델은 뷰 모델을 알지 못한다.
- 뷰는 뷰 모델을 알지만 뷰 모델은 뷰를 알지 못한다.
→ 결국, UI와 Presentation Logic, Business Logic을 분리하고자 하는 게 MVVM 아키텍처라 할 수 있다.
그래서 MVVM Pattern으로 작성된 프로그램은 명확한 테스트가 가능하다.
실제로 프로젝트에 적용해보니..
최근 회사에서 프로젝트를 리팩토링할 수 있는 기회가 있었고, MVVM-C 패턴을 적용했다.
이전 MVC 패턴으로 짜여진 코드에서는 테스트를 작성하는 것도 어렵고 새로운 기능이 추가되면 어느 부분에서 사이드 이펙트가 발생할 지 예상이 어려웠는데, MVVM-C 을 적용하며 테스트를 작성할 수 있게 되니 어느 부분이 문제가 될지 빠른 확인이 가능했다.
좋은 패턴이긴하나 기능이 많은 페이지는 뷰모델의 크기도 덩달아 커져서 다양한 패턴을 적용하면서 가장 적절한 모습을 갖춰가는 게 중요한 것 같다.
MVVM 학습 자료
반응형
'Programming > iOS' 카테고리의 다른 글
[iOS/Swift] 흔들어서 QR체크인 실행하기 파헤쳐보기 (motionShake) (1) | 2021.10.15 |
---|---|
[iOS] Clean Architecture, 내 생각 (0) | 2021.10.09 |
[iOS] MVC Pattern (0) | 2021.10.07 |
[iOS/Swift] didFinishLaunchingWithOptions 알아보기, 푸시로 앱 실행할 때 처리하기 (0) | 2021.10.06 |
[따라하기/iOS] App Switcher - 앱 화면 가리기 (2) | 2021.10.02 |