본문 바로가기

프로그래밍

Windows 앱을 만드는 여러가지 방법들 (Winform, WPF, UWP, PyQt5, Electron ...)


여는 글


Windows OS에서 동작하는 앱 (이하 응용프로그램)을 개발하는 방법들은 굉장히 많습니다.

 

가장 널리 보급된 OS 환경에서 동작하는 어플리케이션을 개발하는 것이기 때문에

프로그래밍 언어 별로 윈도우 앱을 개발하기 위한 목적의 다양한 도구들이 만들어져 있습니다.

 

이러한 도구들은 앱 개발을 지원하는 영역에 따라 라이브러리, 모듈, 패키지, 플랫폼 등으로 불려 집니다.

 

실제로 윈도우 어플리케이션을 개발하는데 필요한 사항은 무엇이며, 각각의 특징에 대해 알아보려 합니다.

 


윈도우 앱 개발 방법 1 : PyQt5 ( Python )


첫번째로 이야기하는 개발 방법은 PyQt5 패키지입니다.

 

PyQt5는 기존에 C++ 언어 환경에서 개발하기 위해 개발된 Qt5 라이브러리를 최근 급속 성장하는 Python언어에서도 사용할 수 있도록 포팅된 패키지입니다.

(Python에서는 라이브러리를 모듈 또는 패키지라고 부릅니다.)

 

Python의 PyQt5나 C++의 Qt5 라이브러리의 경우, 대부분 소스로 윈도우 앱을 개발하게 되며, 디자인은 보조 개발 도구인 QtDesigner를 활용하여 원하는 형태의 화면을 소스로 포팅하여 더 쉽게 화면을 구성할 수 있게 합니다.

 

<Qt Designer>

Python에서 윈도우 응용프로그램을 개발하게 되면 굉장한 장점을 가질 수 있습니다.

바로, PyQt 모듈은 윈도우 OS 뿐만아니라, MacOS, Linux 등 다른 OS 또한 지원하는 크로스 플랫폼 형태의 개발을 지원한다는 것입니다. 이 말은, 하나의 프로젝트를 개발함에 있어, 몇몇 특별한 상황을 제외한다면 프로젝트를 진행하면서 작성되는 대부분의 소스들이 한번 작성으로 여러 OS 환경에 맞추어 개발이 가능하다는 것입니다.

 

PyQt5를 사용하기위해 필요한 환경으로, 우선 python3 를 설치합니다.

다음으로, 조금 더 편한 개발환경에서 작업하기 위해 IDE 툴인 PyCharm, Visual Studio 등을 선택하여 더 편하게 개발이 가능합니다.

 

다음 단계로, PyQt5 패키지를 설치해야합니다. 파이썬에서 사용하는 대부분의 유명 패키지들은 패키지 매니저인 PIP 시스템을 활용합니다. PIP 명령어를 사용하여 쉽게 pyqt5 패키지를 설치할 수 있습니다.

 

설치방법 : 콘솔창에서 파이썬 프로젝트 디렉토리로 이동한 다음, 명령어 입력.

pip3 install pyqt5

 

최근, 데이터 분석이나 머신러닝 분야에서 python이 굉장히 핫하기 때문에, python 환경에서 개발한 학습모델이나 결과물을 위한 데모 버전 앱을 개발한다면, PyQt5를 이용해 개발하는것이 최고의 선택이라고 생각합니다.

 


윈도우 앱 개발 방법 2 : Winform ( C# )


Winform하면 떠오르는 말이 있다... 정통파 아이가~

맞습니다. Winform은 윈도우 OS를 개발하는데 있어 정통을 계승하는 느낌을 풍깁니다.

Winform은 .Net Framework 에서 제공하는 API의 일부분입니다. (Win32 API랑 다릅니다.)

 

윈도우 앱을 개발하는데 MFC와 같은 라이브러리를 사용하는 것이 편할 수 있지만, 그보다 윈도우의 표준 인터페이스를 엄격하게 지키며 개발해야하는 경우, Winform을 사용합니다.

 

Winform은 보통 개발하는 앱의 기능이 세부기능이 많이 들어가는 복잡한 UI를 띄고 있을 때 많이 사용합니다. (메모장, 계산기 등 정통 윈도우 앱과 같은 형태에 맞춰진 앱)

 

또한, 기업의 ERP 시스템은 오래전에 만들어져 계속해서 유지보수가 되어온 경우가 많아, 지금도 Winform으로 개발된 어플리케이션을 많이 사용하므로, 윈도우 응용프로그램을 개발할 줄 안다 하는 개발자들은 어느정도 다룰 수 있는 API이기도 합니다.

 

Winform은 Visual Studio에 내장된 디자이너 툴을 활용해 Form을 만들어가는 형태로 개발이 이루어집니다.

개발 과정에서 form.cs 파일과 form.designer.cs 파일이 같이 쌍으로 만들어지게 되는데, 직관적이며 쉬운 개발이 장점입니다. 또한, C# 언어를 사용하기때문에 Java와 비슷하며, 마이크로소프트에서 전폭적인 지원과 다양한 예제, 꼼꼼한 문서화가 이루어져 있어 접근성이 좋다는 장점이 있습니다.

 

다만, 표준 윈도우 어플리케이션 인터페이스를 벗어나는 형태의 UI 개발이 필요한 경우나, 세련된 형태의 애니메이션을 추가하는것이 어렵고, 전체적인 개발 과정이 화면에 대응되는 코드를 개발하는 형태이기 때문에, 로직 분리나 코드 재사용이 어려워 협업에 있어 단위 테스팅 등이 어렵습니다.

 

Visual Studio에서의 Winform 개발 환경

전체적인 개발 루틴은 다음과 같이 매우 간단합니다.

 

1. form.디자인.cs 파일에서 도구 상자를 통해 원하는 form들을 검색하고, 배치합니다.

2. 속성에서 배치된 form에 대한 각종 속성값을 설정하고, 이벤트 함수 등의 이름을 정의합니다.

3. form.cs 파일에서 각 form에 연결된 함수들 (이벤트 등) 내에서 액션으로 주어질 코드를 작성합니다.

 

요새 누가 Winform 쓰냐, 이런 생각을 하실지도 모르지만, 아래 영상은 Winform api를 활용하여

현대적인 윈도우 어플리케이션을 개발하는 영상입니다.

프로젝트의 목적이나 상황에 따라 충분히 활용 가능한 개발 방법이라고 생각합니다.

 

영상 링크 : www.youtube.com/watch?v=JP5rgXO_5Sk