Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[Android] MVVM 본문

Computer/Android

[Android] MVVM

Wise-99 2023. 8. 24. 19:31
 

데이터 바인딩 및 MVVM - UWP applications

데이터 바인딩은 MVVM(Model-View-ViewModel) UI 아키텍처 디자인 패턴의 핵심이며 UI 및 비 UI 코드 간의 느슨한 결합을 가능하게 합니다.

learn.microsoft.com

다른 블로그 글 보다는 공식 문서가 좋을 것 같아 microsoft 공식 문서를 가져왔다.

 

 

 

 

📖 MVVM이란?

  • UI 및 비 UI 코드를 분리하기 위한 UI 아키텍처 디자인 패턴
  • Model, View, ViewModel로 분리
    • Model : 데이터를 관리하는 클래스
    • View : 화면 UI
    • ViewModel : 화면과 관련된 데이터를 관리하는 클래스
    • repository : 데이터를 구하는 클래스

 

MVVM의 장점

  • 단위 테스트 간소화
  • 유지 관리 효율성 향상
  • 각 컴포넌트들의 분리로 디자이너와 개발자가 병렬 작업 가능
  • LifeCycle 관리
    • ViewModel은 View의 라이프사이클을 이해하고 관리할 수 있음
    • 이로 인해 메모리 누수와 같은 문제를 방지하고, 화면 회전과 같은 View의 상태 변화에 유연하게 대응 가능

 

MVVM의 단점

  • 코드가 분리되면서 오히려 복잡해질 수 있음
    • 오히려 작은 프로젝트에는 적합하지 않을 수 있음
  • 높은 학습 곡선
  • 추가적인 오버헤드의 발생
    • ViewModelView와 Data 사이의 중간 역할
    • 데이터 변환이나 처리 과정이 늘어나면서 약간의 성능 저하가 발생할 수 있음