

카카오API를 이용해서 데이터를 가지고 오는 과제를 하고 있었는데 VIEW MODEL을 알게 되었고 MVVM패턴에서 파생된거라고 하길래 또 MVVM패턴이 뭔지 궁금해져서 정리하게 되었다.

음...이게 뭘까??... 봐도 모르겠는 걸...!!
일단 어떤 것인지만 알아놓고 지금 하고 있는 과제 끝나고 시간 남으면 더 알아봐야겠다.
MVC, MVP, MVVM 이렇게 3개가 소프트웨어에서 자주 사용하는 디자인 패턴이라고 한다.
Model, View, Controller 3개가 이루어져 동작한다고 한다. 평소에 우리가 사용하는 것이 MVC패턴으로 보편적으로 사용 되지만 앱이 커질수록 유지보수가 어려워진다고 한다.

view에 표시되기 위한 데이터
XML, HTML과 같은 UI 구성요소
controller 부터 받은 UI데이터를 표시하는 역할을 함.
사용자의 요청을 처리하는 역할을 담당
Model을 통해 받은 데이터를 처리하거나, 결과 값을 View에 반환하는 역할
일반적으로 View와 Model사이를 중재하는 역할

여기서는 controller 대신 presenter라는 아이가 역할을 다한다.
view를 통해 사용자의 입력을 받고 Model에 도움을 받아 사용자의 데이터를 처리하고 결과를 View로 다시 전달. present는 interface를 통해 View와 상호작용.

ViewModel는 View 상태를 유지 및 변화시키고, View에 대한 작업의 결과로 Model을 조작하고, View에서 발생되는 이벤트를 트리거하는데 도움이 되는 메서드, 명령, 또는 다른 속성들을 노출하는 역할을 합니다.
View는 ViewModel에 관한 참조를 가지고 있지만, ViewModel은 View에 관한 정보를 모릅니다. 이는 View와 ViewModel사이의 n:1의 의존관계가 생기며 다수의 View는 하나의 ViewModel에 매핑될 수 있습니다. 이로서 ViewModel은 다수의 View에 대해 완전히 독립적입니다.
안드로이드에서 단방향 혹은 양방향 데이터 바인딩을 사용한다면 ViewModel의 속성들과 View와 동기화를 보장할 수 있습니다.
[참고자료]...및 복붙...
https://velog.io/@blucky8649/MVC-MVP-MVVM-%ED%8C%A8%ED%84%B4%EC%9D%98-%ED%8A%B9%EC%A7%95

뭐라는거야... 이렇게 글로만 보니 이해가 안된다ㅠㅠ 실습을 통해 돌아오겠읍니다..총총..
이해가 안되니까 대충 쓰게 됨.. 캵캵캵캵
티스토리 쓰다가 velog엄청 이쁘길래 넘어왔는데 마음에 드네