MVVM Light
- MVVM 디자인 패턴을 간편하고 효율적으로 적용하기 위한 경량화된 프레임워크
- 스위스 개발자 Laurent Bugnion이 개발하였음
장점
- 경량성 : 복잡한 프레임워크에 비해 비교적 단순한 구조를 가짐
- 간단한 바인딩 및 명령 처리 : RelayCommand, ViewModelBase 등 편의 클래스를 통한 속성 및 명령 바인딩 지원
- 메시징 시스템 : 뷰모델 간의 느슨한 결합을 지원하는 Messenger 기능
- DI/IoC 지원 : 기본적인 ServiceLocator, Simpleloc 등을 통해 뷰모델 및 서비스의 인스턴스 관리 용이
MVVM Light에서의 MVVM 지원
- ViewModelBase : INotifyPropertyChanged 인터페이스를 구현한 기본 뷰모델 클래스, 속성 변경 시 UI에 자동 반영되도록 지원
- RelayCommand : 커맨드 패턴을 손쉽게 구현하는 클래스, 버튼 클릭, 메뉴 선택 등 사용자의 명령을 쉽게 처리
- Messenger : 뷰모델들 사이에 이벤트나 메시지를 전달할 수 있는 Pub/Sub 모델 제공
- Simpleloc / ServiceLocator : 종속성 주입을 단순화하는 IoC 컨테이너, ViewModel 인스턴스 생성 및 관리 용이
IoC:
"헐리우드 원칙(Hollywood Principle)"으로 비유.“날 부르지 마, 내가 널 부를게(Don’t call us, we’ll call you)”라는 원칙처럼, 객체 스스로 뭔가를 호출하는 대신, 외부에 의해 객체가 필요한 시점에 호출되거나 필요한 의존성을 전달받게 만듦.
DI:
IoC를 구현하는 구체적 수단.IoC 개념을 단순히 선언하는 데 그치지 않고, “A 객체가 B 객체를 필요로 할 때, B를 A 내부에서 직접 new 하지 않고 외부에서 주입받는다”는 명확한 구현 메커니즘을 제시하는 것.
요약
- IoC 설정: SimpleIoc나 ServiceLocator를 사용해 ViewModel과 서비스 등록.
- ViewModelBase 상속: 속성 변경 알림과 명령 바인딩 지원.
- RelayCommand: UI 이벤트를 ViewModel 메서드에 바인딩.
- Messenger: 뷰모델 간 메시지 교환으로 결합도 감소.
- View(XAML) 바인딩: DataContext에 뷰모델 인스턴스를 할당하고, 바인딩 식으로 UI-ViewModel 연결.
'개인 공부 > 인턴' 카테고리의 다른 글
C# 패턴 참고 자료 (3) | 2024.12.18 |
---|---|
중재자 패턴, 옵저버 패턴, 퍼사드 패턴 (3) | 2024.12.16 |
패턴과 구조 (1) | 2024.12.15 |
UDP 통신 참고 자료 (2) | 2024.12.12 |
클래스 다이어그램 (1) | 2024.12.02 |