MVVM 패턴에 대하여
Updated:
MVVM 패턴
- View
- Display
- 사용자에게 제공되어 지는 UI
- 사용자의 input이 처리됨
- ViewModel
- View
- Model
- Data
- Business Logic들이 들어가는 곳이다.
- 등장 배경
- MVC 패턴은 Model과 View의 의존관계가 점점 심해져서 비대해진다
- Controller는 View를 선택만 하고, 단지 전달하는 역할만 하기 때문에
- 예를 들어, Model이 변경되면 수정포인트가 엄청 많아진다
- 특징
- View 와 ViewModel은 n : 1 관계이다
Command Pattern
과Data Binding
을 사용한다- Command Pattern: View에 입력이 들어오면 커맨드 패턴으로 ViewModel에 명령.
- View → ViewModel
- Data Binding: ViewModel의 값이 변하면 자동으로 UI가 업데이트됨.
- ViewModel → View
- Command Pattern: View에 입력이 들어오면 커맨드 패턴으로 ViewModel에 명령.
- 동작 원리
- 사용자의 Action이 View를 통해 들어옴
- View에서 Action이 들어오면, Command 패턴으로 ViewModel에 Action을 전달
- ViewModel은 Model에게 데이터를 전달
- Model은 ViewModel에게 요청 받은 데이터를 응답
- ViewModel은 응답 받은 데이터를 가공하여 저장
- View는 ViewModel과 데이터바인딩하여 화면을 나타냄
- 장점
- Model과 View 사이의 의존성이 없다.
- View와 ViewModel 사이에 의존성이 없다.
- 독립성을 유지하기에
- 효율적인 유닛 테스트를 할 수 있다.
- 모듈화 하여 개발할 수 있다.
- 단점
- 뷰에 대한 처리가 복잡해질수록
뷰모델이 거대해져 오버스펙
이 될 수 있다. - 단순한 UI 작업에서는 MVVM을 구현하는것이 오히려 지나치게 과한것일 수 있다.
- 앱이 너무 거대해지면
앱의 메모리 소모가 데이터 바인딩때문에 커진다
. - ViewModel의 설계가 쉽지 않다.
- 뷰에 대한 처리가 복잡해질수록
출처 :
Leave a comment