저번에 정리 했던 MVC를 다시 정리하면,
model
view
controller
정리 -> 액션이 들어오면 컨트롤러는 모델을 통해서 뷰에 전달한다!
사용자 요청 -> 컨트롤러가 모델을 호출한다 -> 요청받은 결과를 리턴한다 -> 컨트롤러는 모델이 리턴한 결과를 뷰에 전달 -> 뷰에 반영(그러나 컨트롤러는 뷰를 선택만 하고, 모델을 이용하여 반영한다(의존성이 높다))
일단 Controller 대신 VM(view-model) 확인.
컨트롤러와 비슷한 역할을 한다.
뷰를 통해 액션이 들어옴 -> 뷰모델에 액션을 전달 -> 뷰모델은 모델에게 정보요청 -> 모델이 응답 -> 뷰모델은 응답받은 정보를 가공해 저장 -> 뷰가 뷰모델에 데이터바인딩
view
뷰는 뷰모델을 알고있다
viewmodel
뷰모델은 모델을 알고있다.
model
모델은 모델일뿐...
MVC
애플리케이션 진입 -> 컨트롤러
직관적이다
뷰와 모델의 의존성이 커서 오류를 찾거나 유지보수가 힘들어진다
MVVM
애플리케이션 진입 -> 뷰
커맨드패턴과 데이터바인딩을 이용해 의존성이 낮다.
데이터바인딩이 복잡해지면 디버깅프로세스가 어렵다.