UWP(유니버설 Windows 플랫폼) 앱이란?What's a Universal Windows Platform (UWP) app?

유니버설 Windows 플랫폼 앱 적응형 사용자 인터페이스, 자연 스러운 사용자 입력, 하나의 저장소 파트너 센터를 지원 하며 클라우드 서비스는 다양 한 장치에서 실행

UWP 앱은 다음과 같습니다.A UWP app is:

  • 보안: UWP 앱에는 어떤 장치 리소스 및 액세스 되는 데이터 선언 합니다.Secure: UWP apps declare which device resources and data they access. 사용자는 이러한 액세스에 권한을 부여해야 합니다.The user must authorize that access.
  • Windows 10을 실행하는 모든 장치에서 일반적인 API를 사용할 수 있습니다.Able to use a common API on all devices that run Windows 10.
  • 장치 특정 기능을 사용 하 고 다른 장치 화면 크기, 해상도 및 DPI UI를 적용할 수 있습니다.Able to use device specific capabilities and adapt the UI to different device screen sizes, resolutions, and DPI.
  • Windows 10에서 실행되는 모든 디바이스(또는 사용자가 지정하는 항목만)의 Microsoft Store에서 사용할 수 있습니다.Available from the Microsoft Store on all devices (or only those that you specify) that run on Windows 10. Microsoft Store는 앱에서 소득을 올릴 수 있는 다양한 방법을 제공합니다.The Microsoft Store provides multiple ways to make money on your app.
  • 시스템에 위험이 되거나 "시스템 rot"이 발생할 위험 없이 설치 및 제거를 수행할 수 있습니다.Able to be installed and uninstalled without risk to the machine or incurring "machine rot".
  • 참여: 라이브 타일, 푸시 알림, Windows Timeline과 Cortana의 "중단한 위치부터 다시 시작" 기능과 상호 작용하는 사용자 활동을 활용하여 사용자의 참여를 이끌어냅니다.Engaging: use live tiles, push notifications, and user activities that interact with Windows Timeline and Cortana's Pick Up Where I Left Off, to engage users.
  • C#, C++, Visual Basic 및 Javascript에서 프로그래밍이 가능합니다.Programmable in C#, C++, Visual Basic, and Javascript. UI에서 XAML, HTML 또는 DirectX를 사용합니다.For UI, use XAML, HTML, or DirectX.

이들을 보다 자세히 살펴보겠습니다.Let's look at these in more detail.

보안Secure

UWP 앱은 마이크, 위치, 웹캠, USB 장치, 파일 및 등에 대한 액세스와 같이 필요한 디바이스의 기능을 매니페스트에 선업합니다.UWP apps declare in their manifest the device capabilities they need such as access to the microphone, location, Webcam, USB devices, files, and so on. 사용자가 이러한 액세스를 승인하고 인증해야만 앱에 이 기능에 대한 사용 권한이 부여됩니다.The user must acknowledge and authorize that access before the app is granted the capability.

모든 디바이스에서의 공통 API 표면A common API surface across all devices

Windows 플랫폼 (UWP (유니버설), Windows 10을 실행 하는 모든 장치에서 일반 앱 플랫폼을 제공 하는 Windows 10을 소개 합니다.Windows 10 introduces the Universal Windows Platform (UWP), which provides a common app platform on every device that runs Windows 10. UWP 핵심 API는 모든 Windows 장치에서 같습니다.The UWP core APIs are the same on all Windows devices. 앱이만 핵심 Api를 사용 하는 경우 데스크톱 PC, Xbox, 혼합 현실 헤드셋을 대상으로 하는 여부에 관계 없이 모든 Windows 10 장치에서 실행 하 고 등 합니다.If your app only uses the core APIs, it will run on any Windows 10 device no matter whether you are targeting a desktop PC, Xbox, Mixed-reality headset, and so on.

C++ /WinRT 또는 C++ /CX로 작성된 UWP 앱은 UWP의 일부인 Win32 API에 액세스할 수 있습니다.A UWP app written in C++ /WinRT or C++ /CX has access to the Win32 APIs that are part of the UWP. 이러한 Win32 Api는 모든 Windows 10 장치에 의해 구현 됩니다.These Win32 APIs are implemented by all Windows 10 devices.

확장 SDK는 특정 디바이스 유형의 고유한 기능을 노출Extension SDKs expose the unique capabilities of specific device types

유니버설 API를 대상으로 하는 경우, Windows 10을 실행하는 모든 디바이스에서 앱을 실행할 수 있습니다.If you target the universal APIs, your app can run on all devices that run Windows 10. 그러나 UWP 앱에서 디바이스 고유의 API를 활용하고 싶은 경우에는 그렇게 할 수 있습니다.But if you want your UWP app to take advantage of device specific APIs, you can.

확장 SDK는 서로 다른 디바이스에 특화된 API를 호출할 수 있도록 해줍니다.Extension SDKs let you call specialized APIs for different devices. 예를 들어, UWP 앱이 IoT 장치를 대상으로 하는 경우에는 IoT 디바이스 고유의 기능을 대상으로 삼도록 IoT 확장 SDK를 프로젝트에 추가할 수 있습니다.For example, if your UWP app targets an IoT device, you can add the IoT extension SDK to your project to target features specific to IoT devices. 확장 SDK를 추가하는 자세한 방법은 디바이스 제품군 개요확장 SDK 섹션을 참조하세요.For more information about adding extension SDKs, see the Extension SDKs section in Device families overview.

특정 종류의 디바이스에만 실행이 되고 Microsoft Store에서의 배포는 해당 유형의 디바이스로 제한이 되도록 앱을 작성할 수 있습니다.You can write your app so that you expect it to run only on a particular type of device, and then limit its distribution from the Microsoft Store to just that type of device. 또는 실행 시 API가 있는지 조건부 테스트를 실시하고 이에 따라 동작을 조정할 수 있습니다.Or, you can conditionally test for the presence of an API at runtime and adapt your app's behavior accordingly. 자세한 내용은 디바이스 제품군 개요코드 작성 섹션을 참조하세요.For more information, see the Writing Code section in Device families overview.

다음 동영상은 디바이스 제품군과 적응형 코딩에 대해 간략하게 설명합니다.The following video provides a brief overview of device families and adaptive coding:

적응형 컨트롤 및 입력Adaptive controls and input

UI 요소는 레이아웃과 배율을 조정하여 앱이 실행 중인 화면의 크기와 DPI에 응답합니다.UI elements respond to the size and DPI of the screen the app is running on by adjusting their layout and scale. UWP 앱은 키보드, 마우스, 터치, 펜 및 Xbox One 컨트롤러 같이 여러 유형의 입력에서 원활하게 작동합니다.UWP apps work well with multiple types of input such as keyboard, mouse, touch, pen, and Xbox One controllers. 특정한 화면 크기나 디바이스로 UI를 추가적으로 사용자 지정해야 하는 경우에는 앱이 실행되는 다양한 디바이스 및 폼 팩터에 맞게 조정이 가능하도록 UI를 디자인하는 데 새 레이아웃 패널 및 도구가 도움이 됩니다.If you need to further tailor your UI to a specific screen size or device, new layout panels and tooling help you design UI that can adapt to the different devices and form factors that your app may run on.

Windows 기반 장치

Windows에서는 다음과 같은 기능으로 UI를 여러 장치에 맞게 조정하도록 도와줍니다.Windows helps you target your UI to multiple devices with the following features:

  • 유니버설 컨트롤 및 레이아웃 패널은 장치의 화면 해상도에 맞게 UI를 최적화하도록 도와줍니다.Universal controls and layout panels help you to optimize your UI for the screen resolution of the device. 예를 들어, 단추나 슬라이드 같은 컨트롤은 디바이스의 화면 크기와 DPI 밀도에 자동으로 맞춰집니다.For example, controls such as buttons and sliders automatically adapt to device screen size and DPI density. 레이아웃 패널은 화면 크기에 따라 콘텐츠 레이아웃을 조정하는 데 도움이 됩니다.Layout panels help adjust the layout of content based on the size of the screen. 적응형 크기 조정은 장치 간의 해상도 및 DPI 차이에 맞게 조정됩니다.Adaptive scaling adjusts to resolution and DPI differences across devices.
  • 일반적인 입력 처리는 터치, 펜, 마우스, 키보드 또는 Microsoft Xbox 컨트롤러와 같은 컨트롤러를 통해 입력을 받을 수 있도록 해줍니다.Common input handling allows you to receive input through touch, a pen, a mouse, a keyboard, or a controller such as a Microsoft Xbox controller.
  • 다양한 화면 해상도에 맞게 조정이 가능하도록 UI를 디자인하는 데 도움이 되는 도구입니다.Tooling that helps you to design UI that can adapt to different screen resolutions.

앱 UI의 일부 측면은 장치 간에 자동으로 적응합니다.Some aspects of your app's UI will automatically adapt across devices. 그러나 앱의 사용자 환경은 앱이 실행되는 장치에 따라 수동으로 적응해야 할 수도 있습니다.Your app's user-experience design, however, may need to adapt depending on the device the app is running on. 예를 들어 사진 앱은 소형 핸드헬드 디바이스에서 실행될 때 한손으로 사용하기에 적합하도록 UI를 조정할 수 있습니다.For example, a photo app could adapt its UI when running on a small, handheld device to ensure that usage is ideal for single-handed use. 사진 앱을 데스크톱 컴퓨터에서 실행할 때는 추가 화면 공간을 활용하도록 UI를 적응해야 합니다.When a photo app is running on a desktop computer, the UI should adapt to take advantage of the additional screen space.

모든 디바이스를 위한 하나의 저장소가 있습니다.There's one store for all devices

통합된 앱 스토어 사용 가능 앱 PC, 태블릿, Xbox, HoloLens, Surface Hub 및 사물 인터넷 (IoT) 장치와 같은 Windows 10 장치에서.A unified app store makes your app available on Windows 10 devices such as PC, tablet, Xbox, HoloLens, Surface Hub, and Internet of Things (IoT) devices. 앱을 스토어에 제출하고 모든 유형의 디바이스에서, 또는 선택한 디바이스에서 이를 사용하도록 할 수 있습니다.You can submit your app to the store and make it available to all types of devices, or only those you choose. 한 곳에서 모든 Windows 장치용 앱을 제출하고 관리합니다.You submit and manage all your apps for Windows devices in one place. UWP 기능으로 현대화하고 Microsoft Store에서 판매하고 싶은 C++ 데스크톱 앱이 있나요?Have a C++ desktop app that you want to modernize with UWP features and sell in the Microsoft store? 그것도 가능합니다.That's okay, too.

사용자에 대한 이해를 높이고 앱을 개선하는 데 중요한 도구인 상세 원격 분석용 Application Insights에 UWP 앱이 통합됩니다.UWP apps integrate with Application Insights for detailed telemetry and analytics—a crucial tool for understanding your users and improving your apps.

앱으로 수익 창출Monetize your app

앱으로 수익을 창출하는 방법을 선택할 수 있습니다.You can choose how you'll monetize your app. 앱으로 수익을 창출할 수 있는 다양한 방법이 있습니다.There are a number of ways to make money with your app. 예를 들어 자신에게 가장 적합한 앱을 선택하기만 하면 됩니다.All you need to do is choose the one that works best for you, for example:

  • 가장 간단한 옵션은 유료 다운로드입니다.A paid download is the simplest option. 가격만 정하세요.Just name the price.
  • 평가판은 사용자가 앱을 구입하기 전에 시험 삼아 사용하여 기존의 "프리미엄(Freemium)" 옵션보다 앱 검색률과 구매전환율을 더욱 쉽게 높일 수 있게 해줍니다.Trials let users try your app before buying it, providing easier discoverability and conversion than the more traditional "freemium" options.
  • 사용자에게 인센티브를 제공하기 위한 판매 가격입니다.Sale prices to incentivize users.
  • 앱에서 바로 구매 기능과 광고도 사용할 수 있습니다.In-app purchases and ads are also available.

Microsoft Store의 앱은 설치, 제거 및 업그레이드를 원활하게 수행할 수 있는 환경 제공Apps from the Microsoft Store provide a seamless install, uninstall, and upgrade experience

모든 UWP 앱은 사용자, 디바이스 및 시스템을 보호하는 패키지 시스템을 사용하여 배포됩니다.All UWP apps are distributed using a packaging system that protects the user, device, and system. 앱에서 생성된 문서를 제외하고 뒤에 어떤 것도 남기지 않고 UWP 앱을 제거할 수 없기 때문에 사용자가 앱을 설치하고 후회할 일이 절대 없습니다.Users never need regret installing an app because UWP apps can be uninstalled without leaving anything behind except the documents created with the app.

앱을 원활하게 배포 및 업데이트할 수 있습니다.Apps can be deployed and updated seamlessly. 필요에 따라 콘텐츠 및 확장을 다운로드할 수 있기 때문에 앱 패키지로 수익 창출이 가능합니다.App packaging can be modularized so that you can download content and extensions on demand.

사용자가 돌아올 수 있도록 사용자에게 관련성 높은 실시간 정보를 제공Deliver relevant, real-time info to your users to keep them coming back

UWP 앱에서 사용자의 참여도를 높이는 방법은 여러 가지가 있습니다.There are a variety of ways to keep users engaged with your UWP app:

  • 라이브 타일과 잠금 화면 타일은 앱에서 맥락적으로 연관성이 있고 시의적절한 정보를 한눈에 보여줍니다.Live tiles and lock screen tiles that show contextually relevant and timely info from your app at a glance.
  • 실시간 경고를 통해 사용자의 주목을 불러일으키는 푸시 알림입니다.Push notifications that bring real-time alerts to your user’s attention.
  • 사용자 활동 덕분에 사용자가 디바이스 전반의 걸쳐 앱을 떠나는 지점을 선택할 수 있습니다.User Activities allow users to pick up where they left off in your app, even across devices.
  • 알림 센터에는 앱에서의 알림이 정리되어 있습니다.The Action Center organizes notifications from your app.
  • 백그라운드 실행 및 트리거는 사용자가 필요할 때만 앱을 실행합니다.Background execution and triggers bring your app into action when the user needs it.
  • 사용자가 전 세계와 상호 작용하는 데 도움이 되도록 앱에서 음성 및 Bluetooth LE 장치를 사용할 수 있습니다.Your app can use voice and Bluetooth LE devices to help users interact with the world around them.
  • 앱에 음성 명령 기능을 추가하려면 Cortana를 통합합니다.Integrate Cortana to add voice command capability to your app.

이미 알고 있는 언어 사용Use a language you already know

UWP 앱은 운영 체제에서 제공되는 네이티브 API인 Windows 런타임을 사용합니다.UWP apps use the Windows Runtime, the native API provided by the operating system. 이 API는 C++에서 구현되고 C#, Visual Basic, C++ 및 JavaScript에서 지원됩니다.This API is implemented in C++ and is supported in C#, Visual Basic, C++, and JavaScript. UWP 앱을 작성하기 위한 몇 가지 옵션은 다음과 같습니다.Some options for writing UWP apps include:

  • XAML UI 및 C#, VB 또는 C++XAML UI and C#, VB, or C++
  • DirectX UI 및 C++DirectX UI and C++
  • JavaScript 및 HTMLJavaScript and HTML

설정Get set up

시작하기를 확인하여 앱 생성을 시작하는 데 필요한 도구를 다운로드한 다음, 첫 번째 앱을 작성합니다.Check out Get set up to download the tools you need to start creating apps, and then write your first app.

앱 디자인Design your app

Microsoft의 디자인 시스템을 Fluent라고 합니다.The Microsoft design system is named Fluent. 흐름 디자인 시스템은 혁신적인 UWP 기능이 결집된 구현체로서 모든 유형의 Windows 기반 장치에서 높은 성능을 발휘할 수 있는 앱을 개발하기 위한 모범 사례가 여기에 통합되어 있습니다.The Fluent Design System is a set of UWP features combined with best practices for creating apps that perform beautifully on all types of Windows-powered devices. Fluent 환경은 태블릿부터 노트북, PC, TV 및 가상 현실 디바이스에 이르기까지 모든 디바이스에 적응하여 자연스러운 경험을 제공합니다.Fluent experiences adapt and feel natural on devices from tablets to laptops, from PCs to televisions, and on virtual reality devices. 흐름 디자인에 대한 내용은 UWP 앱을 위한 흐름 디자인 시스템을 참조하세요.See The Fluent Design System for UWP apps for an introduction to Fluent Design.

좋은 디자인이란 모양과 기능 외에도 사용자가 앱과 상호 작용하는 방식을 고려한 것입니다.Good design is the process of deciding how users will interact with your app, in addition to how it will look and function. 사용자 환경은 앱 사용의 즐거움을 결정하는 데 중요한 역할을 하므로 이 단계를 간과해서는 안 됩니다.User experience plays a huge part in determining how happy people will be with your app, so don't skimp on this step. 디자인 기초에서는 유니버설 Windows 앱 디자인을 소개합니다.Design basics introduces you to designing a Universal Windows app. 사용자를 즐겁게 해주는 UWP 앱을 디자인하는 방법은 디자이너용 UWP(유니버설 Windows 플랫폼) 앱 소개를 참조하세요.See the Introduction to Universal Windows Platform (UWP) apps for designers for information on designing UWP apps that delight your users. 코딩을 시작하기 전에 디바이스 입문을 참조하면 대상으로 지정하려는 다양한 폼 팩터에서 앱을 사용하는 조작 환경을 생각하는 데 도움이 됩니다.Before you start coding, see the device primer to help you think through the interaction experience of using your app on all the different form factors you want to target.

다양한 디바이스에서의 조작 외에도 여러 디바이스의 이점을 수용하도록 앱을 계획해야 합니다.In addition to interaction on different devices, plan your app to embrace the benefits of working across multiple devices. 예를 들어 다음과 같은 가치를 제공해야 합니다.For example:

서비스 추가Add services

스토어에 앱 제출Submit your app to the Store

파트너 센터 모든 곳의 Windows 장치용 앱을 제출 하 고 관리할 수 있습니다.Partner Center lets you manage and submit all of your apps for Windows devices in one place. 참조 게시할 Windows 앱과 게임 Microsoft Store 게시할 앱을 제출 하는 방법을 알아보려면.See Publish Windows apps and games to learn how to submit your apps for publication in the Microsoft Store.

새 기능 덕분에 프로세스는 간소화되고 더 세부적으로 제어할 수 있습니다.New features simplify processes while giving you more control. 자세한 분석 보고서, 결합된 지급 세부 정보, 앱을 홍보하고 고객 참여를 유도하는 방법 등을 알아볼 수 있습니다.You'll also find detailed analytic reports combined payout details, ways to promote your app and engage with your customers, and much more.

자세한 소개 자료를 보려면 Windows 10 디바이스용 Windows 앱 빌드 소개를 참조하세요.For more introductory material, see An Introduction to Building Windows Apps for Windows 10 Devices

고급 항목More advanced topics

유니버설 Windows 플랫폼의 관계를 Windows 런타임 ApiHow the Universal Windows Platform relates to Windows Runtime APIs

유니버설 Windows 플랫폼 (UWP) 앱을 빌드하는 주행 거리와 더 많거나 적은 동의어로 "유니버설 Windows 플랫폼 (UWP)" 및 "Windows Runtime (WinRT)" 용어를 처리 하는 방법에서 편리 하 게 많이 얻을 수 있습니다.If you're building a Universal Windows Platform (UWP) app, then you can get a lot of mileage and convenience out of treating the terms "Universal Windows Platform (UWP)" and "Windows Runtime (WinRT)" as more or less synonymous. 하지만 기술의 내부적으로 살펴보고 확인만 차이 간의 이러한 아이디어를 수 있습니다.But it is possible to look under the covers of the technology, and determine just what the difference is between those ideas. 이 대해 궁금한 점이 있으면 인 경우 마지막 섹션 수입니다.If you're curious about that, then this last section is for you.

Windows 런타임 및 WinRT Api는 Windows Api의 진화 합니다.The Windows Runtime, and WinRT APIs, are an evolution of Windows APIs. 원래 Windows 플랫, C 스타일 Win32 Api를 통해 프로그래밍 된 합니다.Originally, Windows was programmed via flat, C-style Win32 APIs. COM Api를 추가 된 것 (DirectX 대표적인 예로 되).To those were added COM APIs (DirectX being a prominent example). Windows Forms, WPF,.NET 및 관리 되는 언어 Windows 앱 및 API 기술의 자체 버전을 작성 하는 고유한 방식으로 제공 합니다.Windows Forms, WPF, .NET, and managed languages brought their own way of writing Windows apps, and their own flavor of API technology. Windows 런타임, 내부적으로 다음 단계는 comThe Windows Runtime is, under the covers, the next stage of COM. 실제 응용 프로그램 이진 인터페이스 (ABI) 계층에서 COM에 표시 됩니다.At the actual application binary interface (ABI) layer, its roots in COM become visible. 하지만 유용한 다양 한 서로 다른 프로그래밍 언어에서에서 호출할 수 있으려면 Windows 런타임 설계 되었습니다.But the Windows Runtime was designed to be callable from a great range of different programming languages. 및 이러한 각 언어에 매우 자연 스러운 방식으로 호출할 수 있습니다.And callable in a way that's very natural to each of those languages. 이 위해 Windows 런타임에 대 한 언어 라는 항목을 통해 제공 됩니다.To this end, access to the Windows Runtime is made available via what are known as language projections. Windows 런타임 언어 프로젝션에는 C#, Visual Basic로, 표준 c + +로, JavaScript, 및 등입니다.There is a Windows Runtime language projection into C#, into Visual Basic, into standard C++, into JavaScript, and so on. 또한 적절 하 게 패키지 한 번 (참조 데스크톱 브리지), WinRT Api 응용 프로그램 모델의 뛰어난 범위 중 하나에서 작성 한 앱에서 호출할 수 있습니다. Win32,.NET, WinForms 및 WPFFurthermore, once packaged appropriately (see Desktop Bridge), you can call WinRT APIs from an app built in one of a great range of application models: Win32, .NET, WinForms, and WPF.

및 물론 UWP 앱에서 WinRT Api를 호출할 수 있습니다.And, of course, you can call WinRT APIs from your UWP app. UWP는 Windows 런타임 기반으로 구축 된 응용 프로그램 모델입니다.UWP is an application model built on top of the Windows Runtime. UWP 응용 프로그램 모델의 기반이 되는 기술적으로 보면 CoreApplication이지만 선택한 프로그래밍 언어에 따라 세부 정보를 숨길 수 있습니다.Technically, the UWP application model is based on CoreApplication, although that detail may be hidden from you, depending on your choice of programming language. 이 항목에 설명 된 대로, 값 제안의 관점에서 UWP 수을 Microsoft Store 게시 되며 장치 폼 팩터 뛰어난 범위 중 하나에서 실행 하는 단일 바이너리를 작성 하는 데 적합 합니다.As this topic has explained, from a value proposition point of view, the UWP lends itself to writing a single binary that can, should you choose, be published to the Microsoft Store and run on any one of a great range of device form factors. UWP 앱의 장치 연결 앱 호출을 제한 하는 또는 조건부로 호출 하는 UWP Api의 하위 집합에 따라 달라 집니다.The device reach of your UWP app depends on the subset of UWP APIs that you limit your app to calling, or that you call conditionally.

다행히이 섹션에서는 Windows 런타임 Api, 메커니즘 및 유니버설 Windows 플랫폼의 비즈니스 가치를 기본 기술 간의 차이점을 설명 하는 성공 했습니다.Hopefully, this section has been successful in describing the difference between the technology underlying Windows Runtime APIs, and the mechanism and business value of the Universal Windows Platform.