안드로이드

[안드로이드] mvvm 패턴

이손안나 2022. 10. 16. 23:08

💡 mvvm 패턴 ?

- view/viewmodel/model 을 이용해 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴.

 

  • 장점
    • livedata = observable패턴을 이요하기 때문에 데이터 베이스를 관찰하고 자동으로 ui 갱신
    • 뷰모델이 데이터를 홀드하고 있기 때문에 생명주기로부터 안전하여 불필요한 메모리 사용을 줄임
    • ui, 비즈니스 로직, 데이터베이스가 기능별로 모듈화 되어있어 유닛 테스트가 용이 해짐.

💡 ACC ?

- android architecture components = 안드로이드 아키텍쳐 컴포넌트는 앱 구조를 더 튼튼하고, 테스트에 용이하고, 유지보수성이 뛰어나게 만들어 주는 라이브러리 모음이다. 

- databing, livedata, viewmodel등의 유용한 라이브러리를 제공한다.

  • viewmodel
    • ui를 위한 데이터를 가지고 있으며 구성(화면회전, 언어변경)이 되어도 살아남는다.
  • view
    • ui를 담당하는 액티비티나 프래그먼트. 사용자와 상호작용하며 데이터 변화를 감지하기 위한 옵저버가 있다.
  • repository
    • 뷰모델과 상호작용하기 위해 잘 정리된 데이터 api를 들고 있는 클래스이다
    • 내장 데이터베이스나 외부 웹 서버 등에서 데이터를 가져온다
    • 뷰모델은 서버에 직접 접근하지 않고 repository에 접근하여 데이터를 관리한다
  • room
    • sqlite 데이터베이스를 편하게 사용하게 해주는 라이브러리이다