728x90
MVVM패턴은 Model-View-View Model의 약자로 이뤄진 디자인 패턴이다.
MVVM패턴의 핵심은
명령어의 흐름이 단방향이라는 것이다.
명령어는 View → ViewModel → Model 방향으로만 전달이 되며, 이 외의 방향으로 전달된다면
그것은 MVVM패턴을 제대로 구현하지 않은 것이다.
이 말은
MVVM패턴의 데이터의 흐름은 명령어 흐름의 반대인 Model → ViewModel → View 방향인 것이다.
Model
그저 데이터의 구조만 있으면 된다. 비즈니스 로직은 API통신이 있어서는 안된다.
(모델 그 자체로서만 존재해야한다.)
View
UI에 대해서만 있어야한다.
UI를 그리는 일과 사용자의 입력을 받아내는 곳이다.
ViewModel
UIKit 또는 SwiftUI를 import 하면 안된다. UI와 관련된 부분이 아니기 때문이다.
Utility성의 코드도 들어갈 필요가 없다.
그리고 테스트가 가능해지기 위해서는 의존성 주입이 중요해진다.
다른 class와의 의존성을 끊고, 의존성을 주입함으로써 테스트가 가능해진다.
MVVM패턴의 동작흐름
패턴의 데이터 흐름은 명령어를 통해 전달되는 것이 아닌 Data Binding을 통해 전달된다.
Data Binding은 작업이 끝났으니 필요할 때 가져가라는 느낌이다.
728x90
'iOS' 카테고리의 다른 글
| 웹뷰 구현하기(WebView) - UIKit (0) | 2022.11.06 |
|---|---|
| Lottie(애니메이션 라이브러리) (0) | 2022.10.31 |
| 델리게이트 패턴(Delegate_Pattern) (0) | 2022.10.27 |
댓글