카테고리 없음

Retrofit / RxJava2 / MVVM

나무는tree 2020. 1. 29. 16:06

이전까지는 MVVM 패턴에 RxJava, Retrofit 이 있어야만 하는 것으로 알고 있었다.

이들은 디자인 패턴과는 상관없이 RxJava를 사용하여 이전 포스팅에서 말했듯 Data Stream을 관리하는 역할을 한다.

ex) API를 사용하여 Data를 가져오는 상황일 때 그 Data들 중에서 내가 갖고싶은 Data를 뽑거나, 그 Data를 갖고 연산을 하거나 같은 작업이 가능하다. (+ 더 많은 RxJava2의 함수들로 연산가능하다)

또한, 콜백지옥이라 불리우는 API내에서 API를 호출하는등 ... 의 상황에서 유리하다(이것은 직접 사용해보면서 알아봐야한다)

 

현재까지 이해한 것은 MVVM 패턴은 유지보수적 측면을 강화하기 위해 ViewModel이란 것을 놓고 V와 VM의 역할을 나누었으며 VM이 V를 모르기 때문에 DataBinding을 사용한다.

VM의 Data가 변하면 V가 바뀌지만 , VM의 Data는 M에서 받아온다.(즉, VM에서 M의 함수를 호출 -> M에서 API(Retrofit)을 사용하여 결과값을 반환(이때 결과값을 Observable이나 Flowable로 하면 RxJava를 사용하고 , 다른 자료형을 사용하면 LiveData를 사용한다))

 

추가적인 공부가 필요하기 때문에 내가 MVC로 개발한 프로젝트 하나정도를 MVVM패턴으로 변경하는 작업을 거쳐야 MVVM에 대한 개념이나 나의 지식이 정착될 것 같다.