MVVM(Model - View - ViewModel)

- Model : 애플리케이션의 데이터, 네트워크 로직, 비즈니스 로직을 담는다. 데이터가 어떻게 보여질 것인가에 대해서는 고려하지 않는다.
- View : 화면에 보이는 모든 것들에 대한 내용을 다룬다. ViewModel로부터 데이터를 가져온다.
- ViewModel : View로부터 전달받은 요청을 처리할 로직을 담는다. Model이 변경되면 View에게 알린다.
✔️ 동작 흐름
- View에 들어온 이벤트를 ViewModel에 알려주면 ViewModel은 Model을 업데이트시킨다.
- Model이 변경되면 ViewModel에 알려지고 ViewModel과 바인딩되어있는 View가 업데이트된다.
✔️ 장점
- UI와 비즈니스 로직이 분리되었기에 ViewModel에 대한 단위테스트 작성이 간단하다.
- ViewModel을 재사용할 수 있다.
✔️ 단점
- 작은 프로젝트에서는 설계하기가 어려울 수 있다.
- 데이터 바인딩이 필수적으로 요구된다.
* 데이터 바인딩: View와 ViewModel 사이를 연결하는 프로세스