| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Debug
- 아두이노
- nucleo
- GPIO
- Raspberry
- raspberrypi
- STM32
- buildroot
- atmel
- yocto
- Debugging
- AVR
- QEMU
- BeagleBone
- 라즈베리파이
- Visual Studio Code
- bare metal
- Visual Studio
- vscode
- UART
- Arduino
- 디버깅
- esp32
- Linux
- AArch64
- avr-gcc
- platformio
- C++
- 리눅스
- WPF
- Today
- Total
임베디드를 좋아하는 조금 특이한 개발자?
[WPF][MVVM] MVVM 패턴을 위한 프로젝트 구성 본문
- 개발 환경
Window 11 (버전 24H2)
Visual Studio Community 2026 (18.0.2)
.NET framework 4.7.2
1. 서론
WPF를 사용하여 GUI를 간편하게 만들 수 있습니다. 하지만 프로젝트의 크기가 커질 수록 유지보수에 큰 난황을 격게 됩니다. 그렇기에 프로젝트의 유지보수성을 높이고 목적에 따라 모듈을 나누어 의존성을 크게 낮추었습니다. 모듈간 의존성이 낮기 떄문에 특히 협업할 때 큰 장점으로 다가옵니다.
- MVVM 디자인 패턴의 구조

MVVM은 이름에도 나타나듯이 Model, View, ViewModel의 약자로 크게 3개의 모듈을 구분하여 개발을 진행하게 됩니다.
- View
실제 사용자에게 보여지는 GUI 디자인을 구성하는 모듈입니다.
WPF에서는 XAML를 통해 디자인합니다. - ViewModel
Model 모듈 내 데이터를 기반으로 View 모듈의 컨트롤에 출력하기 위한 데이터 처리를 담당하는 모듈입니다. - Model
Model은 어플리케이션에서 다루는 데이터 구조를 표현하는 모듈입니다.
위 3개 외에도 Service나 Converter등 목적에 따라 다양한 모듈을 추가할 수 있습니다.
2. 프로젝트 생성
https://littlebitodd-developer.tistory.com/41
[WPF] WPF 프로젝트 생성 및 Hello World 출력
- 개발 환경Window 11 (버전 24H2)Visual Studio Community 2022 (17.13.5)1. 서론 내가 WPF로 개발하려고 했던 가장 큰 이유는 윈도우 전용 GUI 프로그램을 빠르고 쉽게 개발하기 위해 선택하였습니다. 이전까지
littlebitodd-developer.tistory.com
위 포스트를 참고하여 프로젝트를 생성합니다.
3. View 모델 정리

프로젝트를 생성하였다면 위외 같은 구조로 생성되었을 것입니다. 이번 포스트에서 수행할 내용은 MainWindow.xaml은 View모델에 해당하므로 Views 폴더를 생성하여 해당 폴더로 이동할 것입니다.


위와 같이 View 모듈들을 저장하기 위한 Views 폴더를 생성하였습니다. 이제 MainWIndow.xaml를 Views 폴더로 이동하겠습니다.



이제 위와 같이 프로젝트를 구성하였다면 거의 끝났습니다. 하지만 프로젝트를 컴파일하게 된다면 오류가 발생할 것입니다.

위 오류가 발생한 이유는 MainWindow.xaml의 위치가 변경되어 MainWindow.xaml을 찾지 못하여 발생하는 에러입니다. 위 에러를 해결하기 위해서는 App.xaml 파일내 StartupUri 속성을 새로 변경한 위치로 변경해야합니다.


4. 정리
이번 포스트에서는 WPF 프로젝트를 생성하고 MVVM 디자인 패턴을 적용하기 위해 먼저 View 모듈인 MainApplication.xaml 파일을 Views폴더에 넣어 정리하였습니다. 이제 다음 포스트에서 ViewModel를 생성하고 텍스트 박스를 통해 데이터를 바인딩하는 방법에 대해서 알아보도록 하겠습니다.
'C# > WPF' 카테고리의 다른 글
| [WPF] XAML을 통해 Label로 HelloWorld 출력 (0) | 2025.04.04 |
|---|---|
| [WPF] 버튼 컨트롤을 통한 메세지 박스 출력 (0) | 2025.04.04 |
| [WPF] WPF 프로젝트 생성 및 Hello World 출력 (0) | 2025.04.04 |
