Model

View

View Model


사용하는 방법에 따라서 MVVM 패턴은 각 역할에 대한 관점이 전부 다른것 같다.

VM은 View를 모르기도 하고, 알기도 하고,

Model은 VM을 모르기도 하고, 알기도 하고...

즉, 패턴에는 절대적인 답은 없다. 그저 결합도를 낮추고, 응집도를 높이기 위함이다.

같은 MVVM 패턴이라고 하더라도, 그 방법에 따라서 결합도나 응집도가 크게 차이가 난다고 생각한다.

예를들어, View와 VM이 1:1로 매핑이 된다고 가정하면,

View는 VM을 알고 있고, VM도 View를 알게 된다.

→ 이유는 단순하다. View에 필요한 데이터를 VM이 전부 들고있고, View는 VM으로부터 데이터를 건내 받아서 화면에 보여주기만 하면 되기 때문이다.

이 경우 VM은 Model을 모르더라도 View에 동일한 데이터를 제공할 수 있다. (ex, 모델에서 로컬에서 data를 가져오던, API를 통해 data를 가져오던 VM은 동일한 데이터를 건내 받는다.)