[kotlin] MVVM이란 ?

Leechaeyeon·2023년 8월 2일

여러 채용 공고를 볼때 아래 공통 사항을 확인해보자


MVI/MVP/MVVM등의 디자인 패턴 이해와 개발 적용 경험

위 처럼 우대사항 또는 자격조건에 들어간다.
이렇게 채용공고에서 본다라는 말 == 실무에서 많이 사용한다는 점
그렇기 때문에 우리가 배워야 한다는 것이다.

먼저 MVVM에 대해서 배워보자


MVVM패턴이란 ?

The Model-View-ViewModel (MVVM) pattern helps to cleanly separate the business and presentation logic of an application from its user interface (UI). Maintaining a clean separation between application logic and the UI helps to address numerous development issues and can make an application easier to test, maintain, and evolve. It can also greatly improve code re-use opportunities and allows developers and UI designers to more easily collaborate when developing their respective parts of an app.

간단하게 해석해보자면
MVVM( Model-View-View Model ) 패턴은 Model,View,ViewModel을 분리해 뷰에 모델간의 의존성을 줄여주도록한다.

View

  • 애플리케이션에서 사용자가 직접 보는 화면 (UI) , 레아이웃 및 모양을 정의하는 역할

Model

  • 애플리케이션에서 데이터를 저장하고 처리하는 계층을 의미

View Model

  • 애플리케이션에서 View와 Model사이에 존재하여 서로간의 중재를 하는 역할을 수행
    • View-ViewModel : 사용자와의 뷰를 상호작용 ( 클릭, 키보드 동작 등 ) 을 수신하여 이에 대한 처리를 View와 ViewModel을 연결하고 있는 데이터 바인딩을 통해 서로간을 연결
    • Model-ViewModel : 사용자의 데이터의 변경을 발생하는 경우 데이터를 가져오거나 갱신 한 뒤 View에게 전달하여 사용자에게 전달하는 역할을 수행

🎇 MVVM 아키텍처 패턴의 흐름 - 상세 흐름

  1. 사용자가 입력한 값이 View를 통해 들어옵니다. (사용자 → View)
  2. View에 입력값이 들어오면 ViewModel로 입력 값을 전달합니다. (View → ViewModel)
  3. 전달받은 ViewModel은 Model에게 데이터 요청을 보냅니다. (ViewModel → Model)
  4. Model은 ViewModel에게 요청받은 데이터를 Response 합니다(ViewModel ← Model)
  5. ViewModel은 그 값을 처리하여 내부에 저장합니다.
  6. View는 ViewModel과의 ‘데이터 바인딩’을 통해 화면상에 표출합니다.(View ↔︎ ViewModel)

이번에 게시판 프로젝트를 하면서 이론자체는 이해가 되지만, 적용하기 까지는 좀 더 노력이 필요하다.

0개의 댓글