UWP는 Windows 위해 클라이언트 애플리케이션을 만드는 여러 가지 방법 중 하나입니다.
참고
Windows 앱을 개발하기 시작하는 경우 UWP 대신 Windows 앱 SDK 및 WinUI를 사용하는 것이 좋습니다. 아직 지원되기는 하나, UWP는 현재 개발 중이 아닙니다. 자세한 내용은 Windows 앱 개발 시작을 참조하세요.
Windows 앱을 만들기 시작하기 위해 필요한 도구를 다운로드하려면 Windows 앱 SDK의 도구 설치를 참조한 다음, 첫 번째 앱 작성을 참조하세요.
UWP는 Microsoft 개발 스토리에서 어디에 적합합니까?
UWP는 Windows 10 및 Windows 11 디바이스에서 실행되고 다른 플랫폼과 결합할 수 있는 앱을 만들기 위한 한 가지 선택 사항입니다. UWP 앱은 Win32 API 및 .NET 클래스를 사용할 수 있습니다(UWP 앱의 경우 API 집합, UWP 앱의 경우 Dll 및 UWP 앱의 경우 .NET 참조).
UWP 앱의 기능
UWP 앱은 다음과 같습니다.
- 보안: UWP 앱은 액세스하는 디바이스 리소스와 데이터를 선언합니다. 사용자는 이러한 액세스에 권한을 부여해야 합니다.
- Windows 실행하는 모든 디바이스에서 공통 API를 사용할 수 있습니다.
- 디바이스 특정 기능을 사용하고 다른 디바이스 화면 크기, 해상도 및 DPI에 맞춰 UI를 조정할 수 있습니다.
- Windows 10 또는 Windows 11을 실행하는 모든 장치(또는 사용자가 지정한 장치)에서 Microsoft Store를 통해 사용할 수 있습니다. Microsoft Store 앱에서 수익을 창출하기 위한 여러 가지 방법을 제공합니다.
- 시스템에 위험이 되거나 "시스템 rot"이 발생할 위험 없이 설치 및 제거를 수행할 수 있습니다.
- 참여: 라이브 타일, 푸시 알림, 그리고 Windows 타임라인 및 Cortana의 '중단한 위치에서 계속하기'와 상호작용하는 사용자 활동을 통해 사용자 참여를 유도합니다.
- C#, C++, Visual Basic 및 JavaScript로 프로그래밍할 수 있습니다. UI에서 WinUI, XAML, HTML 또는 DirectX를 사용합니다.
이러한 내용을 좀 더 자세히 살펴보겠습니다.
보안
UWP 앱은 마이크, 위치, 웹캠, USB 디바이스, 파일 및 등에 대한 액세스와 같이 필요한 디바이스의 기능을 매니페스트에 선언합니다. 사용자가 이러한 액세스를 승인하고 인증해야만 앱에 이 기능에 대한 사용 권한이 부여됩니다.
모든 디바이스에서 공통되는 API 화면
Windows 10 Windows 실행하는 모든 디바이스에서 공통 앱 플랫폼을 제공하는 UWP(유니버설 Windows 플랫폼) 도입했습니다. UWP 코어 API는 모든 Windows 디바이스에서 동일합니다. 앱이 핵심 API만 사용하는 경우 데스크톱 PC, Xbox, 혼합 현실 헤드셋 등을 대상으로 하는지 여부에 관계없이 모든 Windows 디바이스에서 실행됩니다.
C++/WinRT로 작성된 UWP 앱은 UWP의 일부인 Win32 API에 액세스할 수 있습니다. 이러한 Win32 API는 모든 Windows 디바이스에서 구현됩니다.
확장 SDK는 특정 디바이스 유형의 고유한 기능을 노출
유니버설 API를 대상으로 하는 경우 Windows 10 이상을 실행하는 모든 디바이스에서 앱을 실행할 수 있습니다. 그러나 UWP 앱에서 디바이스 고유의 API를 활용하도록 하려는 경우에는 그렇게 할 수도 있습니다.
확장 SDK는 서로 다른 디바이스에 특화된 API를 호출할 수 있도록 해줍니다. 예를 들어, UWP 앱이 IoT 디바이스를 대상으로 하는 경우에는 IoT 디바이스 고유의 기능을 대상으로 삼도록 IoT 확장 SDK를 프로젝트에 추가할 수 있습니다. 확장 SDK를 추가하는 자세한 방법은 확장 SDK를 사용한 프로그래밍의 확장 SDK 섹션을 참조하세요.
특정 유형의 디바이스에서만 실행되도록 앱을 작성한 다음 해당 배포를 Microsoft Store 해당 유형의 디바이스로 제한할 수 있습니다. 또는 실행 시 API가 있는지 조건부 테스트를 실시하고 이에 따라 동작을 조정할 수 있습니다. 자세한 내용은 확장 SDK를 사용한 프로그래밍의 코드 작성 섹션을 참조하세요.
적응형 컨트롤 및 입력
UI 요소는 레이아웃과 배율을 조정하여 앱이 실행 중인 화면의 크기와 DPI에 응답합니다. UWP 앱은 키보드, 마우스, 터치, 펜 및 게임 컨트롤러 같이 여러 유형의 입력에서 원활하게 작동합니다. 특정 화면 크기나 디바이스로 UI를 추가적으로 사용자 지정해야 하는 경우에는 앱이 실행되는 다양한 디바이스 및 폼 팩터에 맞게 UI를 디자인할 수 있는 데 새 레이아웃 패널 및 도구를 사용할 수 있습니다.
Windows 다음 기능을 사용하여 여러 디바이스에 UI를 대상으로 지정하는 데 도움이 됩니다.
- 유니버설 컨트롤 및 레이아웃 패널을 사용하면 디바이스의 화면 해상도에 맞게 UI를 최적화할 수 있습니다. 예를 들어, 단추나 슬라이드 같은 컨트롤은 디바이스의 화면 크기와 DPI 밀도에 자동으로 맞춰집니다. 레이아웃 패널에서는 화면 크기에 따라 콘텐츠 레이아웃을 편리하게 조정할 수 있습니다. 적응형 크기 조정은 디바이스 간의 해상도 및 DPI 차이에 맞게 조정됩니다.
- 공통 입력 처리를 사용하면 터치, 펜, 마우스, 키보드 또는 게임 컨트롤러를 통해 입력을 받을 수 있습니다.
- 다양한 화면 해상도에 맞게 조정이 가능하도록 UI를 디자인할 수 있는 유용한 도구입니다.
앱 UI의 일부 측면은 디바이스 간에 자동으로 적응합니다. 그러나 앱이 실행되는 디바이스에 따라 앱의 사용자 경험 디자인을 조정해야 할 수도 있습니다. 예를 들어 사진 앱은 소형 핸드헬드 디바이스에서 실행될 때 한손으로 사용하기에 적합하도록 UI를 조정할 수 있습니다. 사진 앱을 데스크톱 컴퓨터에서 실행할 때는 추가 화면 공간을 활용하도록 UI를 조정해야 합니다.
모든 디바이스를 위한 하나의 Store
통합 앱 스토어를 사용하면 PC, 태블릿, Xbox, HoloLens, Surface Hub 및 IoT(사물 인터넷) 디바이스와 같은 Windows 디바이스에서 앱을 사용할 수 있습니다. 앱을 Store에 제출하고 모든 유형의 디바이스에서, 또는 선택한 디바이스에서 이를 사용하도록 할 수 있습니다. Windows 디바이스에 대한 모든 앱을 한 곳에서 제출하고 관리합니다. UWP 기능을 사용하여 현대화하고 Microsoft 스토어에서 판매하려는 C++ 데스크톱 앱이 있나요? 그것도 가능합니다.
사용자에 대한 이해를 높이고 앱을 개선하는 데 중요한 도구인 상세 원격 분석용 Application Insights에 UWP 앱이 연결됩니다.
UWP 앱은 MSIX 패키지하고 Microsoft Store 통해 또는 다른 방법으로 배포할 수 있습니다. MSIX를 사용하면 배포 방법에 관계없이 앱을 업데이트할 수 있습니다. 코드에서 스토어에 게시되지 않은 앱 패키지 업데이트를 참조하세요.
앱으로 수익 창출
앱으로 수익을 창출하는 방법을 선택할 수 있습니다. 앱으로 수익을 창출할 수 있는 다양한 방법이 있습니다. 예를 들어 자신에게 가장 적합한 앱을 선택하기만 하면 됩니다.
- 가장 간단한 옵션은 유료 다운로드입니다. 가격만 정하세요.
- 평가판은 사용자가 앱을 구입하기 전에 시험 삼아 사용하여 기존의 "프리미엄(Freemium)" 옵션보다 앱 검색률과 구매전환율을 더욱 쉽게 높일 수 있게 해줍니다.
- 사용자에게 인센티브를 제공하기 위한 판매 가격입니다.
- 앱 내 구매.
사용자의 재방문율을 높이도록 사용자에게 관련성 높은 실시간 정보를 제공
UWP 앱에서 사용자의 참여도를 높이는 방법은 여러 가지가 있습니다.
- 라이브 타일과 잠금 화면 타일은 앱에서 맥락적으로 연관성이 있고 시의적절한 정보를 한눈에 보여줍니다.
- 실시간 경고를 통해 사용자의 주목을 불러일으키는 푸시 알림입니다.
- 사용자 활동을 통해 사용자는 여러 디바이스에서 앱을 중단했던 부분을 이어서 계속할 수 있습니다.
- 알림 센터에는 앱에서 제공된 알림이 정리되어 있습니다.
- 백그라운드 실행 및 트리거는 사용자가 필요할 때만 앱을 실행합니다.
- 사용자가 전 세계와 상호 작용하는 데 도움이 되도록 앱에서 음성 및 Bluetooth LE 디바이스를 사용할 수 있습니다.
- 앱에 음성 명령 기능을 추가하려면 Cortana를 연결합니다.
이미 알고 있는 언어 사용
UWP 앱은 운영 체제에서 제공하는 네이티브 API인 Windows 런타임 사용합니다. 이 API는 C++에서 구현되며 C#, Visual Basic, C++, JavaScript에서 지원됩니다. UWP 앱을 작성하기 위한 몇 가지 옵션은 다음과 같습니다.
- XAML UI 및 C#, VB 또는 C++
- DirectX UI 및 C++
- JavaScript 및 HTML
- 윈UI
실행에 도움이 되는 링크
설정 시작하기
시작하기를 확인하여 앱 생성을 시작하는 데 필요한 도구를 다운로드한 다음, 첫 번째 앱을 작성합니다.
앱 설계
Microsoft 디자인 시스템의 이름은 Fluent입니다. Fluent 디자인 시스템은 모든 유형의 Windows 지원 디바이스에서 아름답게 작동하는 앱을 만들기 위한 모범 사례와 결합된 UWP 기능 집합입니다. Fluent 환경은 태블릿부터 노트북, PC, TV 및 가상 현실 디바이스에 이르기까지 모든 디바이스에 적응하여 자연스러운 경험을 제공합니다. Fluent Design에 대한 내용은 UWP 앱을 위한 Fluent Design System을 참조하세요.
좋은 디자인이란 모양과 기능 외에도 사용자가 앱과 상호 작용하는 방식을 고려한 것입니다. 사용자 환경은 앱 사용의 즐거움을 결정하는 데 중요한 역할을 하므로 이 단계를 간과해서는 안 됩니다. 디사인 기본 사항 유니버설 Windows 앱을 디자인하는 방법을 소개합니다. 디바이스 입문서를 참조하면 대상으로 지정하려는 다양한 폼 팩터에서 앱을 사용하는 조작 환경을 생각하는 데 도움이 됩니다.
다양한 디바이스에서의 조작 외에도 여러 디바이스의 이점을 수용하도록 앱을 계획해야 합니다. 예:
UWP 앱의 탐색 디자인 기본 사항에 따라 모바일, 작은 화면 및 큰 화면 디바이스를 수용하도록 워크플로를 디자인합니다. 다양한 화면 크기와 해상도에 맞게 사용자 인터페이스를 레이아웃합니다.
여러 입력 형식을 수용할 방법을 고려합니다. 음성, 터치 조작, 터치 키보드 등을 사용하여 앱을 조작하는 방법은 조작에 대한 지침을 참조하세요. 또는, 전통적인 상호작용 경험을 위해 텍스트 및 텍스트 입력에 대한 지침을 참조하세요.
서비스 추가
- Azure Cloud Services 사용하여 디바이스 간에 동기화합니다.
- 앱 환경에서 지원하기 위해 웹 서비스에 연결하는 방법을 알아보세요.
- 푸시 알림 및 앱에서 바로 구매를 계획에 포함합니다. 이러한 기능은 디바이스 간에 작동해야 합니다.
스토어에 앱 제출
Partner Center를 사용하면 Windows 디바이스에 대한 모든 앱을 한 곳에서 관리하고 제출할 수 있습니다. Microsoft Store 게시할 Windows 앱을 제출하는 방법을 알아보려면 앱 및 게임 게시를 참조하세요.
새 기능 덕분에 프로세스는 간소화되고 더 세부적으로 제어할 수 있습니다. 자세한 분석 보고서, 결합된 지급 세부 정보, 앱을 홍보하고 고객 참여를 유도하는 방법 등을 알아볼 수 있습니다.
자세한 소개 자료는
고급 항목
- 앱의 사용자 활동이 Windows 타임라인 및 Cortana의 중단된 위치 선택 기능에 표시되도록 사용자 활동을 사용하는 방법을 알아봅니다.
- UWP 앱을 위한 타일, 배지 및 알림을 사용하는 방법을 알아보세요.
- UWP 앱에 사용할 수 있는 Win32 API의 전체 목록은 UWP 앱의 API 집합 및 UWP 앱의 Dll을 참조하세요.
- .NET UWP 앱 작성에 대한 개요는 .NET의 유니버설 Windows 앱을 참조하세요.
- UWP 앱에서 사용할 수 있는 .NET 형식 목록은 UWP 앱의
.NET - .NET 및 네이티브 AOT를 사용하여 UWP 앱 모더니지 - 신규 및 기존 UWP 앱에서 최신 .NET 기능에 액세스하는 것이 좋습니다.
.NET Native - 레거시 도구 체인(보안 업데이트에만 해당) - 기존 데스크톱 앱에 Windows 사용자를 위한 최신 환경을 추가하고 Desktop Bridge 사용하여 Microsoft Store 배포하는 방법을 알아봅니다.
유니버설 Windows 플랫폼이 Windows 런타임 API와 관련되는 방법
UWP(유니버설 Windows 플랫폼) 앱을 빌드하는 경우 "UWP(유니버설 Windows 플랫폼)" 및 "Windows 런타임(WinRT)"라는 용어를 다소 동의어로 취급하지 않으면 많은 마일리지와 편의를 얻을 수 있습니다. 하지만 기술적 측면을 바라보면 이러한 개념 간에 차이점을 알 수 있게 됩니다. 이 내용에 대해 궁금한 점이 있으면 마지막 섹션이 도움이 될 것입니다.
Windows 런타임 및 WinRT API는 Windows API의 진화입니다. 원래 Windows 앱은 C 스타일의 Win32 API를 사용하여 작성되었고, 여기에 COM API가 추가되었습니다. DirectX가 그 대표적인 예입니다. Windows Forms, WPF, .NET 및 관리되는 언어와 같은 이후 기술은 고유한 버전의 API 기술로 Windows 앱을 작성하는 고유한 방법을 제공합니다. Windows 런타임는 내부적으로 COM의 다음 단계입니다. 실제 ABI(애플리케이션 이진 인터페이스) 계층에서는 COM의 해당 루트가 표시됩니다. 그러나 COM과 달리 Windows 런타임 보다 자연스러운 방식으로 다양한 프로그래밍 언어에서 호출할 수 있도록 설계되었습니다. 결과적으로 Windows 런타임 대한 액세스는 언어 프로젝션이라고 하는 것을 통해 사용할 수 있습니다. 프로젝션은 COM 세부 정보를 숨기고 지정된 언어에 대한 보다 자연스러운 프로그래밍 환경을 제공합니다. C#, Visual Basic, 표준 C++, JavaScript 등으로 Windows 런타임 언어 프로젝션이 있습니다. 또한 적절하게 패키지되면 Desktop Bridge를 참조하세요. Win32, .NET, WinForms, WPF 및 UWP와 같은 다양한 애플리케이션 모델로 빌드된 앱에서 WinRT API를 호출할 수 있습니다.
UWP는 Windows 런타임 기반으로 빌드된 애플리케이션 모델입니다. 기술적으로 UWP 애플리케이션 모델은 CoreApplication을 기반으로 하지만 선택한 프로그래밍 언어에 따라 세부 정보가 숨겨질 수 있습니다. UWP는, 필요에 따라 Microsoft Store에 게시하고 위에서 언급한 다양한 디바이스 형태에서 실행할 수 있는 단일 바이너리를 생성하는 데 적합합니다. UWP 앱의 디바이스 도달 범위는 앱을 호출로 제한하거나 조건부로 호출하는 Windows 런타임 API의 하위 집합에 따라 달라집니다.
이 섹션에서는 기본 Windows 런타임 API와 유니버설 Windows 플랫폼 메커니즘 및 비즈니스 가치 간의 차이점을 설명하는 데 성공했습니다.