MVVM 패턴에 대해서 알아보기

2023. 1. 16. 00:46iOS

MVVM패턴에 대해 공부를 하면서 MVVM패턴에 대해 정리해보려고 합니다.

 

먼저 

MVVM패턴이란? 

MV: 뷰모델 (화면의 동작방식을 표현하는? 뷰를 나타내주기 위한 모델이며 뷰의 데이터를 처리하는 구간입니다!)

V: 뷰 (사용자에게 보여지는 구성요소입니다!)

M: 모델 (일종의 Data라고 생각하시면 됩니다. 화면에 관련된 데이터요소의 로직을 작성하는구간입니다!)

로 디자인 패턴이 되어 있으며 

 

MVC의 C인 컨트롤러의 역할을 줄이기 위한 점도 있다고 생각합니다.

장점이라면?

1.View와의 Model의 의존성을 완벽히 분리할 수 있기 때문에 독립성을 가지고 있습니다.

2.View ViewModel을 바인딩 하여 코드의 양이 줄어든다.

여러 가지가 있겠지만 당장 떠오르는 건 이 정도입니다.

 

조금 더 MVVM패턴에 대해서 알아보자면

View는 뷰모델을 소유하고 있다.

View와 ViewModel은 바인딩되어 데이터나 사용자 액션을 주고받는다 (장점 2번!)

그리고 ViewModel은 자신의 모델을 가질 수도 있습니다.

View로부터 받은 사용자 액션이나 데이터를 모델을 통해서 비즈니스 로직을 처리할 수 있습니다.

어? 순수한 비지니스 로직은 보존하지 않을까요??..

 

음.. 이런 말을 해도 처음 접한 저의 입장에서는 어려운 부분이었습니다.

먼저 저는 VM(뷰모델을 이해하고 싶었습니다.)

 

VM -> ViewModel에 대해서 조금 더 알아보자면

Model에서 화면을 보여준다?

하지만 Model에서는 할 수 없는 일이기에 

ViewModel을 만들어서 로직을 수행할 수 있게 해야 한다.

 

화면에 보여주기 위한 Model -> 그것이 바로 ViewModel입니다.!

화면에 보여야 할 값 View를 위한 Model이 바로 ViewModel입니다.

 

뷰에서 사용자 이벤트가 발생하게 되면 그 이벤트에 대한 처리를 ViewModel로 넘깁니다

이벤트에 대한 적절한 정의를 ViewModel에서 진행합니다.

 

MVVM패턴에 대해서는? 많이 광범위한 거 같습니다.

더 알아보고 경험해 보면서 확실하게 디자인 패턴을 구현할 수 있도록 연습 또 연습해야겠습니다.!

완벽히 MVVM패턴이 제것이 되었을때 MVVM패턴에 대해서 한번더 알아보도록 해보겠습니다.