기존 jsp나, 웹을 이용할때 가장 많이 사용하는 디자인 패턴은 MVC 패턴이다.
MVC 같은 경우는 뷰가 요청을 컨트롤러에 하고, 컨트롤러가 모델과 연결하여 데이터 통신을 하는 형태이다. 이 형태의 경우 뷰와 모델 사이의 의존성이 높다는 단점이 있다. 따라서 MVVM 패턴의 중요성이 강조된다.
MVVM 패턴의 경우 뷰에서 뷰모델에 요청을 한다. 이 때 뷰 모델은 뷰를 만들기 위한 모든 데이터를 가지고 있다. 혹시 데이터의 변경이 생길 경우, 뷰 모델이 모델과 상호작용 하고, 모델이 데이터 서버에 데이터의 영향을 준다.
그렇기 때문에, 데이터의 변경은 다음과 같은 순서로 진행된다.
1. DB의 데이터 갱신
2. View Model의 데이터 갱신
뷰 모델같은 경우 자기 데이터를 liveData에 넣는다. 이 liveData가 곧 react의 state의 역할을 하기 때문이다.
뷰는 이 liveData를 구독하면서 데이터의 변경을 감지하고 view를 변경한다.
3. 데이터를 liveData에 넣음. 이 때, 데이터모델을 구독하고 있기 때문에 뷰의 데이터 모델 변경이 이루어진다.
※ MVVM 모델보다 상위 모델은 Reactive Model이다. 이 모델의 경우 뷰 모델이 데이터베이스를 구독하며, 데이터베이스의 변경 시 바로 뷰 모델이 변화된다. (2번이 자동으로 이루어진다는 뜻임)
반응형
'Android' 카테고리의 다른 글
Android Studio, JAVA] 파이어베이스 등록하기 (0) | 2020.08.13 |
---|---|
Android Studio, JAVA] mvvc 모델과 LiveData (2) | 2020.08.12 |
안드로이드 스튜디오, Java] Room 라이브러리를 이용한 내부 데이터베이스 이용하기 (0) | 2020.08.05 |
안드로이드 스튜디오, JAVA ] 서비스 (0) | 2020.08.05 |
안드로이드 스튜디오, JAVA] 실습 : 레트로핏, 리사이클러뷰, 피카소를 이용한 영화 앱 만들기. (1) | 2020.07.31 |