본문 바로가기
iOS

MVVM패턴

by 하얀망고 2022. 11. 11.
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

댓글