반응형
MVVM 패턴
MVC패턴에서 의존성 부분을 최소화 시키기 위해 파생되어진 패턴이다.
Model, View, ViewModel로 이루어져 있으며, 하나의 소프트웨어를 최대한 작은 단위로 나누어 모듈화를 형성하고, 테스트도 쉬우며 관리하기도 쉬운 구조를 지향한다.
MVC 패턴에서의 Model과 View 간의 의존성 문제를 극복하였고, Controller와 View 간의 의존성도 최소화할 수 있다.
View
- 사용자에게 보여지는 View
- User Interaction을 받고, 받으면 ViewModeld에게 명령을 내린다.
ViewModel
- View를 표현하기 위해 만들어진 View를 위한 Model
- View와는 Binding을 통해 연결 후 View에게서 액션을 받고 View를 업데이트한다.
- ex) textView에 보여줄 내용을 담당하는 함수, View에서 변화가 일어나는 ViewController의 역할을 담당
Model
- 데이터, 비즈니스 로직, 서비스 클라이언트 등
- 실제적 데이터
Process
- View에 입력이 들어오면 ViewModel에게 명령을 한다.
- ViewModel은 필요한 데이터를 Model에게 요청한다.
- Model은 ViewModel에게 요청된 데이터를 응답한다.
- ViewModel은 응답 받은 데이터를 가공해서 저장한다.
- View는 ViewModel과의 Data Binding으로 인해 자동으로 갱신된다.
장점
- View와 Model 간의 독립성 유지
- 독립성으로 인해 효율적인 유닛테스트 가능
단점
- 간단한 UI에서 ViewModel 설계에 어려움 있을 수 있다.
- Data Binding이 필수
- 규모가 커질 수록 ViewModel이 비대해진다.
- 참고
https://jhtop0419.tistory.com/21
MVVM 패턴
일반적인 MVVM 패턴 MVVM 패턴은 MVC 패턴에서 Controller를 빼고 ViewModel을 추가한 패턴입니다. 역할 및 동작 원리 View iOS는 ViewController까지 View가 됩니다 사용자가 보여지는 View를 생각하면 된다. 유저
jhtop0419.tistory.com
반응형