답변:
컨트롤러와 ViewModel은 여러 가지면에서 다릅니다.
MVC에서 컨트롤러는보기를 알고 있으며보기를 변경할 수 있습니다. 또한 모델을 알고 호출 할 수 있습니다. MVVM에서 ViewModel은 View의 추상 표현이며 구체적인 UI를 알지 못하므로 Model을 원하는 방식으로 표시하여 원하는대로 표시 할 수 있습니다.
기존 MVC에서 컨트롤러는 모델과 상호 작용하기위한 View 의 전략 일뿐 입니다. 실제로 때로는 컨트롤러가 필요하지 않습니다. MVVM에서는 다른 동작이 필요한 경우 동일한 View에 대해 다른 ViewModel을 가질 수 있으므로 필요하지 않습니다. MVC에서는 모델과 통신하기 위해 예를 들어 ReadOnlyController 또는 AdminController를 가질 수 있습니다. MVVM에서는 두 개의 ViewModel을 가질 수 있으며 View에 필요한 모델을 선택할 수 있습니다.
그러나 그들은 몇 가지 유사점이 있습니다. 두 패턴 모두에서보기는 관찰자 입니다. 기존 MVC에서 뷰는 모델의 관찰자이며 MVVM에서는 ViewModel의 관찰자입니다.
두 패턴 모두 우려를 분리하기위한 것입니다. MVVM은 기본적으로 사용중인 UI 기술과 완전히 독립적 인 View의 추상화를 제공하는 것을 목표로합니다. MVC는 그렇게 멀지 않습니다. 비즈니스 로직 (모델)을 고려하지 않도록 우려 사항을 분리하는 것이 가장 중요합니다.
비슷한 질문에 대한 나의 대답 이 도움 이 될 수도 있습니다.
마지막으로 두 패턴이 모두 같은 가족에 속한다고 말해야합니다. MVVM이 후손 인 MVP는 MVC의 형제입니다. 이 링크를 따라 Martin Fowler의 웹 사이트를 더 자세히 알고 싶다면 모든 세부 사항을 설명합니다.