본문 바로가기

안드로이드/디자인패턴

[디자인 패턴] MVVM

디자인 패턴은 MVC를 시작으로 MVP을 거쳐 MVVM로 발전해왔다.

 

그러나 세가지 방법 모두 서로의 장단점이 있기 때문에 모두 사용되고 있으며, 프로젝트의 방향성에 맞는 디자인 패턴을 선택하여 사용하면 된다.

 

MVVM 패턴

MVVM 모델은 기존의 MVC 모델과 MVP 모델에서의 View와 Controller/Presenter 사이에서의 강한 의존성을 약화시킨 모델이다.

 

기존에는 Controller/Presenter에서 UI 조작이 일어났다면, MVVM 모델에서의 ViewModel은 UI를 조작하지 않는다.

 

대신 View에서 ViewModel을 관찰하며 UI를 업데이트를 하는데 이를 Observe라 한다.

 

https://snaildeveloper.tistory.com/38

 

[안드로이드] ViewModel

1. AAC ViewModel 이란?UI 상태를 저장하고 관리할 수 있는 클래스이점: 상태를 저장하고 Configuration change가 발생해도 유지할 수 있다. Configuration Change 종류화면 회전언어, 글꼴 변경라이트 & 다크 모

snaildeveloper.tistory.com

 

 

안드로이드 MVVM 패턴의 핵심은 Databinding이다.

ViewModel에서 관리하고 있는 UI 데이터 상태를 Databinding을 통해 XML 파일 내에서 데이터를 적용시켜주는 것이다.

https://snaildeveloper.tistory.com/36

 

[안드로이드] Databinding

안드로이드 공식문서 https://developer.android.com/topic/libraries/data-binding?hl=ko 데이터 결합 라이브러리 | Android 개발자 | Android Developers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장

snaildeveloper.tistory.com

 

 

필요성

안드로이드는 사용할 수 있는 리소스가 제한적이다.

 

이로 인해 운영체제는 언제든 앱 구성 요소를 제거할 수 있으며, 사용자 또한 강제 종료가 가능하다.

 

이처럼 강제 종료로 인해 데이터 손실이 일어날 수 있다.

 

LifeCycle에서는 이에 대한 대처 방안으로 데이터와 관련된 객체를 제공하고 있지만, 가장 바람직한 방법은 앱 구성 요소에 데이터 또는 상태를 저장하지 않는 것이다.

'안드로이드 > 디자인패턴' 카테고리의 다른 글

SOILD 원칙  (0) 2025.03.08
SingleTon  (0) 2025.03.08
함수형 프로그래밍  (0) 2024.08.13
[Java] 객체 지향  (0) 2024.01.24
[디자인 패턴] MVC 패턴  (0) 2023.11.03