UWP 개발, UWP MVVM 앱 개발하기

최근 몇 년간은 다양한 플랫폼과 함께 크로스 플랫폼 개발이 중요해지면서 UWP(Universal Windows Platform) 개발도 주목받고 있습니다. UWP는 Windows 10 및 그 이후의 버전에서 동작하는 앱을 개발할 수 있는 플랫폼으로, 고급 API와 도구를 제공하여 개발자가 더 나은 사용자 경험을 제공할 수 있도록 돕습니다. 이번 글에서는 UWP MVVM 패턴을 사용하여 앱을 개발하는 방법을 자세하게 설명하고, 예제 코드를 통해 개념을 명확히 하겠습니다.

UWP와 MVVM 패턴

MVVM(Model-View-ViewModel) 패턴은 UI와 비즈니스 로직을 분리하기 위한 디자인 패턴으로, UWP 앱 개발에서 매우 유용하게 사용됩니다. MVVM 패턴의 각 구성 요소를 살펴보겠습니다:

  • Model: 데이터와 비즈니스 로직을 포함합니다. 주로 데이터베이스와의 상호 작용이나 API 호출이 여기에서 이루어집니다.
  • View: 사용자에게 보여지는 UI를 의미합니다. XAML을 사용하여 UI를 정의합니다.
  • ViewModel: 뷰와 모델 사이의 중재자 역할을 합니다. 데이터 바인딩을 통해 모델의 데이터를 뷰에 전달하고, 뷰에서 발생하는 사용자 입력을 모델에 전달합니다.

UWP MVVM 아키텍처의 장점

  • 유지 보수성: UI와 로직이 분리되어 있어 코드 유지 보수가 용이합니다.
  • 테스트 용이성: ViewModel을 테스트할 수 있어 단위 테스트가 용이합니다.
  • 재사용성: ViewModel과 Model 컴포넌트의 재사용이 가능합니다.

UWP MVVM 앱 개발 준비

UWP MVVM 앱을 개발하기 위해서 Visual Studio를 설치해야 합니다. 또한, UWP 개발을 위한 SDK가 포함되어 있는 최신 버전의 Visual Studio를 사용하는 것이 좋습니다.

Visual Studio의 설치가 완료되면 다음 단계를 통해 새로운 UWP 프로젝트를 생성합니다:

  1. Visual Studio를 실행합니다.
  2. 파일 메뉴에서 ‘새로 만들기’ > ‘프로젝트’를 선택합니다.
  3. UWP를 선택하고 ‘빈 앱 (UWP)’을 선택한 뒤, 프로젝트 이름을 지정합니다.

MVVM 구조 생성하기

프로젝트가 생성되면 MVVM 구조를 설정합니다. 먼저, 다음과 같은 폴더 구조를 만들어 주세요:

/MyUwpApp
|--- /Models
|--- /ViewModels
|--- /Views

모델 정의하기

모델은 앱에서 사용할 데이터 구조와 비즈니스 로직을 포함합니다. 간단한 ‘Person’ 모델을 생성해 보겠습니다.

namespace MyUwpApp.Models
{
    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
}

ViewModel 정의하기

ViewModel은 모델과 뷰를 연결하는 역할을 합니다. ‘MainViewModel’을 생성하여 사용자 인터페이스에 표시할 사람 목록을 관리합니다.

using System.Collections.ObjectModel;
using System.ComponentModel;
using MyUwpApp.Models;

namespace MyUwpApp.ViewModels
{
    public class MainViewModel : INotifyPropertyChanged
    {
        private ObservableCollection<Person> _people;
        public ObservableCollection<Person> People
        {
            get { return _people; }
            set 
            {
                _people = value;
                OnPropertyChanged(nameof(People));
            }
        }

        public MainViewModel()
        {
            People = new ObservableCollection<Person>
            {
                new Person { Name = "홍길동", Age = 30 },
                new Person { Name = "이순신", Age = 40 }
            };
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

뷰 정의하기

UWP에서는 주로 XAML을 사용하여 사용자 인터페이스를 정의합니다. MainPage.xaml을 수정하여 ViewModel과 연결합니다.



    
        
    

    
        
            
                
                    
                        
                        
                    
                
            
        
    

앱 실행하기

이제 모든 것이 준비되었으므로 앱을 실행해 보겠습니다. Visual Studio에서 실행 버튼을 클릭하여 로컬에서 앱을 실행하십시오. 사람 목록이 표시되어야 하며, 각 사람의 이름과 나이가 보일 것입니다.

결론

이 글에서는 UWP 앱 개발의 기초와 MVVM 디자인 패턴을 사용하는 방법, 그리고 간단한 예제 코드를 통해 실제 애플리케이션을 구축하는 과정을 살펴보았습니다. MVVM 패턴을 사용하면 코드의 유지 보수가 용이하고 테스트 가능성을 높일 수 있습니다. UWP를 통해 구현할 수 있는 많은 기능들이 있으므로 계속해서 학습하고 발전해 보시기 바랍니다.

추가 자료