Kotlin중급 #1 MVVM-패턴-알기쉽게-정리해보자

0

📳 MVVM 패턴이 뭐야?

안녕하세요 Velog 여러분, 오늘 다뤄볼 주제는 안드로이드 패턴중, 가장 많이 쓰이는 MVVM 패턴입니다.

🏓현재 가장 많이 쓰이는 MVVM

MVVM이라 하면, 말이어렵다.
우리는 보통 Activity를 만들면, xml파일(UI)와 Activity 혹은 fragment로 쪼개진다.

만약 UI를 갱신해야한다고 생각해보자

일단 Activity에서 값이 바뀌고, 그것을 UI에 Thread를 이용해 업데이트 시켜야한다.

일단 내가 이해하게된 내용을 긁어와봤다.

🎆 MVVM 의 Components

Model : 디자인 패턴에서는 데이터와 데이터에 관련된 행위를 모두 합쳐 Model 이라 부른다. 즉, 데이터와 데이터를 가져오는 로직자체를 Model 이라고 생각할 수 있겠다. 특히, MVVM 패턴에서의 Model 은 domain 모델을 나타낸다. domain 모델이란, 소프트웨어로 해결하고자 하는 문제 영역을 개념적으로 표현한 것이다.


View : 사용자에게 화면으로 보여지는 모든 구조, 레이아웃을 View 라 부른다. View 는 model 을 시각적으로 표현하고, 사용자의 상호작용을 받는다. View 는 data binding 을 통해 이러한 입력을 View Model 에게 전달한다.


ViewModel : ViewModel 은 View 의 추상화된 형태이다. View 에 보여져야하는 데이터와 명령들을 가지고 있다. ViewModel 이 MVC 패턴의 Controller 나 MVP 패턴의 Presenter 와 다른 점은, View 가 ViewModle 을 observe(관찰) 하는 형태로 binding 되어 있기 때문에, data 의 갱신을 View 가 자동으로 받을 수 있게 되어있다는 것이다.


MVVM 패턴 적용해보기

🤣😂🤣😂😂🤣 그래서 그게뭔데...

V <--> M

View는 사용자가 보는 화면이다.

만약 Model은 모든 데이터 이다.

예를 들어 우리가 시간을 보여주는 코드를 짠다고 생각해보자.

실제로 데이터라 칭하는것은 두번째인 Date이다.

  1. 서버에서 긁어온다 (SererModel)
  2. 서버에서 온데이터를 담는다(Model)
  3. 시간(Date)를 가공해서 화면 모델에 뿌린다(ViewModel)

그것을 명칭만 다르게 해서 부르는것과 같다.
그럼 명칭을 바꿔서 조금더 확장해보자.

Repository가 추가되었다.

Repository는 DB 자체고 Entity가 그 Result 이다.

그리고 Mapper를 통해 Model이 만들어진다.

profile
쉽게 가르칠수 있도록 노력하자

0개의 댓글