{{위키데이터 속성 추적}}
{{소프트웨어 정보
| title = 윈도우 앱 SDK
| screenshot = WinuiExample.svg
| other_names = 프로젝트 리유니언
| developer = [[마이크로소프트]]
| released = 2021년 3월 29일
| discontinued = 
| latest release version = {{wikidata|property|preferred|references|edit|Q108871754|P348|P548=Q2804309}}
| latest release date = {{wikidata|qualifier|preferred|single|Q108871754|P348|P548=Q2804309|P577}}
| latest preview version = {{wikidata|property|preferred|references|edit|Q108871754|P348|P548=Q51930650}}
| latest preview date = {{wikidata|qualifier|preferred|single|Q108871754|P348|P548=Q51930650|P577}}
| programming language = [[C++]]
| operating system = [[윈도우 11]], [[윈도우 10]] 버전 1809 이상
| platform = [[x86-64]], [[ARM64]], [[IA-32]]
| genre = [[API]]
| license = [[MIT 허가서]]
| website = {{공식 URL}}
}}

'''윈도우 앱 SDK'''({{Lang|en|Windows App SDK}}, 이전의 '''프로젝트 리유니언'''({{Lang|en|Project Reunion}}))<ref>{{웹 인용|url=https://visualstudiomagazine.com/articles/2021/06/24/windows-11.aspx|제목=Windows 11 Development: Open Ecosystem Store, Project Reunion Rebrand and More|성=Ramel|이름=David|날짜=2021-06-24|웹사이트=Visual Studio Magazine|확인날짜=2021-10-11}}</ref>는 윈도우 11 및 윈도우 10 버전 1809 이상 용 [[윈도우 API|데스크톱 애플리케이션]]을 개발하는 데 사용할 수 있는 통합 API 및 구성 요소 세트를 제공하는 [[마이크로소프트]]의 [[소프트웨어 개발 키트]] (SDK)이다. 이 프로젝트의 목적은 이전에 UWP 앱 모델에 긴밀하게 결합되었던 기능의 분리된 구현을 제공하는 것이다.<ref name=":0">{{인용|title=Windows App SDK - Calling all Windows developers!|date=2023-05-25|url=https://github.com/microsoft/WindowsAppSDK/blob/8316e009b73cfd6c91829bdd1f1c99f4af5b2f6e/docs/faq.md|access-date=2023-05-26|publisher=Microsoft}}</ref> 윈도우 앱 SDK는 네이티브 [[윈도우 API|Win32]] ([[USER32]]/[[그래픽 장치 인터페이스|GDI32]])와 [[닷넷|.NET]] ([[윈도우 프레젠테이션 파운데이션|WPF]]/[[윈도우 폼|WinForms]]) 개발자 모두 최신 기능으로 앱을 향상시킬 수 있는 경로를 제공한다.<ref name=":0" />

따라서 윈도우 앱 SDK는 [[마이크로소프트 윈도우 SDK|윈도우 SDK]]를 대체할 의도가 없다.<ref name=":0" /> 생성된 [[WinMD]] 메타데이터를 통해 주로 [[윈도우 런타임|Windows 런타임]] (WinRT)을 사용하는 공통 [[API]]를 노출함으로써 한때 두 앱 모델 중 하나를 특징지었던 점이 대부분 제거되었다. 버전 1.4용 NuGet 패키지는 약 4개월 간의 개발 끝에 2023년 8월에 출시되었다.<ref>{{웹 인용|url=https://nuget.org/packages/Microsoft.WindowsAppSDK/|제목=Microsoft.WindowsAppSDK 1.4.230822000|웹사이트=nuget.org|언어=en|확인날짜=2023-09-11}}</ref>

== 기능 및 구성 요소 ==
마이크로소프트는 여러 가지 새로운 기능을 개발했지만 아래 나열된 기능 중 일부는 기존 API에서 제공하는 기능을 추상화한 것이다.<ref name=":0" />

=== WinUI 3 ===
분리된 UI 스택<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/winui/|제목=Windows UI Library (WinUI) - Windows apps|성=Karl-Bridge-Microsoft|날짜=2023-03-13|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>에 대한 대부분의 투자는<ref>{{웹 인용|url=https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.3.0|제목=Release v1.3.0 · microsoft/WindowsAppSDK|웹사이트=GitHub|언어=en|확인날짜=2023-05-26}}</ref> 버그 수정, 디버깅 환경 개선, CoreWindow에서 전환하여 가능한 창 관리 기능 단순화 등으로 이용되었다. '''AppWindow'''로 알려진 USER32/GDI32 프리미티브를 추상화하는 API는<ref>{{웹 인용|url=https://github.com/microsoft/WindowsAppSDK/discussions/370|제목=Discussion #370: Announcement: Proposed approach for windowing in Project Reunion|웹사이트=[[GitHub]]|확인날짜=2022-04-19}}</ref> 통합된 창 기능 세트를 노출하고 사용자 정의 윈도우 컨트롤을 지원할 수 있도록 하기 위해 도입되었다.

=== WebView2 ===
UWP WebView 컨트롤의 대체품이 일찍 발표되었다.<ref>{{웹 인용|url=https://blogs.windows.com/msedgedev/2020/10/19/edge-webview2-general-availability/|제목=Announcing Microsoft Edge WebView2 General Availability|성=Blog|이름=Microsoft Edge|성2=Team|이름2=Microsoft Edge|날짜=2020-10-19|웹사이트=Microsoft Edge Blog|언어=en-US|확인날짜=2023-05-26}}</ref> 이는 [[EdgeHTML|지원되지 않는 브라우저 엔진을]] 기반으로 했기 때문이다.<ref>{{웹 인용|url=https://techcommunity.microsoft.com/t5/microsoft-365-blog/new-microsoft-edge-to-replace-microsoft-edge-legacy-with-april-s/ba-p/2114224|제목=New Microsoft Edge to replace Microsoft Edge Legacy with April’s Windows 10 Update Tuesday release|성=|날짜=2021-02-10|웹사이트=TECHCOMMUNITY.MICROSOFT.COM|언어=en|확인날짜=2023-05-26}}</ref> '''WebView2'''라는 새로운 크로미움 기반 컨트롤이 개발되었으며 WinUI 및 기타 지원되는 앱 유형에서 사용할 수 있다.

=== 패키징 ===
'''MSIX'''는 윈도우 앱 SDK에 포함되어 있으며 권장되는 애플리케이션 패키징 형식으로 간주되지만,<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/msix/overview|제목=What is MSIX? - MSIX|성=dianmsft|날짜=2021-12-30|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref><ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/framework-packages/framework-packages-overview|제목=MSIX framework packages and dynamic dependencies - Windows apps|성=stevewhims|날짜=2023-03-03|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref> 디자인 목표는 패키징되지 않은 앱을 허용하는 것이었다. 이러한 앱은 자체 포함 또는 프레임워크 종속형으로 배포될 수 있다. 패키지된 앱과 패키지되지 않은 앱 모두에 대해 앱 종속성의 동적 로드 지원이 포함된다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/use-windows-app-sdk-run-time|제목=Use the Windows App SDK runtime for apps packaged with external location or unpackaged - Windows apps|성=stevewhims|날짜=2023-04-19|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>

=== 그래픽 ===
'''DWriteCore'''는 고품질 텍스트 렌더링을 위한 분리되고 장치 독립적인 솔루션으로 개발되고 있다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/dwritecore|제목=DWriteCore (Windows App SDK) - Windows apps|성=stevewhims|날짜=2022-02-24|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref> '''Win2D'''는 WinUI 3 앱에서도 사용할 수 있게 되었다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/develop/win2d/|제목=Win2D - Windows apps|성=stevewhims|날짜=2023-05-25|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>

=== 리소스 관리 ===
'''MRT Core'''를 사용 하면 현지화 등의 목적을 위한 앱 [[리소스 (윈도우)|리소스]]를 관리할 수 있다. UWP에서 리소스 관리 시스템이 분리된 버전이다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/mrtcore/mrtcore-overview|제목=Manage resources MRT Core (Windows App SDK) - Windows apps|성=hickeys|날짜=2023-03-13|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>

=== 앱 수명 주기 ===
초기 출시 이후 안정적인 릴리스가 제공되면서 윈도우 앱 SDK는 이전에 개발자가 Win32 애플리케이션에서 구현하는 데 상당한 노력이 필요했던 여러 앱 수명 주기 기능을 지원한다. 이러한 기능에는 전원 관리 알림, 리치 활성화, 다중 인스턴스 및 프로그래밍 방식 앱 다시 시작이 포함된다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/develop/app-lifecycle-and-system-services|제목=App lifecycle and system services - Windows apps|성=hickeys|날짜=2023-01-31|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>

=== 알림 ===
[[푸시 알림]]에 대한 지원은 처음에는 제한된 액세스인 미리 보기 기능으로 구현되었다.<ref name=":1">{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/notifications/push-notifications/|제목=Push notifications overview - Windows apps|성=hickeys|날짜=2023-03-16|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref> 그러나 이후 API가 안정화되어 앱 사용자에게 푸시 알림을 전달할 수 있다. 공식 문서에는 마이크로소프트의 재량에 따라 이 기능에 대한 액세스가 취소될 수 있다고 명시되어 있다.<ref name=":1" /><ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/toast-ux-guidance|제목=Notifications design basics - Windows apps|성=hickeys|날짜=2022-06-03|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref> 또한 이제 앱은 XML 페이로드를 생성할 필요 없이 로컬 앱 알림을 쉽게 표시할 수 있다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/notifications/app-notifications/|제목=App notifications overview - Windows apps|성=vaheeshta|날짜=2022-07-12|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>

=== 위젯 ===
윈도우 11의 윈도우 위젯 시스템과의 타사 통합이 안정 릴리스 채널의 일부로 포함되었다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/develop/widgets/widget-providers|제목=Widget providers - Windows apps|성=drewbatgit|날짜=2023-03-09|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref> 개발자는 적응형 카드<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/design/widgets/widgets-create-a-template|제목=Create a widget template with the Adaptive Cards Designer - Windows apps|성=drewbatgit|날짜=2022-11-10|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>를 사용하여 앱에 대한 맞춤형 위젯을 디자인하고 위젯 보드에 표시할 수 있다.<ref>{{웹 인용|url=https://learn.microsoft.com/en-us/windows/apps/design/widgets/|제목=Windows Widgets - Windows apps|성=drewbatgit|날짜=2023-03-09|웹사이트=learn.microsoft.com|언어=en-us|확인날짜=2023-05-26}}</ref>

== 같이 보기 ==
* [[DWriteCore]]
* [[우노 플랫폼]]
* [[윈도우 드라이버 키트]] (WDK)

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* {{깃허브|microsoft/WindowsAppSDK}}
* {{깃허브|microsoft/WindowsAppSDK-Samples}}

{{마이크로소프트 개발 도구}}
{{마이크로소프트 자유-오픈 소스 소프트웨어}}

[[분류:MIT 라이선스 소프트웨어]]
[[분류:윈도우 전용 자유 소프트웨어]]
[[분류:윈도우 API]]
[[분류:소프트웨어 개발 키트]]
[[분류:마이크로소프트의 자유 소프트웨어]]
[[분류:마이크로소프트 개발 도구]]
[[분류:자유-오픈 소스 소프트웨어]]