다음을 통해 공유


프레임워크 옵션 개요를 참조하세요.

이 문서에는 Windows를 위한 앱 빌드를 시작하는 데 필요한 정보가 포함되어 있습니다.

Windows는 WinUI, 데스크톱용 React Native, WPF, C++, C#, .NET 및 다양한 플랫폼 간 프레임워크를 포함하여 앱을 빌드하기 위한 다양한 언어, 프레임워크 및 도구를 제공합니다. 여기서는 사용자에게 가장 적합한 옵션을 결정하는 데 도움이 되는 정보를 제공합니다.

윈UI

WinUI 로고.

WinUI 및 Windows 앱 SDK 최신 Windows 릴리스를 활용하고 멋지게 보이는 앱을 만드는 것이 좋습니다. Windows 개발이 익숙하지 않거나 새 Windows 앱에서 작업을 시작하는 경우, WinUI는 훌륭한 Windows 11용 앱을 만드는 데 필요한 리소스를 제공합니다.

WinUI 는 Windows 앱을 빌드하기 위한 최신 컨트롤과 스타일을 포함하는 XAML 태그 기반 사용자 인터페이스 계층입니다. Windows 앱 SDK 네이티브 UI 계층으로 Fluent Design을 구현하여 각 Windows 앱에 고객이 기대하는 세련된 느낌을 줍니다.

참고 항목

Windows 앱 SDK는 Windows 앱 개발 플랫폼의 최신식 진화를 나타내는 새로운 개발자 구성 요소 및 도구 세트입니다. Windows 앱 SDK는 Windows 11 및 하위 수준인 Windows 10, 버전 1809의 데스크톱 앱에서 일관된 방식으로 사용할 수 있는 API 및 도구의 통합 세트를 제공합니다.

WinUI는 네이티브 UI layer이지만 WPF, WinForms 또는 Win32 앱에서 Windows 앱 SDK 사용할 수 있습니다. 이전에 Windows용 앱을 개발했지만 기존 앱에서 Windows 앱 SDK 시작하려는 경우 프레임워크 별 가이드를 참조하세요.

데스크톱용 React Native

React Native는 플랫폼 간 앱을 빌드할 수 있는 개발 플랫폼입니다. 데스크톱 용 React Native는 Windows 및 macOS용 React Native를 포함하며, Windows SDK에 React Native 지원을 제공합니다. 데스크톱용 React Native를 사용하면 JavaScript를 사용하여 Windows 10 및 Windows 11에서 지원하는 모든 디바이스에 대한 네이티브 Windows 앱을 빌드할 수 있습니다. 여기에는 PC, 태블릿, 2-in-1, Xbox, 혼합 현실 디바이스 등이 포함됩니다.

데스크톱용 React Native를 사용하면 JavaScript 또는 TypeScript에서 앱 코드의 대부분 또는 전부를 작성하고 프레임워크는 네이티브 UWP XAML 애플리케이션을 생성합니다. 앱에서 플랫폼 API를 호출해야 하는 경우 일반적으로 많은 커뮤니티 모듈 중 하나를 통해 호출할 수 있습니다. 또는 모듈이 아직 없는 경우에는 쉽게 네이티브 모듈을 작성하여 노출할 수 있습니다.

다음은 데스크톱용 React Native를 선택하는 몇 가지 이유입니다.

  • 가능한 한 여러 플랫폼에서 코드를 공유하려 하거나 코드를 공유하려는 웹 속성이 있습니다.
  • 빠른 새로 고침 덕분에 개발자 생산성과 내부 루프가 향상되었습니다.
  • 앱의 기본(성능, 접근성, 국제화)은 네이티브 UWP 앱만큼 우수합니다.
  • JavaScript 또는 TypeScript에 대한 경험이 있고 선호합니다.
  • npmjs.com에서 JavaScript 전용 라이브러리와 많은 기본 라이브러리를 활용하려고 합니다.
  • 앱은 네이티브 컨트롤, 시각적 모양, 애니메이션 및 색상을 사용하므로 Windows에서 사용되는 디자인 언어에 통합된 느낌을 받습니다. 또한 프레임워크를 통해 플랫폼 API를 호출하고 고유한 뷰 관리자 및 네이티브 모듈을 작성할 수 있으므로 데스크톱용 React Native 앱은 호출할 수 있는 API 집합을 손상시킬 필요가 없습니다.
  • 증가하는 대규모 커뮤니티 모멘텀으로, 커뮤니티 모듈이 많습니다.

데스크톱용 React Native에 대한 자세한 내용은 다음 링크를 참조하세요.

WPF (Windows Presentation Foundation, 윈도우 프레젠테이션 파운데이션)

WPF는 .NET 또는 .NET Framework에 액세스할 수 있는 Windows 데스크톱 애플리케이션을 위한 잘 설정된 프레임워크입니다. WinUI와 마찬가지로 XAML 태그를 사용하여 UI를 코드와 분리합니다. WPF는 컨트롤, 데이터 바인딩, 레이아웃, 2D 및 3D 그래픽, 애니메이션, 스타일, 템플릿, 문서, 미디어, 텍스트 및 입력 체계를 포함하는 포괄적인 애플리케이션 개발 기능 세트를 제공합니다. WPF는 .NET의 일부이므로, .NET API의 다른 요소를 통합하는 애플리케이션을 빌드할 수 있습니다.

또한 이제 샌드박스 환경을 패키징된 WPF 애플리케이션에 통합하여 추가적인 보안 계층을 제공할 수 있습니다. 이 향상된 기능은 새로운 Win32 앱 격리 보안 기능 덕분에 코드를 거의 또는 전혀 변경하지 않아도 됩니다.

WPF에 이미 투자한 경우 계속 사용하고 .NET 9의 현대화 옵션을 활용할 수 있습니다. Microsoft가 WPF에 계속 투자하고 있다는 것을 알고 앱을 빌드할 수 있습니다. 자세한 내용은 Windows 개발자 FAQ 참조하세요.

만일 WPF .NET 앱이 있다면 Windows 앱 SDK에서 제공하는 최신 Windows 플랫폼 기능 및 API에도 액세스할 수 있습니다. 자세한 내용은 WPF 앱에서 Windows 앱 SDK 사용하고 데스크톱 앱 현대화하기를 참조하세요.

앱에 가장 적합한 프레임워크를 결정하는 데 더 많은 도움이 필요한 경우 Windows 개발 프로젝트 학습 모듈에 가장 적합한 애플리케이션 프레임워크 선택을 참조하세요.

기타 네이티브 플랫폼 옵션

Windows용 앱은 대부분 Win32, Windows Forms 또는 UWP를 사용하여 작성됩니다. 이러한 각 프레임워크는 지원되며 버그, 안정성 및 보안 수정을 계속 받지만, 새로운 기능 및 스타일에 대해서는 각각 다른 수준의 투자를 받게 됩니다. 이러한 앱 종류에 대한 자세한 내용은 다음의 탭을 참조하세요.

Win32 데스크톱 앱(클래식 데스크톱 앱이라고도 함)은 Windows 및 하드웨어에 직접 액세스해야 하는 네이티브 Windows 애플리케이션을 위한 원래 앱 유형입니다. 이것이 Win32가 가장 높은 수준의 성능과 시스템 하드웨어에 대한 직접 액세스가 필요한 애플리케이션에 적합한 앱 유형인 이유입니다.

C++와 함께 Win32 API를 사용하면 WinRT 및 .NET과 같은 관리형 런타임 환경에서 가능한 것보다 비 관리형 코드로 대상 플랫폼을 더 많이 제어함으로써 최고 수준의 성능과 효율성을 달성할 수 있습니다. 그러나 애플리케이션 실행에 대한 이러한 수준의 제어 권한을 행사하는 데에는 올바른 결정을 내리기 위해 더 많은 주의와 관심이 필요하며, 런타임 성능을 위해 개발 생산성을 맞바꾸어야 합니다.

다음에는 고성능 애플리케이션을 빌드하는 데 도움이 되도록 Win32 API 및 C++가 제공하는 기능에 대한 몇 가지 주요 항목이 나와 있습니다.

  • 리소스 할당, 개체 수명, 데이터 레이아웃, 정렬, 바이트 압축 등에 대한 엄격한 제어를 포함한 하드웨어 수준의 최적화.
  • 내장 함수를 통해 SSE 및 AVX와 같은 성능 지향적인 지침 세트에 대한 액세스.
  • 템플릿 사용으로 효율적이고 형식이 안전한 제네릭 프로그래밍.
  • 효율적이고 안전한 컨테이너 및 알고리즘.
  • DirectX, 특히 Direct3D 및 DirectCompute.
  • C++/WinRT를 사용하여 Windows 런타임(WinRT) API에 대한 고급 액세스를 갖춘 최신 데스크톱 Win32 앱을 만듭니다.

또한 이제 샌드박스 환경을 Win32 애플리케이션에 통합하여 추가적인 보안 계층을 제공할 수 있습니다. 이 향상된 기능은 새로운 Win32 앱 격리 보안 기능 덕분에 코드를 거의 또는 전혀 변경하지 않아도 됩니다.

또한 Windows 앱 SDK에서 제공하는 최신 Windows 플랫폼 기능 및 API에 액세스할 수 있습니다. 자세한 내용은 기존 프로젝트에서 Windows 앱 SDK 사용하고 데스크톱 앱 현대화하기 를 참조하세요.

기타 플랫폼 간 옵션

앱이 플랫폼 간이어야 하는 경우 데스크톱용 React Native 외에도 .NET MAUI, Blazor 하이브리드 또는 PWA(프로그레시브 웹앱)를 고려해야 합니다. 사용할 수 있는 다른 옵션도 많이 있지만(자주 사용되는 옵션 목록은 다음과 같습니다), 다음 옵션들은 좋은 시작점입니다.

.NET MAUI harness는 Windows 기반 WinUI의 기능을 활용하는 동시에 다른 운영 체제에서도 실행할 수 있습니다. Blazor 하이브리드는 데스크톱 및 모바일 네이티브 클라이언트 프레임워크를 .NET 및 Blazor와 혼합합니다. 또 다른 플랫폼 간 옵션인 PWA(프로그레시브 웹앱)는 Windows 및 기타 지원 플랫폼에 설치된 네이티브 앱처럼 작동하는 동시에 브라우저에서는 일반 웹 사이트처럼 작동하는 웹 사이트입니다.

자세한 내용은 다음 탭을 참조하십시오.

.NET MAUI(다중 플랫폼 앱 UI)는 단일 .NET 코드 베이스에서 각 플랫폼의 네이티브 UI 및 서비스를 활용하는 Android, iOS, macOS 및 Windows 애플리케이션을 빌드하기 위한 오픈 소스 플랫폼 간 프레임워크입니다. .NET MAUI 플랫폼 네이티브 환경을 선호하므로 WinUI 및 Windows 앱 SDK를 사용하여 앱이 Windows 최신 사용자 환경을 가져올 수 있습니다. 이렇게 하면 앱이 WinUI를 통해 얻는 모든 것에 액세스하고 다른 플랫폼에 연결할 수 있습니다.

다음과 같은 경우 Windows용 .NET MAUI를 선택하는 것이 좋습니다.

  • 모바일 및 데스크톱 애플리케이션에서 초대한 많은 .NET 코드를 공유하려고 합니다.
  • 네이티브 플랫폼 환경을 통해 Windows 이외의 다른 데스크톱 및 모바일 대상으로 애플리케이션을 제공하려고 합니다.
  • 플랫폼 간 앱을 빌드하기 위해 C# 및/또는 XAML을 사용하려고 합니다.
  • 웹 개발에 Blazor를 사용 중이며 모바일 또는 데스크톱 애플리케이션에 해당 웹 개발의 전부 또는 일부를 포함하려고 합니다.

.NET MAUI에 대한 자세한 내용은 다음 링크를 참조하세요.

앱 개발 프레임워크 기능 비교

Windows용 애플리케이션을 개발하기 위한 다양한 옵션이 있습니다. 가장 적합한 옵션은 응용 프로그램 요구 사항, 기존 코드 및 기술에 대한 친숙도에 따라 달라집니다. 다음 표에는 Windows에서 사용할 수 있는 가장 인기 있는 앱 개발 프레임워크와 각 프레임워크에서 지원하는 기능이 나열되어 있습니다.

기능 .NET 마우이 Blazor 하이브리드 데스크톱용 React Native UWP XAML(Windows.UI.Xaml) Win32(MFC 또는 ATL) 윈도우 폼즈 (Windows Forms) WinUI 3 WPF (Windows Presentation Foundation, 윈도우 프레젠테이션 파운데이션)
언어 C# (프로그래밍 언어) C# (프로그래밍 언어) 자바스크립트, 타입스크립트 C#, C++, 비주얼 베이직 C++, Rust C#, 비주얼 베이직 C#, C++ C#, 비주얼 베이직
UI 언어 XAML/코드 면도기 제이에스엑스 XAML 코드 코드 XAML XAML
UI 디자이너
(끌기 & 놓기)
지원되지 않음 지원되지 않음 지원되지 않음 지원됨 지원되지 않음 지원됨 지원되지 않음 지원됨
UI 디버깅 핫 다시 로드 핫 다시 로드 빠른 새로 고침 핫 다시 로드 - 핫 다시 로드 핫 다시 로드 핫 다시 로드
Fluent 디자인 지원됨 지원됨 지원됨 지원됨 ( WinUI 2를 통해) 지원되지 않음 지원되지 않음 지원됨 지원되지 않음
.그물 닷넷 닷넷 해당 없음 .NET Core & .NET 네이티브 해당 없음 .NET 및 .NET Framework 닷넷 .NET 및 .NET Framework
Windows 앱 SDK 지원됨 (추가 정보) MAUI를 통해지원 지원됨 (추가 정보) 지원되지 않음 지원됨 지원됨 (추가 정보) 지원됨 지원됨 (추가 정보)
터치에 적합 지원됨 지원됨 지원됨 지원됨 지원되지 않음 지원되지 않음 지원됨 지원되지 않음
플랫폼 간 지원됨 지원됨 지원됨 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음
Xbox/HoloLens 앱 지원되지 않음 지원되지 않음 지원됨 지원됨 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음
샌드박싱(AppContainer) 지원되지 않음 지원되지 않음 지원됨 지원됨 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음
현재 지원됨 지원됨 지원됨 지원됨 지원됨 지원됨 지원됨 지원됨 지원됨
업데이트 받기 지원됨 지원됨 지원됨 지원됨 (보안 및 버그픽스) 지원됨 지원됨 지원됨 지원됨
로드맵 깃허브 깃허브 깃허브 해당 없음 해당 없음 깃허브 깃허브 깃허브

다음 각 옵션에 대해 자세히 알아봅니다.

다음 단계

  • WinUI를 사용하여 Windows용 앱 개발 시작하기

    WinUI는 Windows 앱에 권장되는 플랫폼이며, 이러한 단계를 통해 빠르게 시작할 수 있습니다.

  • Windows에서 개발 환경 설정

    Windows는 Windows에서 실행되는 앱을 개발하는 데 유용한 것이 아니라 모든 플랫폼용 앱을 개발하기 위한 강력한 환경이기도 합니다. 개발을 최대화하는 데 사용할 수 있는 도구와 옵션에 대해 자세히 알아봅니다.