MVVM 패턴은 MVC 패턴에서 Controller를 빼고 ViewModel을 추가한 패턴입니다.
View
iOS는 ViewController까지 View가 된다.
사용자가 보여지는 View를 생각하면 된다. 유저 인터랙션을 받는 역할, 인터랙션을 받을 시 ViewModel에게 명령을 내린다.
ViewModel
View를 표현하기 위해 만들어진 View를 위한 Model
View와는 Binding을 하여 연결후 View에게서 액션을 받고 또한 View를 업데이트한다.
ex) textView에 보여줄 내용을 담당하는 함수 등, View에서 변화가 일어나는 ViewController의 역할을 담당한다.
Model
데이터, 비즈니스 로직, 서비스 클라이언트 등으로 구성한다.
실제적 데이터
View에 입력이 들어오면 ViewModel에게 명령을 합니다
ViewModel은 필요한 데이터를 Model에게 요청합니다
Model은 ViewModel에게 요청된 데이터를 응답합니다
ViewModel은 응답 받은 데이터를 가공해서 저장합니다
View는 ViewModel과의 Data Binding으로 인해 자동으로 갱신됩니다
장점
단점
Data Binding
데이터 바인딩의 개념은 쉽게 말해 Model과 UI 요소 간의 싱크를 맞춰주는 것이라 할 수 있습니다. 이 패턴을 통해 View와 로직이 분리되어 있어도 한 쪽이 바뀌면 다른 쪽도 업데이트가 이루어져 데이터의 일관성을 유지할 수 있습니다. iOS에서 데이터 바인딩을 하는 방법은 다음과 같습니다.