이 자습서에서는 에이전트 모드의 GitHub Copilot 사용하여 완전한 WinUI 3 앱(간단한 노트 앱 및 항목 추가 및 삭제 기능, 설정 페이지를 빌드합니다. 각 단계에서 어떤 프롬프트를 정확히 사용해야 하는지, 그리고 WinUI 3 플러그인과 Learn MCP 서버가 코파일럿을 전체적으로 정확하게 유지하는 방법을 확인할 수 있습니다.
- Copilot 사용하여 WinUI 3 프로젝트 스캐폴드
- Copilot 사용하여 XAML UI 생성
- Copilot 사용하여 비즈니스 논리 추가
- Learn MCP 서버를 사용하여 Windows 알림 추가
- winapp CLI를 사용하여 앱 패키지
사전 요구 사항
- WinUI 3 플러그 인 및 LEARN MCP Server를 사용하여 설정한 GitHub Copilot
Windows 개발을 위한 GitHub Copilot 설정 - Visual Studio 2026의 WinUI 애플리케이션 개발 워크로드
-
winapp CLI 설치됨(
winget install Microsoft.winappcli)
1부: 프로젝트 구조 잡기
WinUI 프로젝트 만들기
새로운 WinUI 3 프로젝트를 만듭니다. Visual Studio에서 File>New>Project를 선택하고, WinUI로 필터링한 다음, WinUI 빈 앱(패키지) C# 템플릿을 선택합니다. 프로젝트 NotesApp 이름을 지정하고 엽니다.
Copilot 에이전트 모드를 열고 구조체를 스캐폴드합니다.
Visual Studio Copilot Chat 패널을 열고 agent 모드로 전환합니다. 그런 다음, 다음을 입력합니다.
"NotesApp이라는 새 빈 WinUI 3 프로젝트가 있습니다. NavigationView가 있는 MainWindow, 세 페이지(노트, 즐겨찾기, 설정), 기본 ViewModel 클래스와 NotesViewModel이 있는 ViewModels 폴더, ID, 제목, 콘텐츠 및 CreatedAt 속성이 있는 메모 모델이 있는 Models 폴더와 같은 구조로 MVVM 아키텍처를 설정합니다. CommunityToolkit.Mvvm을 사용합니다."
Copilot 폴더 구조를 만들고, CommunityToolkit.Mvvm NuGet 패키지 참조를 추가하고, 기본 클래스를 생성하고, NavigationView를 연결합니다. 출력을 검토합니다. 문제가 있는 경우 Copilot 동일한 채팅 세션에서 수정하도록 요청합니다.
팁 (조언)
Copilot가 Windows.UI.Xaml 대신 Microsoft.UI.Xaml 네임스페이스를 생성하는 경우 WinUI 3 플러그인의 사용자 지정 지침에서 이를 감지해야 합니다. 표시되는 경우 "Windows.UI.Xaml"의 모든 인스턴스를 수정합니다. 이것은 WinUI 3 프로젝트이므로 모든 XAML 네임스페이스는 "Microsoft.UI.Xaml"을 사용해야 합니다."
2부: UI 빌드
노트 페이지 생성하기
"노트 페이지에 대한 XAML을 생성합니다. 제목과 잘린 콘텐츠 미리 보기가 있는 노트를 보여 주는 ListView, 새 노트를 추가하려면 아래쪽의 TextBox 및 단추, 각 항목의 삭제 단추가 있어야 합니다. NotesViewModel에 바인딩합니다. WinUI 3 컨트롤과 Fluent Design의 간격을 사용하세요.
Copilot ViewModel에 바인딩된 XAML을 생성합니다. 필요에 따라 스타일 또는 레이아웃을 조정하도록 요청합니다. 예를 들면 다음과 같습니다.
"목록 항목이 WinUI 갤러리의 카드 예제와 유사하게 미묘한 그림자가 있는 카드 스타일을 사용하도록 합니다."
설정 페이지 생성
"어두운/밝은 테마에 대한 토글과 확인 대화 상자가 있는 '모든 노트 지우기' 단추가 있는 설정 페이지를 생성합니다. MessageDialog가 아닌 확인을 위해 ContentDialog를 사용합니다."
WinUI 3 플러그인의 지침은 Copilot을 올바른 WinUI 3 방법인 ContentDialog로 유도하고, 더 이상 사용되지 않는 MessageDialog에서 멀어지도록 합니다.
3부: 비즈니스 논리 추가
메모 지속성 구현
"System.Text.Json을 사용하여 NotesViewModel에서 메모 지속성을 구현하여 Notes 컬렉션을 ApplicationData.Current.LocalFolder의 파일로 직렬화하고 역직렬화합니다. 시작 시 노트를 로드하고 컬렉션이 변경되면 언제든지 저장합니다."
Copilot 로드/저장 논리를 생성합니다. 오류 처리를 추가하도록 요청합니다.
"파일 작업 주위에 try/catch를 추가하고 디버그 출력에 로그 오류를 추가합니다."
테마 전환 구현
"SettingsViewModel에서 테마 토글을 구현합니다. 토글이 변경되면 올바른 WinUI 3 접근 방식을 사용하여 애플리케이션의 주 창에서 RequestedTheme을 업데이트합니다."
4부: Windows 알림 추가
Copilot에게 메모가 저장될 때 실행되는 알림을 추가하라고 요청하세요.
"메모가 디스크에 성공적으로 유지되면 메모 제목이 부제목으로 포함된 '메모 저장됨'을 표시하는 Windows 앱 알림을 추가합니다. Windows 앱 SDK AppNotificationManager를 사용합니다."
Learn MCP Server가 연결되면 Copilot 현재 AppNotificationBuilder API를 조회하고 올바른 알림 코드를 생성할 수 있습니다. 다음과 같이 생성해야 합니다.
var notification = new AppNotificationBuilder()
.AddText("Note saved")
.AddText(note.Title)
.BuildNotification();
AppNotificationManager.Default.Show(notification);
5부: 앱 패키지
Microsoft Store 배포하거나 게시할 준비가 되면 적절한 MSIX 패키지를 빌드합니다.
winapp pack --output ./publish
이것은 사이드로딩 또는 스토어 제출을 위해 준비된 서명된 MSIX 패키지를 생성합니다. Copilot에게 패키지 매니페스트 업데이트를 요청하세요.
"Store 제출에 대한 표시 이름, 설명 및 게시자를 설정하도록 Package.appxmanifest를 업데이트하는 방법을 보여 주세요."
요약
다음을 사용하여 완전한 WinUI 3 노트 앱을 빌드했습니다.
- 스캐폴딩, UI 생성 및 비즈니스 논리에 대한 Copilot Agent 모드
- WinUI 3 플러그인을 사용하여 Copilot이 최신의 올바른 API와 일치하도록 유지
- Windows 앱 SDK 알림 API를 조회하려면 LEARN MCP Server
- 패키지 ID 및 MSIX 패키징을 위한 winapp CLI
선택 사항: 앱에 디바이스 내 AI 추가
노트 앱은 완벽하게 작동하지만 사용자의 디바이스에서 완전히 실행되는 AI 기능을 추가하여 더 자세히 활용할 수 있습니다. Foundry Local 을 사용하면 언어 모델을 로컬로 실행하고 OpenAI 호환 API를 노출합니다.
Foundry 로컬 설치 및 모델 다운로드
winget install Microsoft.AIFoundry.Local
foundry model run phi-4-mini
모델이 시작되면 http://localhost:5272/openai/v1에서 수신 대기합니다.
NuGet 패키지 추가
dotnet add package Azure.AI.OpenAI
노트 페이지에 "요약" 단추 추가
Copilot에게 질문하기:
"메모 페이지에 '요약' 단추를 추가합니다. 클릭하면 선택한 노트의 내용을 Azure.AI.OpenAI 패키지를 사용하여 http://localhost:5272/openai/v1 로컬 AI 엔드포인트로 보내고, ContentDialog에 요약을 표시해야 합니다. 모델 이름은 phi-4-mini입니다."
Copilot AzureOpenAIClient 호출 및 대화 상자를 생성합니다. OpenAI 호환 API는 코드가 localhost를 가리키는 클라우드 API 호출과 동일하게 보인다는 것을 의미합니다.
var client = new AzureOpenAIClient(
new Uri("http://localhost:5272/openai/v1"),
new ApiKeyCredential("foundry-local"));
var completion = await client.GetChatClient("phi-4-mini")
.CompleteChatAsync($"Summarize this note in 2 sentences: {note.Content}");
사용자에게 표시되는 내용
인터넷 연결이 필요하지 않습니다. API 키가 없습니다. 그 모델은 PC에서 빠르게 실행되며, 개인적이고 무료입니다.
팁 (조언)
Copilot+ PC를 대상으로 하는 앱의 경우 foundry Local을 Phi Silica 교체하여 NPU를 더 빠른 유추를 위해 직접 사용할 수 있습니다. 코파일럿이 전환을 도울 수 있지만, API 표면은 OpenAI와 호환되지 않는 대신 Windows AI API로 다릅니다.
- 에이전트 도구 개요
- Foundry 로컬 개요 — Windows 로컬로 모든 모델을 실행합니다.
- Phi Silica — Copilot+ PC에서 NPU로 가속된 추론
- Windows AI API 개요
- Windows 앱 개발 CLI(winapp CLI)
- Windows 앱 SDK 설명서
Windows developer