내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Model-View-ViewModel 패턴을 사용하여 UI와 앱 논리 구분

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows 8

 

Windows Phone 8 및 Windows 8 용 앱 간에 최대한으로 코드를 공유할 수 있는 가장 좋은 방법은 앱 논리에 있습니다. 각 플랫폼의 사용자 환경 지침에 맞춰 최상의 사용자 환경을 제공할 수 있도록 각 플랫폼에 맞게 앱의 UI를 조정하는 것이 좋습니다. Windows Phone 8 및 Windows 8 에서 지원되는 디자인 개념과 XAML 컨트롤은 서로 비슷하지만 XAML 공유에 투자할 필요는 없습니다. 대신 앱 논리를 재사용 가능하도록 체계화하면 훨씬 더 많은 성공을 이룰 수 있습니다. 앱에서 MVVM(Model-View-ViewModel) 디자인 패턴을 사용하는 것이 좋습니다.

이 항목에는 다음 단원이 포함되어 있습니다.

 

MVVM은 UI에서 데이터를 분리하는 방법입니다. MVVM 디자인 패턴에서 개발자는 앱 논리를 코딩할 수 있으며 디자이너는 UI를 만들 수 있습니다. XAML은 MVVM을 사용하여 앱을 빌드하기 쉽게 디자인되었으며 UI와 앱 논리를 자연스럽게 분리하는 방식으로 서로를 보완합니다. 다음 다이어그램에서는 MVVM 디자인 패턴을 사용하여 빌드된 앱의 기본 아키텍처를 보여 줍니다.

Alignment_Concept_MVVM

Model-View-ViewModel 디자인 패턴에서 앱은 세 개의 일반 구성 요소로 구성됩니다.

  • 모델: 앱에서 사용하는 데이터 모델을 나타냅니다. 예를 들어 사진 공유 앱에서 이 레이어는 사진 라이브러리에서 읽고 쓰는 데 사용된 단말기 및 API에서 사용할 수 있는 사진 집합을 나타낼 수 있습니다.

  • 보기: 일반적으로 앱이 여러 페이지의 UI로 구성됩니다. 사용자에게 표시되는 각 페이지가 MVVM 용어로 보기입니다. 보기는 사용자에게 표시되는 내용을 정의하고 스타일을 지정하는 데 사용된 XAML 코드입니다. 모델의 데이터가 사용자에게 표시되며 앱의 현재 상태에 따라 UI에 이 데이터를 제공하는 것이 ViewModel의 작업입니다. 예를 들어 사진 공유 앱에서는 사용자에게 단말기의 앨범 목록, 앨범의 사진 및 사용자에게 특정 사진을 보여 주는 다른 항목을 보여 주는 보기가 UI가 됩니다.

  • ViewModel: ViewModel은 데이터 모델이나 단순히 모델을 앱의 UI 또는 보기에 연결합니다. ViewModel은 모델의 데이터를 관리할 논리를 포함하며 XAML UI 또는 보기에서 바인딩할 수 있는 속성 집합으로 데이터를 노출합니다. 예를 들어 사진 공유 앱에서 ViewModel은 앨범 목록을 노출하고 각 앨범에 대해 사진 목록을 노출합니다. UI는 사진을 가져오는 위치와 사진이 검색되는 방식을 알 수 없습니다. 단순히 ViewModel에서 노출한 사진 집합만 알 수 있으며 사용자에게 표시합니다.

MVVM에 대한 자세한 내용은 Windows Phone 8의 Model-View-ViewModel 패턴 구현을 참조하세요. MVVM 작성을 훨씬 더 간단하게 하도록 빌드된 프레임워크 외에도 MVVM을 이해하는 데 도움이 되는 많은 다른 리소스를 사용할 수 있습니다. MVVM이나 다른 모든 분리 패턴은 앱을 체계화하는 편리한 방법이며, 특히 Windows Phone 8 및 Windows 8 용 앱 빌드를 고려하는 경우에는 더욱 편리합니다. 이 패턴을 사용하면 코드를 최대한으로 공유할 수 있습니다.

Windows Phone 8 및 Windows 8 용 앱을 빌드하는 경우 각 플랫폼에 맞게 조정된 UI를 디자인하고 개발하여 최상의 사용자 환경을 제공하는 것이 좋습니다. 앱의 UI 또는 보기 대부분은 플랫폼과 관련됩니다. 나머지 앱은 Windows Phone 8 앱과 Windows 스토어 앱 간에 이식 가능하거나 공통될 수 있습니다. 이에 대한 예는 다음 다이어그램에 나와 있습니다.

Alignment_Concept_MVVMCallouts

이식 가능한 코드와 공용 코드 사이에는 차이가 있습니다. 이식 가능한 코드는 한 번 컴파일하여 Windows Phone 8 및 Windows 8 에서 실행할 수 있는 모든 코드입니다. 예를 들어 대부분의 .NET API는 두 플랫폼 간에 이식할 수 있으며 이식 가능한 클래스 라이브러리에서 구현할 수 있습니다. 공용 코드는 두 플랫폼에 공통되는 API를 사용하는 코드이지만 이식할 수는 없습니다. 예를 들어 Windows Phone 8 과 Windows 8 간에 공통되는 Windows 런타임 API를 사용하는 코드는 공용 코드로 간주되지만 각 플랫폼에 대해 코드를 컴파일해야 하므로 이식할 수 있습니다. 또한 이식 가능한 클래스 라이브러리에서 사용할 수도 없습니다. 앱에서 코드를 공유할 수 있는 정확한 양은 MVVM을 사용하는 경우에도 앱의 복잡성 및 앱에서 사용하는 API에 따라 달라집니다.

표시:
© 2014 Microsoft