Windows 개발자 FAQ

이 문서는 Windows 개발 환경 및 제품 방향에 대한 일반적인 이해를 돕기 위해 작성되었습니다. 이러한 질문에 대한 답변은 Windows 앱 SDK 버전 1.0에 적용됩니다.

시작

Windows 앱을 빌드하려면 무엇을 사용해야 하나요?

Windows 데스크톱 애플리케이션 개발의 경우 Windows 앱 SDK/WinUI 3을 선택하는 것이 좋습니다. 이러한 기술 조합은 데스크톱 앱용 UWP/WinUI 2의 뒤를 잇습니다.

다른 옵션은 빌드하는 항목과 빌드 방법에 따라 더 적합할 수 있습니다.

  • Windows 앱 SDK/WinUI 3이 요구를 충족하지 않는 경우 UWP/WinUI 2가 충족할 수 있습니다.
  • 플랫폼 간 앱을 대상으로 하는 경우:React Native.NET MAUI를 사용하여 플랫폼 간 앱을 빌드할 수 있습니다. .NET MAUI는 C# 개발자에게 적합합니다. React Native는 JavaScript/TypeScript 개발자에게 익숙할 것입니다.
  • 웹 개발자인 경우:WebView2를 애플리케이션 호스트로 사용할 수 있습니다. 이를 통해 웹 기술을 사용하여 Windows SDK 및 Windows 앱 SDK API에 액세스할 수 있는 데스크톱 앱을 빌드할 수 있습니다. Windows용 React Native를 사용할 수도 있습니다.
  • C++ 개발자인 경우: 데스크톱 앱의 경우 Windows 앱 SDK/WinUI 3을 선택하는 것이 좋습니다. 게임을 빌드하는 경우 DirectX를 사용하는 것이 좋습니다.
  • Rust 개발자인 경우:Windows용 Rust를 확인하세요.

요구 사항 및 기술 선호도에 따라 더 적합할 수 있는 다른 개발 기술이 있습니다. 개발 기술 선택에 대해 자세히 알아보세요.

Windows 개발 기술을 간단하게 비교하는 정보는 어디서 찾을 수 있나요?

개발 기술 선택을 참조하세요.

Windows 앱 SDK/WinUI 3

Windows 앱 SDK란?

Windows 앱 SDK는 이전 버전(Windows 10 1809까지)과 호환되는 아름다운 최신 데스크톱 앱을 만들 수 있는 Windows 애플리케이션 개발 플랫폼입니다. WinUI 3은 Windows 앱 SDK와 함께 제공되는 UI 프레임워크입니다.

Windows 앱 SDK와 Windows SDK의 차이점은 무엇인가요?

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

Windows 앱 SDK는 Windows 버전(Windows 10 1809까지)에 설치할 수 있는 최신 데스크톱 앱을 빌드할 수 있는 새로운 개발 플랫폼입니다. Windows 앱 SDK를 사용하여 앱을 빌드하면 최신 Windows 개발 플랫폼 기능에 액세스할 수 있습니다. Windows 앱 SDK에는 WinUI 3이 포함됩니다.

Windows SDK는 UWP 앱 및 Win32/데스크톱 앱을 빌드할 수 있는 개발 플랫폼입니다. 특정 버전의 OS에 결합된 Windows API를 중심으로 설계되었습니다.

Windows 앱 SDK는 Windows SDK를 대체하지 않습니다. 대신 Windows 앱 SDK는 Windows SDK를 보완합니다. Windows SDK를 사용하여 이미 액세스할 수 있는 Windows OS API의 풍부한 카탈로그를 중심으로 편리하고 OS 분리된 추상화를 제공합니다. Windows 앱 SDK를 사용하여 앱을 빌드할 때 필요한 기능에 따라 결국 Windows SDK API를 사용하게 될 수 있습니다. 시간이 지나면 점점 더 많은 Windows SDK 기능이 Windows 앱 SDK에 리프트될 것입니다.

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

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

일반적으로 UI 프레임워크 전체를 마이그레이션할 준비가 되지 않으면 WinUI 3을 사용할 수 없습니다. 다른 UI 프레임워크(WPF, Win32)에 WinUI 3 콘텐츠를 호스트할 수 있는 XAML Islands라는 기능을 개발하는 중입니다.

기존 앱이 빌드된 방식에 따라 Win32/데스크톱 앱에서 Windows 앱 SDK 요소를 사용할 수 있어야 합니다. UWP 앱은 Windows 앱 SDK/WinUI 3에서 지원되지 않습니다.

즉, , WPF/MFC/WinForms 앱은 WinUI 3과 관련이 없는 Windows 앱 SDK API를 사용할 수 있습니다. 이러한 API의 예로는 앱 수명 주기, 창 및 알림 메시지가 있습니다.

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

Visual Studio 2022 버전 17.1 이상을 사용하여 Windows 앱 SDK/WinUI 3 앱을 개발하는 것이 좋습니다. 최신 버전의 Visual Studio를 사용하면 핫 다시 로드와 같은 풍부한 개발 기능을 사용할 수 있습니다.

다른 IDE 및 개발 워크플로를 사용해도 되지만, Visual Studio는 현재 Windows 앱 SDK/WinUI 3를 공식적으로 지원하는 유일한 IDE입니다. XAML 또는 Windows 앱 SDK/WinUI 3을 사용하는 프로젝트를 컴파일하려면 MSBuild가 필요합니다.

Windows 앱 SDK/WinUI 3을 사용하여 앱을 빌드하면 "WinUI 3 앱"을 빌드하는 것인가요?

예 - "WinUI 3 앱"이라는 용어를 사용하는 것이 좋습니다.

WinUI 2 구성 요소를 WinUI 3 구성 요소로 점진적으로 교체하여 WinUI 2 앱을 WinUI 3으로 점진적으로 업데이트할 수 있나요?

아니요 Windows 앱 SDK는 UWP 앱에서 사용할 수 없고, WinUI 2는 WinUI 3과 혼합할 수 없습니다. UWP에서 Windows 앱 SDK로 마이그레이션 정보를 참조하세요.

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

UI 구성 요소 마이그레이션은 일반적으로 간단합니다(C# 및 C++/WinRT의 경우). 그렇지 않으면 UWP에서 Windows 앱 SDK/WinUI 3으로 마이그레이션하는 비용은 주로 다음 요소에 따라 달라집니다.

  1. 프로젝트 파일 및 MSBuild 사용자 지정: 프로젝트를 마이그레이션하려면 고급 MSBuild 기능을 사용했는지 여부에 따라 상당한 수고가 필요할 수 있습니다.
  2. .NET API 마이그레이션: UWP 앱이 .NET에 의존하는 경우 .NET 6으로 업그레이드해야 합니다. 대부분의 경우 .NET 6 채택은 간단합니다.
  3. UI 구성 요소 라이브러리: UI 구성 요소 라이브러리를 사용하는 경우 WinUI 3을 대상으로 하는 새 버전이 필요합니다.
  4. UWP 소스 코드가 현재 대체된 C++/CX로 작성된 경우 일부 소스 코드 포팅이 관련됩니다. C++/CX에서 C++/WinRT로 이동을 참조하세요.

UWP 마이그레이션에 대한 자세한 내용은 UWP에서 Windows 앱 SDK로 마이그레이션 정보를 참조하세요.

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

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

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

배포 개요를 참조하세요.

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

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

아니요 코드에서 UI 컨트롤을 만들 수 있습니다. 하지만 향상된 개발자 환경과 같이 선언적 XAML 태그 형식으로 WinUI 3 UI를 나타내면 많은 이점이 있습니다.

UWP에서 WinUI 3으로 마이그레이션하는 경우 많은 XAML 태그 및 UI 관련 코드를 재사용할 수 있습니다(하지만 일부 구문을 업데이트해야 함). WPF에서 WinUI 3으로 마이그레이션하는 경우 많은 개념을 재사용할 수 있지만, 컨트롤 집합과 API는 다릅니다.

Visual Studio에 WinUI 3용 디자인 화면/GUI 디자이너가 있나요?

아니요 이것이 WinUI 3 개발자 환경의 격차라는 것을 저희도 알고 있습니다. XAML 핫 다시 로드와 같은 도구는 여러 시나리오에서 도움이 될 수 있습니다.

Windows 앱 SDK에 WinUI 3이 포함되나요?

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

Windows 앱 SDK에 WinUI 2가 포함되나요?

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

WinUI 2와 WinUI 3은 동일한 기술을 기반으로 하나요?

그렇지 않습니다. WinUI 3은 WinUI 2 코드베이스에서 시작되었지만, 둘은 뚜렷이 구별되는 기술입니다. WinUI 2와 WinUI 3은 둘 다 .NET 및 C++에서 작동하는 XAML 기반 UI 프레임워크입니다. WinUI 2와 WinUI 3은 서로 호환되지 않습니다.

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

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

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

있음. Windows 앱 SDK의 모든 기술은 WinUI 3을 포함한 비 패키지 앱에서 작동합니다.

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

XAML Islands를 사용하면 WinForms 및 WPF와 같은 다른 프레임워크의 기존 Win32 UI와 함께 최신 WinUI 컨트롤을 호스트할 수 있습니다. 현재 XAML Islands는 대부분의 시스템 XAML 및 WinUI 2 컨트롤에서 지원됩니다. 자세한 내용은 여기를 참조하세요. WinUI 3 컨트롤에 대한 XAML Islands 지원은 현재 개발 중입니다.

WinUI 3을 사용하는 경우 앱이 Windows 11 및 Windows 10에서 최신 앱으로 보이나요?

예, 앱의 UI는 패키지 및 비 패키지 시나리오에서 지원되는 모든 Windows 11 및 Windows 10 버전(1809까지)의 최신 Fluent UI 디자인 원칙을 상속합니다.

Windows 앱 SDK로 빌드된 앱에서 Mica(Windows 11) 또는 아크릴(Windows 10) 배경을 사용할 수 있나요?

아직 아닙니다. 현재 개발 중입니다.

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

Windows 개발용 샘플 애플리케이션을 참조하세요. 주목할 만한 리포지토리:

UWP 및 WinUI 2

UWP 앱을 Microsoft Store 외부에서 배포할 수 있나요?

있음. MSIX 패키지에 서명된 경우 서명 인증서는 대상 디바이스에서 유효하고 신뢰할 수 있어야 합니다.

UWP XAML UI 컨트롤을 Win32, WPF 또는 WinForms UI 컨트롤과 혼합할 수 있나요?

예 - XAML Islands를 사용하면 가능합니다. XAML Islands에 대해 자세히 알아보세요.

플랫폼 간 개발

WinUI 3 및 앱 SDK로 시작하고 나중에 플랫폼 간 시나리오를 대상으로 삼고 싶을 때 .NET MAUI를 통합해도 되나요?

현재는 불가능합니다. .NET MAUI 앱은 Windows에서 실행될 때 Windows 앱 SDK/WinUI 3을 사용하지만, 여러 플랫폼을 대상으로 해야 할 것으로 예상되는 경우 .NET MAUI 또는 Windows용 React Native로 시작하는 것이 좋습니다.

Windows 및 Xbox에서 작동하는 앱을 빌드하려면 무엇을 사용해야 하나요?

앱에서 Xbox, HoloLens 또는 IoT를 지원해야 하는 경우 UWP를 사용하는 것이 좋습니다. Windows 앱 SDK는 이러한 플랫폼을 지원하지 않습니다. 게임 개발의 경우 Microsoft 게임 개발 키트를 사용하는 것이 좋습니다.

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

Windows 및 Surface Hub를 모두 대상으로 하는 경우 UWP를 사용하는 것이 좋습니다.

Windows에서 네이티브 느낌의 PWA(프로그레시브 웹앱)를 빌드하려면 어떻게 해야 하나요?

패키징, 배포 및 업데이트

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

패키지된 앱, 패키지되지 않은 앱 및 외부 위치로 패키지되는 앱의 정의는 배포 개요를 참조하세요. 이 항목에서는 각 옵션의 장점과 단점도 설명합니다.

WinUI 3 앱이 최종 사용자와 관련하여 자동으로 업데이트될까요?

Windows 앱 SDK/WinUI 3 앱은 Microsoft Store, .appinstaller 파일 또는 기존 MSI나 setup.exe 패키지를 통해 배달할 수 있습니다. Microsoft Store 및 AppInstaller는 자동 업데이트를 사용하도록 설정한 최종 사용자를 위한 자동 업데이트를 지원하지만, MSI/setup.exe 앱에는 자체 업데이트 관리자가 있어야 합니다.

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

일반적으로는 그렇지 않습니다. WinUI 3와 Windows 앱 SDK에는 MSBuild가 필요하므로, Visual Studio는 Windows 앱 SDK/WinUI 3 애플리케이션 개발의 필수 구성 요소입니다. 기술적으로는 다른 도구 체인을 사용하여 WinUI 3을 사용하지 않는 Windows 앱 SDK 앱을 빌드할 수 있지만 지원되지는 않습니다.

성능 및 최적화

Windows 앱이 최종 사용자에게 좋은 느낌을 주려면 어떻게 해야 하나요?

호환성

Windows 앱 SDK/WinUI 3 앱을 사용하도록 Windows를 업데이트해야 하나요?

Windows 10 버전 1809 이상을 사용하는 사용자는 OS를 업데이트하지 않고 WinUI 3/Windows 앱 SDK 앱을 설치할 수 있습니다.

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

있음.

사용 중단 및 마이그레이션

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

아니요 UWP 및 WinUI 2는 여전히 지원되며 버그, 안정성 및 보안 수정 픽스를 받게 됩니다. 그러나 최신 .NET 런타임 지원을 포함하여 대부분의 새로운 특징과 기능은 Windows 앱 SDK/WinUI 3에만 추가됩니다.

어떤 경우에 UWP/WinUI 2 앱을 WinUI 3으로 마이그레이션해야 하나요?

UWP 및 기능 세트에 만족하는 UWP 개발자는 앱을 Windows 앱 SDK로 마이그레이션하지 않아도 됩니다. 일부 앱은 마이그레이션하지 않는 것이 가장 적합한 선택일 수 있습니다. 최신 Windows 플랫폼과 Microsoft의 .NET 투자를 활용하려는 앱은 Windows 앱 SDK로 전환하는 것이 좋습니다. UWP에서 Windows 앱 SDK로 마이그레이션을 참조하세요.

어떤 경우에 UWP + WinUI 2 앱을 WinUI 3으로 마이그레이션하면 *안* 되나요?

Xbox, Surface Hub 또는 HoloLens 앱을 빌드하는 경우 UWP를 계속 사용하는 것이 좋습니다.

WPF는 더 이상 사용되지 않나요?

아니요 WPF는 여전히 지원되며 일부 기능 업데이트도 받습니다.

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

아니요 WinForms는 여전히 지원되며 일부 기능 업데이트도 받습니다.

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

아니요 WinRT는 여러 언어 간에 상호 운용할 수 있게 해주는 ABI(애플리케이션 이진 파일 인터페이스)를 나타냅니다. WinRT는 COM이 발전된 것입니다. Windows 앱 SDK는 WinRT API를 통해 대부분의 기능을 제공합니다.

릴리스 정보

Windows 앱 SDK의 릴리스 정보는 어디서 찾을 수 있나요?