오늘은 MVVM에 대해서 알아보겠습니다.
현재 개발하는 환경에서 다양한 디자인 패턴이 존재하고 있습니다. 많이 사용하고 제가 처음 적용했던 MVC패턴부터 singleton 패턴, MVP패턴 등 정말 다양한 디자인 패턴들이 존재합니다. 이런 다양한 디자인패턴 속에서 패턴들의 특장점을 파악하여 적재적소에 사용하다는 것을 중요하게 생각하고 있습니다.
그래서 위 본문에서는 어떠한 특징이 있는지 어떤 상황 속에서 MVVM패턴을 사용해야하는지 혹은 특장점은 어떻게 되는지 한번 학습해보는 시간을 가져보도록 하겠습니다.
MVVM(Model View ViewModel)
MVVM은 일반적으로 사용자 인터페이스의 이벤트 중심 구조를 간소화하였다.
MVVM는 UI적인 부분이 Model 플랫폼에 종속되지 않는다.
구성들의 개요와 역활
View Controller
- 오직 UI와 관련된 것만 수행
- 정보를 보여주고 받아옴(from: ViewModel)
View Model
- View Model은 View Controller으로부터 정보를 받는다.
- 모든 데이터를 다룬다
- 다시 데이터를 View Controller에 전달
Model
- MVC에서의 Model과 유사한 역활
- View Model에 의해 사용됨
- 언제든지 View Model은 새로운 데이터들을 전송
장점
- 화면 빠르게 출력됨
- 향상된 퍼포먼스
- 컴포넌트의 재사용 가능성 증가
- 요소들이 강하게 결합되지 않음(안정성 유지)
- 사용자 인터페이스의 수정이 용이
단점
- 간단하 UI 작업도 복잡하게 만들 가능성이 있음
- ViewModel를 일반화하는것이 어려움
- Model과 ViewModel간 강하게 결합되지 않음
- 앱의 규모가 크면, 많은 메모리를 소비합니다.(전반적으로 참조를 많이함??)
- JavaScript-enabled browser is needed(?)
reference:
https://medium.com/@abhilash.mathur1891/mvvm-in-ios-swift-aa1448a66fb4
MVVM in iOS Swift
Whenever we start building new application, this question always comes in our mind, which architecture pattern to choose for our new…
medium.com
https://www.intuz.com/blog/guide-on-mvc-vs-mvvm
MVC vs MVVM- A complete guide with comparison
Know in depth about the most used software architectural model: MVC & MVVM. In this, you will get to know their applications, popular frameworks & comparison between the two models with detailed information.
www.intuz.com
'iOS 개발공부📱' 카테고리의 다른 글
Frame과 Bounds(그 중에서 Frame!!) (0) | 2023.09.21 |
---|---|
View Controller Lifecycle (0) | 2023.09.11 |
Responder, Responder Chain (0) | 2023.09.10 |