개발공부/WPF

윈도우 프로그램 개발에 WPF를 사용하는 이유

개발자 찐빵이 2021. 10. 24. 23:26
728x90
반응형

WPF
Window 기반 데스크톱 클라이언트 애플리케이션을 만드는 UI 프레임워크

MS는 왜 WPF를 만들었을까?

마이크로소프트 사는 GDI+와 USER 시스템의 한계를 벗어나는 동시에 생산성이 뛰어난 GUI 기술을 제공하려고 했다.
M사의 대표적인 GUI로 WinForms이 있지만, 왜 WPF를 출시했을까?

WinForms vs WPF

WinForms WPF
오래되어서 검증된 기술이 많다. (WPF도 어느정도 오래되어서 기술이 쌓였다.) 유연한 프로그램이 가능해서 컨트롤 제작이 쉽다.
버튼, 라벨 등이 모두 Window 객체이다. Window, Web 기반 프로그램을 동시에 사용 가능하다.
배우기 쉽다. MVVM 패턴을 사용한다.
무료로 얻을 수 있는 외부 컨트롤이 많다. 데이터와 레이아웃을 구분해서 바인딩 할 수 있다.
Windows 표준 컨트롤에 의존한다. Windows 표준 컨트롤에 의존하지 않는다.
  XAML을 사용하여 디자이너와 프로그래머의 업무를 분리할 수 있다.
  하드웨어 가속으로 속도가 빠르다.

예시를 들어 둘의 차이를 알아보자.

  • 이미지 버튼을 만든다고 가정해보자.
  • WinForms : 이미지 버튼을 기본으로 제공하지 않아 직접 그리거나 타사 컨트롤을 이용해야 한다.
  • WPF : 버튼 컨트롤 내부에 이미지 컨트롤을 포함할 수 있다.
    이미지뿐만 아니라 다른 컨트롤도 포함할 수 있다.

이처럼 WPF는 컨트롤을 제작하거나 구입하지 않고 Winforms보다 유연하게 작업할 수 있다.
즉, 더 난이도가 높고 기술적으로 어려운 문제를 개발하기 위해 WPF를 제공하게 되었다고 볼 수 있다.

WPF의 자세한 특징

광범위한 통합성

  • 2D, 3D, 비디오, 음성인식 등 개별 기술이 프로그램 안에서 잘 작동하도록 긴밀한 통합성을 제공한다.

해상도 독립성

  • WPF는 벡터 그래픽 기반이기 때문에 화면 크기에 상관없이 사용자 인터페이스가 상황에 맞춰 해상도 변경이 가능하다.

하드웨어 가속 기능

  • WPF는 다이렉트3D의 기반이라 그래픽과 텍스트는 3차원의 삼각형, 텍스처 및 다른 다이렉트3D 객체로 전환되어서 하드웨어에 의해 렌더링 된다.
  • 따라서 그래픽을 부드럽게 표현할 뿐만 아니라 그래픽 작업에 특화된 GPU로 작업 로드가 분산된다.

선언형 프로그래밍

프로그램이 어떤 방법(HOW)으로 해야 하는지를 나타내기보다, 무엇(WHAT)과 같은지를 설명하는 경우
즉, HOW에 대한 부분을 추상화하고 WHAT에 집중하는 것을 선언적 프로그래밍이라고 한다. 추가 설명과 예제
  • WPF는 문서 서식, 3D 모델의 표현을 위해 선언형 프로그래밍 언어인 XAML을 사용한다.

다양한 제작방식과 커스터마이징

  • 외형을 쉽게 바꿀 수 있다.

쉬운 배포

  • Windows Installer나 ClickOnce를 이용한 배포 방식을 지원한다.

참고자료

애덤 네이선의 WPF 언리쉬드
WPF란?

반응형