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

+ Recent posts