Windows 앱 개발 질문과 대답

이 FAQ는 프로젝트에 적합한 프레임워크를 선택하는 지침을 포함하여 Windows 애플리케이션 개발에 대한 일반적인 질문에 대한 답변을 제공합니다. 다음 내용을 다룹니다.

  • 시작 및 Windows 앱 개발 환경
  • WinUI 3, Windows Presentation Foundation(WPF) 및 Windows Forms(WinForms)를 사용한 네이티브 Windows 전용 앱 개발
  • Windows 소프트웨어 개발 키트 (SDK) 및 Windows 앱 SDK.
  • 플랫폼 간 개발 전략의 일환으로 Windows 대상으로 지정합니다.
  • .NET MAUI, Blazor 및 ASP.NET Core 사용한 하이브리드 및 웹앱 개발
  • Microsoft 투자를 이해하면서 접근 방식을 선택하는 방법.

Windows 앱 개발 환경

Windows 개발 기술에 대한 간단한 개요를 찾을 수 있나요?

Windows 개발자를 위한 오늘의 옵션에 대한 개요는 WinUI 3, .NET MAUI, React Native, Blazor 및 PWA(프로그레시브 Web Apps)에 대해 설명하는 이상적인 개발 플랫폼 선택 Windows Dev Chat 에피소드를 시청하세요. Windows 개발자 채팅 재생 목록에서 다른 에피소드를 찾을 수 있습니다.

Windows 개발자를 위해 앱 개발 옵션을 참조할 수도 있습니다.

cloud services 시대에 최신 디지털 변환에 클라이언트 앱 개발이 여전히 중요한가요?

클라우드 서비스 시대에 클라이언트 앱 개발은 사용자 디바이스에서 응답성이 뛰어나고 의미 있는 상호 작용을 제공하는 데 여전히 중요합니다.

클라이언트 앱이 중요한 이유는 다음과 같습니다.

  • 디바이스 도달률: 클라이언트 앱을 사용하면 선택한 디바이스에서 사용자에게 애플리케이션을 직접 가져올 수 있습니다.
  • Gateway to Intelligent Services: 클라이언트 앱은 종종 사용자가 서비스와의 첫 번째 상호 작용입니다. 지능형 기능을 소개하고 제품을 다른 사용자와 차별화할 수 있는 풍부한 대화형 인터페이스를 제공합니다.
  • 클라우드 통합을 통한 확장성: 잘 통합된 클라이언트 앱은 백엔드 클라우드 서비스와 손쉽게 동기화되어, 사용자 기반이 증가함에 따라 실시간 데이터 액세스 및 원활한 확장성을 구현할 수 있습니다.
  • 향상된 생산성 및 사용자 충성도: 신중하게 디자인된 앱은 생산성을 향상시키고 사용자가 시간이 지남에 따라 제품 또는 서비스에 계속 참여할 수 있습니다.

네이티브 Windows 전용 앱 개발

Windows 앱 SDK란 무엇입니까?

이 Windows 앱 SDK WinUI 3, 앱 수명 주기, 창, 알림, 리소스 및 텍스트 API를 포함하여 Windows 데스크톱 앱에 대해 독립적으로 서비스되는 구성 요소를 제공합니다. Windows 릴리스 및 Windows 앱 SDK 버전의 지원 수명 주기에 따라 Windows 10 버전 1809 이상에서 실행되는 앱을 지원합니다.

Windows 앱 SDK와 Windows SDK의 차이점은 무엇입니까?

둘 다 Windows 앱을 빌드할 수 있는 SDK(소프트웨어 개발 키트)입니다.

Windows 앱 SDK는 Windows와 독립적으로 제공되며, Windows 10 버전 1809까지의 지원되는 Windows 릴리스 전반에서 작동하는 구성 요소를 제공합니다. 여기에는 앱 수명 주기, 창, 알림, 리소스, 텍스트 및 기타 기능을 위한 WinUI 3 및 API가 포함됩니다.

Windows SDK는 Win32, WinRT, COM, DirectX, 디바이스 및 셸 기능과 같은 운영 체제 API에 대한 헤더, 라이브러리, 메타데이터 및 도구를 제공합니다.

Windows 앱 SDK Windows SDK를 대체하지 않습니다. Windows 앱 SDK 채택하는 앱은 Windows SDK API를 계속 사용할 수 있으며 WinUI 3 앱은 일반적으로 둘 다 사용합니다.

Windows 전용 앱을 개발하기 위해 새로운 팀을 구성하고 있습니다. WinUI 3, WPF 또는 WinForms와 같은 네이티브 Windows 프레임워크를 사용하여 개발해야 하는 이유는 무엇인가요?

다음은 Windows 전용 앱에 대한 네이티브 Windows 프레임워크를 선택하는 몇 가지 이유입니다.

  • Performance: 네이티브 Windows 프레임워크는 최신 Windows 하드웨어를 활용하도록 최적화되어 빠르고 응답성이 뛰어난 사용자 환경을 제공합니다.
  • 인테그레이션: Windows Windows만 사용할 수 있는 정교한 환경을 지원하는 다양한 API와 함께 제공됩니다. 네이티브 프레임워크는 이러한 기능 및 API와 긴밀한 통합을 제공합니다.
  • Native 사용자 환경: 네이티브 프레임워크는 Windows 디바이스에서 일관된 환경을 제공하여 앱이 어디서나 멋지게 보이고 작동하도록 합니다.
  • 오프라인 지원: 네이티브 프레임워크는 오프라인 시나리오를 지원하므로 인터넷 연결 없이도 앱이 작동할 수 있습니다.
  • 지원 및 도구: Microsoft 네이티브 프레임워크를 유지 관리하고 현재 SDK, 설명서, 디버깅 도구 및 샘플을 제공합니다.
Windows 앱 개발에 Microsoft 최신 투자를 활용하는 데 사용해야 하는 프레임워크는 무엇입니까?

새로운 범용 Windows 데스크톱 앱을 빌드하는 경우 WinUI 3을 사용하는 것이 좋습니다. WinUI 3은 Windows 앱 SDK 함께 제공되는 네이티브 UI 프레임워크입니다. Windows 데스크톱 앱을 지원하고 현재 Fluent 컨트롤 및 Windows 플랫폼 기능에 대한 액세스를 제공합니다.

기존 Windows 앱에서 Windows 앱 SDK/WinUI 3을 사용할 수 있나요?

WinUI 3(UI 프레임워크)은 Windows 앱 SDK(Windows 플랫폼 개발 프레임워크)와 함께 제공됩니다.

앱의 UI를 WinUI 3으로 마이그레이션하거나 WinUI XAML Islands를 사용하여 지원되는 기존 데스크톱 호스트에서 Windows 앱 SDK 컨트롤을 호스트할 수 있습니다. 레거시 시스템 XAML Islands는 UWP XAML 컨트롤을 호스트하고 다른 API를 사용합니다.

Windows 앱 SDK 요소는 기존 앱이 빌드된 방식에 따라 데스크톱 앱에서 종종 사용할 수 있습니다. UWP 앱은 Windows 앱 SDK 지원되지 않습니다.

즉, WPF/MFC/WinForms 앱은 WinUI 3과 관련이 없는 Windows 앱 SDK API를 사용할 수 있습니다. 예를 들어 앱 수명 주기, 창 및 앱 알림이 있습니다.

자세한 내용은 기존 프로젝트에서 Windows 앱 SDK 사용 참조하세요.

Visual Studio 사용하여 WinUI 3 앱을 빌드해야 하나요?

아니요. WinUI 3 XAML 빌드는 MSBuild를 사용하지만 다른 편집기에서 명령줄에서 .NET SDK 및 현재 WinUI 3 템플릿을 사용하여 빌드할 수 있습니다. 명령줄 빠른 시작을 참조하세요.

Visual Studio 2026은 가장 풍부한 통합 편집, 디버깅, 프로파일링 및 XAML 핫 다시 로드 환경을 제공합니다. 도구 요구 사항과 일치하는 워크플로를 사용합니다.

앱을 실행할 때 "DLL 'Microsoft.ui.xaml.dll'을 로드할 수 없습니다." 오류가 발생합니다. 어떻게 수정합니까?

이 오류는 일반적으로 컴퓨터에 Windows 앱 SDK 런타임이 설치되지 않은 unpackaged 앱 시나리오에서 발생합니다. 다음을 시도해 보세요.

  • packaged 앱(권장 기본값)을 실행하는 경우 MsixPackage 시작 프로필이 선택된 상태에서 Visual Studio 통해 시작해야 합니다(일반 실행 프로필 아님). MSIX 패키징 단계에서는 필요한 런타임 구성 요소를 설치합니다.
  • 프레임워크 종속 패키지되지 않은 앱을 실행하는 경우 일치하는 Windows 앱 SDK 런타임을 설치합니다. 자체 포함 배포에는 Windows 앱 SDK 종속성이 포함됩니다.
  • 프로젝트가 배포 모델과 일치하는지 확인합니다. 일반 .NET 패키지되지 않은 앱의 경우 설정을 <WindowsPackageType>None</WindowsPackageType> 사용하면 Windows 앱 SDK 런타임 자동 초기화가 가능합니다. 동적 종속성 초기화를 명시적으로 제어해야 하는 경우에만 부트스트래퍼 API를 직접 사용합니다.

배포 요구 사항에 대한 자세한 내용은 Windows 앱 SDK 사용하는 앱 배포를 참조하세요.

UWP용 WinUI 3과 WinUI 2의 차이점은 무엇인가요?

WinUI 3은 Windows 데스크톱 앱용 Microsoft 현재 네이티브 UI 프레임워크이며 Windows 앱 SDK 일부로 제공됩니다.

UWP용 WinUI라고도 하는 WinUI 2는 UWP 앱용 컨트롤 및 스타일 라이브러리입니다. WinUI 2 및 WinUI 3은 다른 XAML 네임스페이스를 사용하며 이진 호환되지 않습니다.

Windows 앱 SDK 및 WinUI 3을 사용하여 앱을 빌드할 때 "WinUI 앱"을 빌드하고 있나요?

예. WinUI 3 앱은 UI가 WinUI 3 및 Windows 앱 SDK 사용하는 앱의 가장 명확한 용어입니다. WinUI 앱 은 컨텍스트가 명확하지 않은 경우에도 일반적으로 사용됩니다.

컨트롤을 점진적으로 바꿔서 UWP 컨트롤용 WinUI를 사용하여 UWP 앱을 WinUI 3으로 증분 업데이트할 수 있나요?

아니요. Windows 앱 SDK UWP 앱에서 사용할 수 없으며 UWP용 WinUI는 WinUI 3과 혼합할 수 없습니다. UWP에서 Windows 앱 SDK로 이전하는 방법을 참조하세요.

UWP 앱을 WinUI 3으로 마이그레이션하는 것이 얼마나 어려운가요?

UWP 및 WinUI 3은 많은 XAML 개념을 공유하지만 마이그레이션은 직접적인 네임스페이스 변경이 아닙니다. 비용은 주로 다음에 따라 달라집니다.

  1. Project 파일 및 MSBuild 사용자 지정: 마이그레이션 작업은 고급 MSBuild 사용량에 따라 달라집니다.
  2. .NET API 마이그레이션: .NET Native를 사용하는 UWP 앱은 Native AOT를 사용하여 현재 지원되는 .NET 릴리스로 이동할 수 있습니다. 이 현대화는 UI를 WinUI 3으로 마이그레이션하는 경우와는 별개입니다.
  3. UI 구성 요소 라이브러리: 라이브러리에는 WinUI 3을 대상으로 하는 버전이 있어야 합니다.
  4. 창 처리 및 애플리케이션 모델 API:CoreWindow, ApplicationView 또는 GetForCurrentView와 같은 개념에 연결된 UWP API에는 Windows 앱 SDK 대체 항목이나 다른 데스크톱 방식이 필요합니다.
  5. C++ 언어 프로젝션: UWP 앱이 대체된 C++/CX 프로젝션을 사용하는 경우 해당 코드를 C++/WinRT로 이식합니다.

자세한 내용은 UWP에서 Windows 앱 SDK 마이그레이션하고 UWP에서 Windows 앱 SDK API 매핑으로 마이그레이션을 참조하세요.

스토어에 기존 UWP 앱이 있는 경우 동일한 식별자를 사용하여 패키지된 새 WinUI 3 앱을 게시할 수 있나요?

예, 업그레이드된 앱은 애플리케이션 ID를 업데이트하지 않고 게시할 수 있습니다. 이전 버전의 사용자는 새 버전으로 업데이트됩니다. 데스크톱 앱에만 적용됩니다. Xbox, HoloLens 및 표준 Surface Hub 앱은 WinUI 3으로 마이그레이션할 수 없습니다.

WinUI 3 앱을 패키지하거나 배포하려면 어떻게 해야 하나요?

패키지 및 배포 개요를 참조하세요.

Windows 앱 SDK 마이그레이션 지침은 어디서 찾을 수 있나요?

UWP에서 Windows 앱 SDK로 이전하는 방법을 참조하세요.

WinUI 3을 사용하려면 XAML 태그를 사용해야 하나요?

아니요. 코드에서 UI 컨트롤을 만들 수 있습니다. 그러나 선언적 XAML 태그에서 UI를 나타내는 것은 향상된 개발자 환경을 포함하여 많은 이점을 제공합니다.

  • UWP에서 WinUI 3으로 마이그레이션: 많은 XAML 및 UI 개념이 이월되지만 네임스페이스, 프로젝트 모델 및 일부 API는 다릅니다.
  • WPF에서 WinUI 3로 마이그레이션: 많은 개념이 그대로 적용되지만 컨트롤 집합과 API는 다릅니다.
Visual Studio WinUI 3용 디자인 화면 또는 UI 디자이너가 있나요?

현재는 아닙니다. XAML 핫 다시 로드, Live Visual Tree, Live Property Explorer 및 관련 런타임 도구를 사용하여 앱이 실행되는 동안 XAML을 검사하고 업데이트합니다.

WinUI 3에 사용할 수 있는 런타임 디자인 도구의 전체 연습은 WinUI 3용 XAML 런타임 디자인 도구를 참조하세요.

Windows 앱 SDK WinUI 3을 포함하나요?

예. WinUI 3은 Windows 앱 SDK의 일부로 제공됩니다.

UWP용 WinUI를 포함할 Windows 앱 SDK 있나요?

아니요. UWP용 WinUI는 UWP 플랫폼의 일부입니다.

UWP 및 WinUI 3용 WinUI는 동일한 기술을 기반으로 합니까?

그렇지 않습니다. WinUI 3은 UWP 코드베이스용 WinUI에서 시작되었지만 고유한 기술입니다. 둘 다 .NET 및 C++에서 작동하는 XAML 기반 UI 프레임워크이지만 UWP 및 WinUI 3용 WinUI는 서로 호환되지 않습니다.

Windows 앱 SDK 사용하지 않고 WinUI 3을 사용할 수 있나요?

아니요. WinUI 3은 Windows 앱 SDK의 일부로 제공됩니다.

패키지되지 않은 앱에서 WinUI 3을 사용할 수 있나요?

예. WinUI 3 및 많은 Windows 앱 SDK API는 패키지되지 않은 앱에서 작동합니다. 그러나 일부 Windows 기능에는 패키지 ID가 필요하며 프레임워크 종속 패키지되지 않은 앱은 Windows 앱 SDK 런타임을 초기화해야 합니다. 패키징 개요의 옵션과 패키지 ID가 필요한 기능을 비교합니다.

XAML Islands와 WinUI 3의 차이점은 무엇인가요?

WinUI 3은 Windows 앱 SDK 포함된 UI 프레임워크입니다. XAML Islands는 기존 데스크톱 앱이 다른 프레임워크의 UI와 함께 XAML 콘텐츠를 배치할 수 있는 호스팅 기술입니다.

이 용어는 UWP XAML 컨트롤을 호스트하는 레거시 시스템 XAML Islands 또는 지원되는 데스크톱 호스트에서 Windows 앱 SDK 컨트롤을 호스트하는 WinUI XAML Islands를 참조할 수 있습니다. API, 네임스페이스 및 호스트 요구 사항은 다릅니다.

WinUI 3 앱을 만드는 경우 Windows 11 및 Windows 10 모두 최신으로 표시될까요?

WinUI 3 컨트롤은 패키지된 앱과 패키지되지 않은 앱 모두에서 지원되는 버전의 Windows 10 및 Windows 11 Fluent 스타일을 사용합니다. 일부 운영 체제 효과 및 동작은 Windows 버전마다 다릅니다. 예를 들어 Mica는 Windows 11에서 사용할 수 있으며, Windows 10에서는 단색으로 대체됩니다.

Windows 앱 SDK 사용하여 빌드된 앱에서 Mica 또는 아크릴 배경을 사용할 수 있나요?

예. 데스크톱 아크릴은 Windows 10 버전 1809 이상에서 지원됩니다. Mica는 Windows 11이 필요하며, Windows 10에서는 단색 테마 색상으로 대체됩니다. 배경을 적용하기 전에 실행 시간에 DesktopAcrylicController.IsSupported 또는 MicaController.IsSupported를 호출합니다. Windows 11 데스크톱 앱에서 Mica 또는 Acrylic 재질 적용하기를 참조하세요.

WinUI 3 샘플은 어디에서 찾을 수 있나요?

샘플 및 리소스를 참조하십시오. 주목할 만한 리포지토리:

이미 WPF 많이 투자한 경우 WPF 계속 사용하거나 WinUI 3으로 마이그레이션하는 것을 고려해야 하나요?

이미 WPF 많이 투자한 경우 기존 앱에 계속 사용할 수 있습니다. WPF 데스크톱 앱을 빌드하는 데 널리 사용되는 성숙하고 안정적인 프레임워크 Windows입니다.

GitHub Copilot 업그레이드를 사용하여 .NET Framework WPF 앱을 평가하고 최신 .NET으로 업그레이드합니다. 생성된 계획을 검토하고 앱의 각 변경 내용에 대한 유효성을 검사합니다.

새 WPF 앱을 빌드하면 다른 새 Windows 앱에 비해 구식으로 보일까요?

.NET 9 이상을 사용하여 WPF 애플리케이션을 개발할 때 앱이 Windows 11 세련되고 현대적인 모양과 일치하는지 확인할 수 있습니다. WPF 대한 새로운 Fluent 테마는 통합 조명 / 어두운 모드와 시스템 악센트 색상 지원과 함께 현대적인 Windows 11 미학을 소개합니다. 이렇게 하면 앱의 모양이 현대화되고 세련되고 응집력 있는 사용자 환경이 제공됩니다.

우리 팀은 WinForms 앱을 쉽게 빌드할 수 있으며 요구 사항에 적합합니다. WinUI 3 또는 다른 프레임워크로 마이그레이션하는 것을 고려해야 하나요?

WinForms가 요구 사항을 충족하고 팀이 익숙한 경우 기존 앱에 WinForms를 계속 사용할 수 있습니다. WinForms는 Windows 데스크톱 개발에 널리 사용되는 성숙하고 안정적인 프레임워크입니다.

WinForms 팀은 플랫폼에 계속 투자하고 있습니다. 최근 및 진행 중인 작업에는 다음이 포함됩니다.

  • 비동기 양식 및 대화 상자 API
  • 어두운 모드 및 비주얼 스타일 지원
  • 접근성, 높은 DPI, 레이아웃 및 디자이너 개선 사항
  • 클립보드 및 DataObject 현대화

플랫폼 간 네이티브 개발

Windows 대상으로 하는 플랫폼 간 네이티브 앱을 빌드하는 이유는 무엇입니까?

여러 OS 플랫폼에서 사용자를 대상으로 하는 경우 .NET MAUI 또는 React Native를 사용하여 플랫폼 간 앱을 빌드하면 다음과 같은 몇 가지 이점이 있습니다.

  • 도달 범위: 크로스 플랫폼 애플리케이션은 다양한 디바이스 및 운영 체제에서 더 넓은 사용자층에게 도달합니다.
  • 코드 재사용: 플랫폼 간에 코드를 다시 사용하면 개발 시간과 비용이 줄어듭니다. Windows, Android, iOS 및 macOS용으로 별도의 앱을 빌드하면 비용이 엄청나게 많이 들 수 있습니다.
  • 일관된 사용자 환경: 플랫폼 간 프레임워크는 플랫폼 전체에서 일관된 모양과 느낌을 제공하는 데 도움이 됩니다.
  • 통합: 플랫폼 간 앱은 여전히 플랫폼별 서비스와 통합하여 포괄적인 환경을 제공할 수 있습니다.
.NET MAUI 앱이 Windows 잘 실행될 것이라고 확신할 수 있나요?

Windows .NET MAUI 앱을 빌드할 때 출력은 WinUI 3을 사용합니다. 개발 중에 .NET MAUI 플랫폼 간에 단일 .NET 환경을 제공하지만 내부적으로 플랫폼별 코드를 생성합니다.

.NET MAUI는 모든 플랫폼에서 네이티브 디바이스 API를 제공할 수 있나요?

.NET MAUI Windows, iOS, Android 및 macOS에서 통합된 .NET 환경을 제공합니다. 스토리지, 네트워킹 및 디바이스 센서와 같은 일반적인 기능을 위한 플랫폼 간 API를 제공합니다. 플랫폼별 API를 호출하거나 각 플랫폼에 대한 특수 구현을 제공할 수도 있습니다.

WinUI 3부터 시작하여 플랫폼 간 시나리오를 대상으로 하려는 경우 나중에 .NET MAUI 통합할 수 있나요?

이때는 그렇지 않습니다. .NET MAUI Windows 실행할 때 WinUI 3을 사용하지만 여러 플랫폼을 대상으로 하는 팀은 .NET MAUI 또는 데스크톱용 React Native로 시작해야 합니다.

우리 팀은 강력한 웹 프런트 엔드 개발 기술을 보유하고 있습니다. 데스크톱용 React Native 사용을 고려해야 하나요?

강력한 웹 개발 환경을 갖춘 팀은 데스크톱용 React Native를 고려할 수 있습니다. 여기에는 Windows용 React Native 및 macOS 포함됩니다. "한 번 학습, 어디서나 쓰기" 접근 방식을 사용하면 기존 JavaScript, TypeScript 및 React 기술을 사용하여 네이티브 Windows 및 macOS 앱을 빌드할 수 있습니다.

데스크톱용 React Native는 네이티브 기본 형식에 직접 UI를 렌더링하여 네이티브 성능 및 플랫폼 기능을 제공합니다.

시작하려면 React Native 데스크톱 문서를 참조하세요.

데스크톱용 React Native에서 지원하는 다른 Windows 디바이스는 없습니다

Windows React Native는 호환성 설명서에 나열된 Windows 버전을 지원합니다. 모든 Windows 디바이스가 지원된다는 가정이 아니라 대상으로 하는 Windows 버전에 대해 React Native에 대한 디바이스 패밀리 지원을 확인합니다.

Windows 작업하고 Xbox 앱을 빌드하려면 어떤 앱을 사용해야 하나요?

Xbox 앱의 경우 UWP를 사용하고 Xbox 특정 UWP 제한 사항을 고려합니다. 게임 개발의 경우 Microsoft 게임 개발 키트 사용합니다.

Windows 및 Surface Hub에서 작동하는 앱을 빌드하려면 어떤 것을 사용해야 하나요?

표준 Teams 룸 또는 Surface Hub 환경을 실행하는 Surface Hub의 경우 Surface Hub 앱 요구 사항을 충족하는 UWP 앱을 사용합니다. Windows 11 Pro 또는 Enterprise로 구성된 Surface Hub 3은 지원되는 데스크톱 앱 기술을 실행할 수 있으므로 해당 구성에서 UWP만 사용할 수 있는 옵션은 아닙니다.

하이브리드 및 웹 개발

하이브리드 앱이란 무엇이며, 왜 빌드를 고려해야 하나요?

하이브리드 앱은 최상의 웹 및 네이티브 앱 개발을 혼합합니다. 해당 핵심은 HTML, CSS 및 JavaScript와 같은 웹 기술을 사용하여 빌드되고 특정 네이티브 플랫폼 기능 및 하드웨어에 access 제공하는 네이티브 컨테이너에 래핑됩니다. 앱 스토어를 통해 배포할 수도 있습니다.

주요 장점은 하이브리드 앱을 사용하면 여러 네이티브 플랫폼과 웹에서 실행할 수 있는 단일 앱을 빌드하여 개발 시간과 비용을 줄일 수 있다는 것입니다. 하이브리드 앱 개발 플랫폼의 예는 다음과 같습니다.

  • 데스크톱 앱용 Electron
  • 모바일 앱용 Ionic
  • .NET MAUI Blazor 하이브리드 플랫폼 간 앱용
Windows PWA(네이티브 느낌 프로그레시브 웹앱)를 빌드하려면 어떻게 해야 하나요?

Windows에서의 웹 개발 개요 및 진보적 웹 앱 개요를 참조하세요.

.NET MAUI Blazor 하이브리드 앱은 무엇인가요?

.NET MAUI 사용하여 Blazor 앱은 Windows, iOS, Android 및 macOS에서 기본적으로 실행할 수 있습니다. 이를 통해 네이티브 플랫폼 기능에 대한 모든 액세스 권한으로 Blazor 및 .NET MAUI 구성 요소를 단일 네이티브 클라이언트 앱에 결합하는 하이브리드 클라이언트 앱을 만들 수 있습니다.

ASP.NET Core Blazor Hybrid 자세히 알아보세요.

.NET MAUI 하이브리드 앱의 웹 구성 요소는 Blazor로 만들어야 하나요?

아니요. .NET 9부터 .NET MAUI 네이티브 앱 내에서 다른 JavaScript 기반 UI를 호스팅할 수 있는 HybridWebView 컨트롤을 포함합니다.

이렇게 하면 .NET MAUI 앱 내에서 Angular, React, Vue 또는 기타 HTML/JavaScript 앱을 호스트할 수 있습니다. 하이브리드 컨트롤은 C# 및 JavaScript 간에 interop을 제공하므로 C# 코드는 JavaScript 함수를 호출할 수 있고 그 반대의 경우도 마찬가지입니다.

다른 네이티브 앱 형식이 Blazor 하이브리드 구성 요소를 호스트할 수 있나요?

예. WPF 및 WinForms 앱은 Blazor 하이브리드 구성 요소를 호스트하여 기존 앱에 최신 웹 UI를 추가할 수 있습니다. .NET Framework에서 빌드된 WPF 또는 WinForms 앱에는 지원되지 않습니다.

전체 앱이 하이브리드 앱이어야 하나요, 아니면 네이티브 및 하이브리드 구성 요소를 혼합하고 일치시킬 수 있나요?

네이티브 및 하이브리드 구성 요소는 앱 내에서 혼합할 수 있습니다. 예를 들어 하이브리드 구성 요소는 추가 기능을 제공하는 동안 .NET MAUI 구성 요소를 사용하여 앱의 핵심을 빌드할 수 있습니다. 이를 통해 네이티브 구성 요소의 성능과 기능을 하이브리드 구성 요소의 유연성 및 비용 효율성과 결합할 수 있습니다.

Windows 최신 브라우저에서 멋진 .NET 기반 웹앱을 빌드하기 위한 선택은 무엇인가요?

Web apps 모든 클라이언트 앱 플랫폼의 가장 광범위한 범위를 제공합니다. 아름다운 .NET 웹앱을 만드는 옵션은 다음과 같습니다.

  • ASP.NET Core 앱 (Razor Pages 사용)
  • ASP.NET Core MVC 앱
  • ASP.NET Core Blazor 앱은 호스팅 모델 옵션을 제공합니다.
    • 블레이저 웹어셈블리
    • Blazor Server

이제 Blazor 호스팅 모델을 구성 요소 수준에서 구성할 수 있으므로 Blazor Server 앱 내에서 Blazor WebAssembly 구성 요소를 호스팅하는 것과 같은 시나리오를 사용할 수 있습니다.

자세한 내용은 ASP.NET Core 설명서 참조하세요.

접근 방식을 선택하기와 Microsoft의 투자를 이해하기

Windows 대상으로 하는 앱을 빌드하기 위한 프레임워크 옵션이 너무 많습니다. 어떻게 결정합니까?

Windows 많은 기술을 지원하는 개방형 플랫폼입니다. 플랫폼을 선택하는 데 도움이 되는 몇 가지 기준은 다음과 같습니다.

  • Windows 우선 또는 플랫폼 간 빌드 중입니까?
  • .NET, JavaScript 등 이미 가지고 있는 언어나 기술은 무엇인가요?
  • Windows 특정 API에 액세스해야 합니까?
  • 앱의 요구 사항과 가장 일치하는 프레임워크의 기능은 무엇입니까?
  • 추가 비교 요인은 이 표를 참조하세요.

많은 비즈니스 앱의 경우 팀은 종종 기존 기술과 팀이 가장 편안하게 사용하는 것을 기반으로 선택합니다.

내 웹앱에 가장 적합한 개발 방법을 어떻게 선택할 수 있을까요?

웹앱에 대한 개발 방법을 선택할 때 다음을 고려합니다.

  • Blazor는 .NET 사용하여 프런트 엔드 웹앱을 빌드하는 데 권장됩니다. 이를 통해 .NET 사용하여 프런트 엔드와 백 엔드를 모두 빌드하고 시간과 비용을 절약할 수 있으며 엔터프라이즈 앱에 특히 적합합니다.
  • 기존 JavaScript 기술을 활용하거나 설정된 JS 라이브러리 또는 프레임워크와 통합해야 하는 경우에도 JavaScript web apps 여전히 의미가 있습니다.
  • Web Forms, MVC 또는 Razor Pages와 같은 이전 프레임워크를 사용하는 기존 앱은 계속 지원되며 계속 개발 및 유지 관리할 수 있습니다.
현재 WinUI 3을 사용하여 앱을 빌드하는 사람은 누구인가요?

Microsoft 사진은 문서화된 한 가지 예입니다. 앱은 UWP에서 Windows 앱 SDK 마이그레이션되었으며 WinUI 3을 계속 사용합니다. 아키텍처 및 마이그레이션에 대한 자세한 내용은 Microsoft 사진: UWP에서 Windows 앱 SDK 마이그레이션을 참조하세요.

누가 .NET MAUI 앱을 빌드하고 있습니까?

조직은 .NET MAUI 사용하여 Android, iOS, macOS 및 Windows 플랫폼 간 앱을 빌드합니다. .NET 고객 쇼케이스의 예제를 참조하세요.

오늘 누가 WPF 앱을 빌드하고 있습니까?

대부분의 Microsoft Visual Studio UI는 WPF 사용하여 빌드됩니다. Visual Studio IDE 자체는 복잡한 고성능 WPF 앱의 주요 예입니다.

현재 Blazor 앱을 빌드하는 사람은 누구인가요?

GE Digital의 FlightPulse 항공사 시스템은 Blazor를 사용하여 조종사가 보는 모든 것을 백 엔드 구성하여 센서 데이터와 분석을 조종사에게 직접 가져와 안전과 효율성을 개선합니다.

.NET 사이트에서 Blazor 고객 사례 더 보기.

언어 선택(.NET 및 C++)

Windows 앱에 C# 또는 C++를 사용해야 하나요?

대부분의 경우 C#(.NET)을 사용합니다. C#은 더 빠른 개발, 메모리 안전성, 풍부한 라이브러리 및 우수한 도구를 제공합니다. WinUI 3, WPF, WinForms 및 .NET MAUI 앱을 비롯한 대부분의 Windows 앱은 C#으로 가장 잘 빌드됩니다.

직접 하드웨어 액세스, 최소 런타임 오버헤드 또는 기존 C++ 코드베이스와의 interop이 필요한 경우 C++를 사용합니다. 일반적인 C++ 시나리오에는 DirectX(게임 엔진), 드라이버, 시스템 수준 유틸리티 및 성능에 중요한 구성 요소가 포함됩니다.

요인 C#(.NET) C++
개발 속도 ✅ 더 빠른 - 관리되는 메모리, 풍부한 에코시스템 ⚠️ 느린 - 수동 리소스 관리
런타임 성능 ✅최신 .NET에 매우 적합 (AOT, Span<T>) ✅ 최적 - GC 일시 중지 없음
메모리 안전성 ✅ 가비지 수집 ⚠️ 수동 - 누출 및 취약성 위험
Windows API 액세스 ✅ C#/WinRT 프로젝션을 통해 ✅ C++/WinRT 프로젝션을 통해
WinUI 3 지원 ✅ 전체 지원 ✅ C++/WinRT를 통한 전체 지원
크로스 플랫폼 ✅Windows, Linux, macOS에서 실행되는 .NET ✅ 플랫폼별 코드 사용
적합한 대상 비즈니스 앱, CRUD, 서비스, UI가 많은 앱 게임, 드라이버, 시스템 도구, 짧은 대기 시간

C#에서 앱을 빌드하고 P/Invoke(CsWin32) 또는 C ++/WinRT 구성 요소를 통해 성능에 중요한 네이티브 코드를 호출하는 두 가지 모두를 혼합할 수도 있습니다.

C#에서 Win32 API를 호출하려면 어떻게 해야 하나요?

빌드 시 형식이 안전한 P/Invoke 서명을 만드는 원본 생성기인 CsWin32를 사용합니다. Microsoft.Windows.CsWin32 NuGet 패키지를 추가하고, NativeMethods.txt 파일에 필요한 API를 나열한 다음, 생성된 PInvoke 클래스를 통해 이를 호출합니다.

CsWin32는 손으로 쓴 [DllImport] 선언을 대체하고 WinUI 3, WPF, WinForms 및 콘솔 앱을 비롯한 모든 C# 프로젝트에서 작동합니다. 단계별 연습은 C# Windows 앱(CsWin32)에서 Win32 API 호출을 참조하세요.

C++/WinRT란 무엇이며 언제 사용해야 하나요?

C++/WinRT는 Windows 런타임 API에 대한 표준 C++17 언어 프로젝션입니다. WinRT API를 사용하거나 작성하는 C++에서 Windows 앱을 빌드할 때 사용합니다. C++/CX 및 Windows 런타임 C++ 템플릿 라이브러리(WRL)를 대체합니다.

다음과 같은 경우 C++/WinRT를 선택합니다.

  • C++ WinUI 3 앱을 빌드하고 있습니다.
  • 다른 언어에서 사용하는 Windows 런타임 구성 요소를 작성해야 합니다.
  • C++/CX에서 포팅하는 중
C#/WinRT란 무엇이며 언제 필요한가요?

C#/WinRT 는 C#에 대한 WinRT 프로젝션 지원을 제공합니다. 대부분의 경우 직접 상호 작용하지 않습니다. Windows 대상으로 하는 .NET 앱은 TFM(대상 프레임워크 모니커)을 통해 WinRT API에 자동으로 액세스합니다. C#에서 Windows 런타임 구성 요소를 작성하거나 타사 WinRT 구성 요소에 대한 interop 어셈블리를 생성할 때 C#/WinRT가 명시적으로 필요합니다.

패키징, 배포 및 업데이트

패키지, 패키지되지 않은 앱 및 외부 위치로 패키지된 앱의 차이점은 무엇인가요?

패키지된 앱에는 MSIX와 같은 패키지의 파일, ID 및 배포 정보가 포함됩니다. 패키지되지 않은 앱은 Windows 패키지 시스템 외부의 설치 관리자 또는 배포 프로세스를 사용하며 기본적으로 패키지 ID가 없습니다. 외부 위치로 패키지된 앱은 외부에 있는 이진 파일과 기존 설치 관리자 및 업데이트 프로세스를 유지하면서 작은 ID 패키지를 사용합니다.

요구 사항 및 장단분에 대한 패키징 개요 를 참조하세요.

패키지 ID가 필요한가요?

앱에서 사용하는 Windows 기능에 따라 달라집니다. 패키지 ID는 패키지된 백그라운드 작업, 공유 대상, 시작 작업, 사용자 지정 상황에 맞는 메뉴 패키지 확장, 매니페스트 기반 파일 형식 및 프로토콜 연결 및 많은 Windows AI API와 같은 시나리오에 필요합니다. Windows 앱 SDK 푸시 알림은 ID 없이 제한된 포그라운드 시나리오를 지원하지만 백그라운드 배달 및 COM 활성화에는 ID가 필요합니다. WinUI 3 및 로컬 앱 알림은 패키지 ID 없이 작동할 수 있습니다.

패키지 ID가 필요한 기능을 참조하세요. ID가 필요하지만 기존 설치 관리자를 유지해야 하는 경우 외부 위치로 패키징하는 것이 좋습니다.

프레임워크 종속 배포와 자체 포함 배포의 차이점은 무엇인가요?

프레임워크 종속 앱은 디바이스에 별도로 설치된 Windows 앱 SDK 런타임 패키지를 사용합니다. 이렇게 하면 앱의 배포 크기가 줄어들고 설치된 프레임워크에서 서비스 업데이트를 받을 수 있습니다. 자체 포함 앱은 Windows 앱 SDK 종속성을 전달하므로 배포 크기가 증가하고 앱 게시자가 새 앱 버전으로 Windows 앱 SDK 서비스 업데이트를 배포할 책임이 있습니다.

Singleton 패키지와 같은 추가 MSIX 패키지에 의존하는 API는 자체 포함된 앱에서도 별도의 배포 또는 런타임 지원 검사를 요구할 수 있습니다. 패키징 및 런타임 배포는 별도의 결정입니다. Windows 앱 SDK 배포 개요를 참조하세요.

최종 사용자에 대해 WinUI 3 앱이 자동으로 업데이트될까요?

WinUI 3 앱은 Microsoft Store, .appinstaller 파일 또는 MSI 또는 설치 실행 파일을 통해 배달할 수 있습니다. 스토어 패키지는 스토어 및 조직 설정에 따라 Microsoft Store 서비스를 통해 업데이트할 수 있습니다. .appinstaller 배포는 해당 UpdateSettings가 시작 시 검사 또는 백그라운드 검사를 구성하는 경우에만 자동 업데이트를 지원합니다. MSI 및 설치 배포는 자체 업데이트 메커니즘을 제공하거나 통합해야 합니다.

MSBuild를 사용하지 않고 Windows 앱 SDK 사용할 수 있나요?

예, 일부 시나리오의 경우. WinUI 3 XAML 프로젝트에는 현재 MSBuild가 필요하지만 Visual Studio 필요하지 dotnet build 않으며 명령줄에서 MSBuild를 호출할 수 있습니다. 미리 보기 Windows 앱 Development CLI를 통해 C++ 및 CMake 프로젝트의 비 XAML Windows 앱 SDK API를 사용하거나 런타임을 수동으로 통합할 수 있습니다.

윈도우 인공지능

Windows AI API, Foundry Local 및 Windows ML 중에서 선택하려면 어떻게 해야 하나요?

처음 세 가지 기술은 Windows Microsoft Foundry의 일부입니다. 동일한 앱에서 서로 및 클라우드 모델과 결합할 수 있습니다.

  • 모델과 하드웨어 가속을 Windows에서 관리하는 즉시 사용할 수 있는 기능에는 Windows AI APIs를 사용하세요.
  • Foundry Local을 사용하여 지원되는 오픈 소스 언어 및 음성 모델을 로컬로 검색, 다운로드 및 실행합니다.
  • Windows ML을 사용하여 사용 가능한 CPU, GPU 및 NPU 하드웨어에 대한 실행 공급자와 함께 고유한 ONNX 모델을 실행합니다.
  • 클라우드 호스팅 모델, 검색, 중앙 집중식 거버넌스 또는 대상 디바이스에서 사용할 수 없는 기능이 필요한 경우 별도의 클라우드 AI 플랫폼인 Microsoft Foundry를 사용합니다.

Windows AI 솔루션 선택에서 옵션을 비교합니다. 모델 기능, 개인 정보 보호, 연결, 대기 시간, 하드웨어 적용 범위, 배포 크기 및 운영 비용을 고려합니다.

Windows AI 기능에 Copilot+ PC 필요합니까?

그들 모두는 아닙니다. 많은 Windows AI API에는 Copilot+ PC 필요하지만 일부 API는 특정 GPU 또는 CPU도 지원합니다. Foundry 로컬 및 Windows ML은 현재 운영 체제, 모델, 런타임 및 실행 공급자 요구 사항에 따라 광범위한 하드웨어 구성을 지원합니다.

Windows AI API 하드웨어 테이블과 특정 API 또는 모델에 대한 요구 사항을 확인합니다. 런타임에 지원 및 모델 준비 상태를 검색하고 기능을 사용할 수 없는 경우 비 AI, 로컬 모델 또는 클라우드 대체를 제공합니다.

Windows AI 기능은 로컬 및 오프라인으로 실행할 수 있나요?

예. Windows AI API, Foundry Local 및 Windows ML은 사용자의 디바이스에서 유추를 실행하여 대기 시간을 줄이고 입력 데이터를 로컬로 유지할 수 있습니다. 일부 모델 또는 실행 공급자는 먼저 다운로드하거나 프로비전해야 하며 설치 또는 서비스 중에 인터넷 연결이 필요할 수 있습니다. 클라우드 AI 서비스에는 연결이 필요하며 데이터 처리 조건에 따라 서비스에 데이터를 보냅니다.

모델 다운로드가 필요한 시기와 데이터가 디바이스를 떠날 때 사용자에게 알릴 수 있습니다. 완전한 첫 실행, 업데이트 및 대체 환경을 테스트하기 전까지는 기능을 오프라인 지원 기능으로 설명하지 마세요.

AI 도구를 사용하여 Windows 앱을 빌드하거나 현대화할 수 있나요?

예. AI 코딩 에이전트는 프로젝트를 스캐폴드하고, API를 설명하고, 코드를 마이그레이션하고, 테스트를 생성하고, 빌드 문제를 진단할 수 있습니다. GitHub Copilot, WinUI 에이전트 플러그 인, Microsoft Learn MCP Server, 마이그레이션 워크플로 및 AI 지원 테스트를 위한 AI 지원 Windows 개발 지침을 사용합니다.

다른 기여와 마찬가지로 생성된 코드를 검토하고 테스트합니다. 특히 API 이름 및 버전, 패키지 기능, 보안에 중요한 코드, 접근성 및 UWP-WinUI 3 대체를 확인합니다.

AI 지원 기능을 배송하기 전에 고려해야 할 사항은 무엇인가요?

기능의 의도된 사용 및 제한 사항을 정의하고, 대표 데이터로 품질 및 안전을 평가하고, 적절한 경우 AI 동작을 공개하고, 사용자 데이터를 보호하며, 모델 또는 필수 하드웨어를 사용할 수 없는 경우 대체를 제공합니다. 클라이언트 앱에서 비밀 및 권한 있는 서비스 자격 증명을 유지하고 결과적 또는 돌이킬 수 없는 작업 전에 사용자 확인이 필요합니다. Windows에서의 책임 있는 생성형 AI 개발 및 Windows 개발을 위한 보안 및 책임 있는 AI를 참조하세요.

성능 및 최적화

내 Windows 앱을 최종 사용자에게 기분 좋게 만들려면 무엇을 할 수 있나요?

Windows 애플리케이션 개발 - 모범 사례 및 Windows 앱 성능 및 기본 사항 개요 참조하세요.

Compatibility

내 사용자가 내 WinUI 3 앱을 사용하기 위해 Windows 업데이트해야 합니까?

Windows 앱 SDK Windows 10 버전 1809 빌드 17763의 호환 가능한 최소 OS가 있습니다. Microsoft 지원에는 최신 서비스 업데이트가 포함된 지원되는 Windows 앱 SDK 릴리스와 여전히 지원되는 Windows 버전, 버전 및 서비스 채널이 필요합니다. 개별 API에는 최신 Windows 버전 또는 특정 하드웨어가 필요할 수 있습니다. Windows 앱 SDK 지원 및 릴리스 채널을 참조하세요.

WinUI 3 앱으로 Arm64를 대상으로 지정할 수 있나요?

예. 최상의 성능과 효율성을 위해 네이티브 Arm64 앱을 빌드합니다. x64 종속성이 있는 대규모 C++ 코드베이스의 경우 Arm64EC 를 사용하면 모듈을 증분 방식으로 마이그레이션할 수 있습니다. arm의 Windows 11 Prism 에뮬레이션을 통해 많은 기존 x86 및 x64 앱을 실행할 수도 있지만 대표적인 Arm 디바이스에서 성능 및 호환성을 테스트해야 합니다.

사용 중단 및 마이그레이션

UWP용 UWP/WinUI는 더 이상 사용되지 않는가요?

UWP 및 WinUI 2는 공식적으로 지원 중단된 것은 아닙니다. Visual Studio 2026은 최신 .NET 및 네이티브 AOT에서 UWP를 지원하며, WinUI 2.8은 UWP에 대한 안정적인 최신 WinUI 릴리스로 남아 있습니다. 그러나 Microsoft 새로운 범용 Windows 데스크톱 앱에 WinUI 3 및 Windows 앱 SDK 권장합니다.

Native AOT를 사용한 최신 .NET 대한 UWP 지원은 일반적으로 사용할 수 있으며 2026년 Visual Studio 기본 C# UWP 프로젝트 형식입니다. 기존 UWP 앱을 .NET Native에서 최신 .NET 이동하는 것은 UI를 WinUI 3으로 마이그레이션하는 별도의 현대화 단계입니다. .NET 및 Native AOT를 사용하여 UWP 앱 현대화를 참조하세요.

UWP용 UWP/WinUI 앱을 WinUI 3으로 마이그레이션해야 하는 경우는 언제인가요?

UWP 개발자는 UWP 및 해당 기능 집합에 만족하는 경우 마이그레이션해야 한다는 압박감을 느끼지 않아야 합니다. 많은 앱의 경우 UWP를 유지하는 것이 좋습니다.

최신 Windows 플랫폼과 .NET 투자를 활용하려는 앱은 WinUI 3 및 Windows 앱 SDK 전환하는 것을 고려해야 합니다. UWP에서 Windows 앱 SDK로 이전하는 방법을 참조하세요.

UWP + WinUI for UWP 앱을 WinUI 3으로 마이그레이션하지 말아야 하는 경우는 언제인가요?

대상 디바이스 또는 앱 모델에 필요한 경우(예: Xbox 앱, HoloLens 2D 앱 또는 표준 Surface Hub 환경용 앱)에서 UWP를 계속 사용합니다. Windows IoT Enterprise는 Windows 앱 SDK 포함한 데스크톱 앱 기술을 지원하므로 IoT 대상 자체가 UWP를 사용하는 이유가 아닙니다.

WPF는 더 이상 사용되지 않습니까?

아니요. WPF 지원되며 최신 .NET 기능, 성능, 접근성 및 Fluent 스타일 개선 사항을 계속 받습니다. 기존 WPF 앱과 요구 사항이 WPF 맞는 새 앱에 적합합니다. 새로운 범용 Windows 데스크톱 앱의 경우 Microsoft 기본 권장 사항은 Windows 앱 SDK WinUI 3입니다. GitHub에서 WPF 로드맵을 참조하세요.

WinForms는 더 이상 사용되지 않는가요?

아니요. WinForms는 지원되며 기능 업데이트를 계속 받습니다. Windows Forms 로드맵을 GitHub에서 참조하세요.

WinRT(Windows 런타임)가 더 이상 사용되지 않는가요?

아니요. WinRT 는 여러 언어에서 interop을 사용하도록 설정하는 ABI(애플리케이션 이진 인터페이스)입니다. WinRT는 COM의 진화이며, Windows 앱 SDK WinRT API를 통해 대부분의 기능을 제공합니다.

출시 정보

Windows 앱 SDK의 릴리스 정보를 어디에서 찾을 수 있습니까?

안정화 버전, 미리 보기 버전 및 실험적 릴리스에 대해서는 Windows 앱 SDK 릴리스 정보를 참조하세요. Windows 개발자를 위한 새로운 기능 페이지에는 최신 Windows SDK, Windows 앱 SDK, WinUI 3, 도구 및 플랫폼 업데이트가 요약되어 있습니다.