android

Android MVVM

Seon Dev Notes 2024. 12. 30. 11:44

오늘은 MVVM(Model-View-ViewModel) 패턴을 알아보겠다. 안드로이드 앱의 구조를 설계하는 데 널리 사용되는 디자인 패턴 중 하나로, 앱의 코드 구조를 체계적으로 정리하고 유지보수성을 높이는 데 매우 유용하다. MVVM은 앱의 UI와 비즈니스 로직을 명확히 분리하여 더 읽기 쉽고 테스트하기 쉬운 코드를 작성할 수 있도록 돕는다.

MVVM이란?

MVVM(Model-View-ViewModel)이란 디자인 패턴 중 하나로, 사용자 인터페이스(UI)와 비즈니스 로직을 분리하여 코드를 체계적으로 관리할 수 있도록 돕는 패턴입니다. 주로 데이터 바인딩을 지원하는 프레임워크에서 많이 사용되며, 안드로이드에서도 MVVM은 앱 개발에 널리 활용됩니다.

Model

데이터를 다루는 부분. 비즈니스 로직을 포함한다

  • 데이터와 비즈니스 로직을 담당하는 부분이다.
  • 데이터를 가져오고 저장하는 역할을 수행한다.
  • 보통 데이터베이스, 네트워크 요청 또는 파일 시스템과 같은 데이터 소스와 상호 작용한다.

View

사용자가 직접 보는 UI를 담당한다

  • 사용자 인터페이스를 담당하는 부분이다.
  • 사용자가 보는 화면을 표시하고, 사용자 입력을 처리한다.

ViewModel

View와 Model 사이에 위치하여 중재하는 역할한다

  • View에서 발생하는 이벤트를 감지하고, 해당 이벤트에 맞는 비즈니스 로직을 수행한다.
  • Model과 상호작용하여 데이터를 가져오거나 업데이트하고, View에 데이터를 업데이트하는 역할을 수행한다.
  • View에 표시할 데이터를 가공하여 제공하는 역할을 수행한다.

MVVM의 장단점

장점

  • 뷰 로직과 비지니스 로직을 분리하여 생산성을 높힐 수 있다. (UI가 나오지 않아도 개발 가능)
  • 테스트가 수월해진다. (의존성이 없기 때문에)
  • 많은 기업들이 애용하는 디자인 패턴이다.

단점

  • 설계하기가 복잡하다.
  • 뷰모델이 비대해질 수 있다.

MVVM 동작 과정

  1. 사용자의 Action들은 View를 통해 들어온다.
  2. View에 Action이 들어오면 ViewModel에 Action을 전달한다.
  3. ViewModel은 Model에게 데이터를 요청한다.
  4. Model은 ViewModel에게 요청받은 데이터를 응답한다.
  5. ViewModel은 응답 받은 데이터를 가공하여 저장한다.
  6. View는 Data Binding을 이용해 UI를 갱신시킨다.

'android' 카테고리의 다른 글

Android Coroutine(코루틴)  (0) 2025.02.03
Android Kotlin  (0) 2025.02.01
Android MVP  (2) 2024.12.24
Android Flow?  (1) 2024.12.16
Android Modifier  (0) 2024.12.02