오늘은 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 동작 과정
- 사용자의 Action들은 View를 통해 들어온다.
- View에 Action이 들어오면 ViewModel에 Action을 전달한다.
- ViewModel은 Model에게 데이터를 요청한다.
- Model은 ViewModel에게 요청받은 데이터를 응답한다.
- ViewModel은 응답 받은 데이터를 가공하여 저장한다.
- 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 |