Windows 앱을 작성하는 방법 소개

완료됨

어떤 내용을 다루나요?

이 모듈에서는 세 가지 Windows 기술을 사용하여 서로 다른 방식으로 동일한 앱을 작성하는 방법을 알아보겠습니다. C#을 UWP(유니버설 Windows 플랫폼), WPF(Windows Presentation Foundation), Windows Forms 등의 세 가지 개발 프레임워크와 결합하여 사용합니다.

그런 다음, WTS(Windows Template Studio)를 통해 얼마나 빨리 효율적으로 핵심적인 최신 앱을 생성할 수 있을지 소개합니다.

세 가지 플랫폼 이야기

지난 수년간 다양한 기술 및 요구 사항에 따라 Windows에서 실행되는 애플리케이션을 작성하는 다양한 방법이 개발되었습니다. 목표는 언제나 같았습니다. 즉, 개발자가 사용자 인터페이스를 만들고 필수 상용구 코드를 생성하도록 도와 유용한 앱을 구현하는 고유 기능을 추가하도록 허용하는 것이었습니다. 누구도 텍스트를 픽셀 단위로 표시하거나 메뉴 또는 창을 구성하는 도형을 그리는 코드를 작성하고 싶어 하지 않습니다. 개발자는 이미 사용 가능한 이러한 모든 기능(및 기타 ‘추가’ 기능)을 처리하는 일관되고 검증된 안정적인 코드를 사용하고 싶어 합니다.

Microsoft는 이러한 요구 사항을 해결하기 위해 다양한 도구와 라이브러리를 개발했습니다. 이 학습 경로에서 살펴볼 세 가지는 UWP, WPF 및 Windows Forms입니다. 세 가지 모두 기본 애플리케이션을 빌드하는 매우 유사한 접근 방식을 보여 줍니다.

Diagram that shows some of the development platforms available in Visual Studio, such as UWP, WPF, and Windows Forms.

유니버설 Windows 플랫폼

Windows 10에는 Windows를 실행하는 모든 디바이스에 공통 앱 플랫폼을 제공하는 UWP(유니버설 Windows 플랫폼)가 도입되었습니다. UWP 핵심 API는 모든 Windows 디바이스에서 동일합니다. 앱에서 핵심 API만 사용하는 경우 해당 앱은 데스크톱 PC, Xbox, 혼합 현실 헤드셋 또는 어떤 디바이스든 모든 Windows 10 디바이스에서 실행됩니다.

UWP는 Windows를 대상으로 앱을 개발하며 Windows API 및 기능에 자유롭게 액세스하려는 경우에 적합합니다. 또한 UWP는 최신 애플리케이션 플랫폼의 다른 이점을 제공합니다. 따라서 다음과 같은 이점이 있습니다.

  • DPI 및 화면 크기 변경에 맞게 조정하도록 기본 제공되는 XAML(Extensible Application Markup Language) 기반 UI 모델입니다.
  • 사용자가 앱에 디바이스 기능에 대한 액세스 권한을 명시적으로 부여하는 보안 모델입니다.
  • 클린 설치 및 Microsoft Store에 직접 게시할 수 있는 기능을 지원하는 패키징 모델입니다.

Windows Presentation Foundation

WPF(Windows Presentation Foundation)는 데스크톱 클라이언트 애플리케이션을 만드는 UI 프레임워크입니다. WPF 개발 플랫폼은 다음을 포함하여 다양한 애플리케이션 개발 기능 세트를 지원합니다.

  • 애플리케이션 모델
  • 리소스
  • 컨트롤
  • 그래픽
  • Layout
  • 데이터 바인딩
  • 문서
  • 보안

.NET에 있는 Windows 전용 라이브러리의 일부이므로 이미 ASP.NET Core 또는 Windows Forms를 사용하여 .NET으로 애플리케이션을 빌드한 경우 프로그래밍 환경에 친숙합니다. WPF는 XAML을 사용하여 애플리케이션 프로그래밍을 위한 선언적 모델을 제공합니다.

WPF 및 Windows Forms은 C++ 및 Win32 보다 높은 수준의 코딩 생산성을 원하는 경우에 적합합니다. 최신 .NET의 비 UI 부분이 이제 크로스 플랫폼을 지원하므로 일부 .NET 코드 및 라이브러리를 macOS 및 Linux 등 다른 플랫폼과 공유할 수도 있습니다.

Windows Forms

Windows Forms는 일반적인 애플리케이션 작업을 간소화하는 기본 클래스 라이브러리 및 API의 표준 집합인 .NET용 오픈 소스 그래픽 사용자 인터페이스입니다. Visual Studio와 같은 개발 환경을 사용하는 경우 정보를 표시하고 사용자에게 입력을 요청하며 네트워크를 통해 원격 컴퓨터와 통신하는 Windows Forms 스마트 클라이언트 애플리케이션을 만들 수 있습니다. 현재 Windows Forms 플랫폼은 이전 .NET Framework UI 플랫폼을 기반으로 하며 WPF 및 UWP에서 제공하는 일부 기능이 부족합니다.

이러한 세 가지 플랫폼은 이 교육 모듈에서 중점을 두는 주제입니다. 하지만 시작하기 전에 WinUI 및 Win32의 두 가지 다른 옵션을 간략하게 살펴보겠습니다.

WinUI 및 Windows 앱 SDK

WinUI 3Windows 앱 SDK(Windows SDK에서 분리됨)와 함께 제공되는 기본 UI 플랫폼 구성 요소입니다. Windows 앱 SDK는 Windows 10 이상을 대상으로 하고 Microsoft Store에 게시할 수 있는 프로덕션 데스크톱 앱을 만드는 데 사용할 수 있는 통합 API 및 도구 집합을 제공합니다.

참고

현재 WinUI(Windows UI 라이브러리)에는 UWP용 WinUI 2와 Windows 앱 SDK의 WinUI 3 등 두 세대가 있습니다. 둘 다 Windows 10 이상의 프로덕션 준비 앱에서 사용할 수 있지만 각각 다른 개발 목표가 있습니다. WinUI 3과 WinUI 2 비교를 참조하세요.

다음 중에서 하나 이상의 옵션을 언급하지 않고는 Windows 앱 작성에 대해 설명할 수 없습니다. Win32

Win32(Windows API) 및 C++

Win32 API(좀 더 정확하게 Windows API라고 불림)는 애플리케이션이 Windows 기능을 사용할 수 있게 해 줍니다. 이 API를 사용하여 각 버전에 고유한 기능과 성능의 이점을 취하면서 모든 Windows 버전에서 실행되는 애플리케이션을 개발할 수 있습니다. Win32는 최고의 성능 수준이나 효율성을 달성하거나, 고유 OS 기능에 액세스하거나, DirectX 기술을 대상으로 해야 하는 경우 적합한 선택입니다.

이 접근 방식은 메모리 할당 및 성능 지향 CPU 기능(예: SSE 또는 AVX 명령)을 직접 통제함으로써 앱에 대한 최상의 성능을 갖게 합니다. 낮은 수준의 고성능 그래픽 액세스를 지원하는 DirectX 기술을 대상으로 하는 가장 좋은 방법입니다. 비 Windows 플랫폼뿐만 아니라 모든 유형의 Windows 애플리케이션 간 C++ 코드를 공유할 수 있습니다. 예를 들어 C# 및 WPF와 비교해 장단점이 있지만, 기본 기능을 구현하는 데도 상당한 양의 작업이 필요할 수 있습니다.

참고

자세한 내용은 Windows용 앱 작성: 개발 기술 선택을 참조하세요.

작성하는 앱

이 모듈에서 만들려는 앱은 간단합니다. 단추를 선택할 때 일부 텍스트가 표시되고 일부 색이 변경됩니다.

Animation of the Say hello application running with text that repeatedly changes color.

어떠한 보상이 있는 것은 아니지만 개발 플랫폼 간 유사점과 차이점에 대해 알려드립니다.

충분히 이해가 되었다면 Windows Template Studio를 사용해 볼 수 있습니다. WTS를 사용하여 조금 더 인상적으로 보이는 앱을 만듭니다.

Screenshot that shows a composite of three different pages of a Weather application: a map, chart, and settings page.

시작해 볼까요?