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