본문 바로가기

Python/Others

ChatGPT로 Python GUI 라이브러리 종류 알아보기 (feat. Web Browsing)

반응형

ChatGPT로 Python GUI 라이브러리 종류 알아보기 (feat. Web Browsing)

이번 포스트에서는 ChatGPT의 Web Browsing 기능을 활용해서 Python GUI 라이브러리 종류에 대해서 알아보려 한다.
오늘 회사에서 업무를 하다가 새로운 프로그램을 하나 만들어 보면 좋겠다 싶었는데, 이건 GUI 라이브러리를 사용하는 것이 좋을 것 같다고 생각했다.
필자의 경우 예전에 Python tkinter로 개인 작업을 몇 번 한적 있었는데 문득 tkinter 말고 더 좋은 라이브러리는 없을지 궁금했다.
그래서 ChatGPT의 Web Browsing을 활용해서 현재 사용되고 지고 있는 GUI 라이브러리에 대해서 한번 알아보았고 그 내용을 정리해 보았다.


GUI (Graphical User Interface)
그래픽 사용자 인터페이스(Graphical User Interface, GUI)사용자가 소프트웨어나 하드웨어와 상호 작용할 수 있게 하는 시각적인 방법을 말한다.
사용자가 정보를 보고 이해하며 명령을 내릴 수 있게 텍스트, 아이콘, 그래픽과 같은 시각적 요소들을 사용한다.

GUI는 보통 마우스, 키보드, 터치스크린 등을 통해 사용자의 명령을 받아들인다.
이러한 방식은 컴퓨터 초기의 커맨드 라인 인터페이스(Command Line Interface, CLI)와 대조되는 개념이다.
CLI에서는 사용자가 텍스트 기반 명령어를 직접 입력해야 했다.

GUI의 가장 큰 장점은 직관적이고 사용하기 쉽다는 것이다.
사용자가 프로그래밍이나 특별한 기술을 배우지 않아도 소프트웨어를 사용하거나 기기를 제어할 수 있다.
이는 컴퓨터와 디지털 기술의 대중화에 많은 기여를 했다.

일반적으로, 윈도우, 아이콘, 폴더, 포인터(마우스 커서) 등의 요소를 활용하여 사용자가 쉽게 인식하고 사용할 수 있도록 디자인되어 있다.
예를 들어, 파일을 삭제하고 싶다면, 사용자는 그 파일 아이콘을 클릭하고, '삭제' 버튼을 클릭하거나 휴지통 아이콘으로 드래그 앤 드롭하는 등의 동작으로 쉽게 이 작업을 수행할 수 있다.


Tkinter
Tkinter는 사용하기 아주 간단한 라이브러리로 알려져 있다.
Python에 기본적으로 설치되어 있으므로 별도의 설치 작업이 필요하지 않다.
이러한 특성으로 인해 Tkinter는 초보자와 중급자에게 좋은 선택이지만, 대규모 프로젝트를 수행하기에는 부적합할 수 있다.
Tk GUI 도구 키트에 대한 파이썬 인터페이스를 제공하며, 간단한 대화형 애플리케이션부터 복잡한 애플리케이션까지 다양한 유형의 GUI를 만들 수 있다.
Tkinter는 많은 위젯(버튼, 레이블, 텍스트 박스 등)을 제공하며, 이들을 조합하여 사용자 정의 인터페이스를 만들 수 있다.
필자의 경우 tkinter 말고 Bootstrap에서 영감을 받아 개발된 ttkbootstrap도 사용해봤는데 상당히 괜찮았다.


PyQt5
PyQt5는 가장 인기 있는 Python GUI 프레임워크 중 하나로,
여러 플랫폼에서 다양한 애플리케이션을 생성하는 데 사용되는 Qt 프레임워크를 중심으로 구축되어있다.
PyQt5는 완전히 크로스 플랫폼이며, 개발자가 Mac, Windows, Linux, iOS, Android 등 다양한 플랫폼에서 애플리케이션을 구축할 수 있게 해준다.
PyQt5는 커스텀 위젯, 향상된 그래픽 지원, SQL 데이터베이스, 네트워킹 및 XML 처리와 같은 고급 기능을 지원하므로, 복잡하고 성능이 중요한 애플리케이션 개발에 주로 사용된다.
학습 곡선이 다소 가파르지만, 강력한 기능과 유연성을 제공한다.
필자의 경우 이번에 한번 공부해볼까 싶다.


PySimpleGUI
PySimpleGUI는 Python 초보자가 GUI 개발을 시작하는 것을 더 쉽게 만들기 위해 개발되었다.
다른 프레임워크들은 더 복잡한 작업을 필요로 하지만, PySimpleGUI를 사용하면 고급 복잡성에 대해 걱정하지 않고 즉시 시작할 수 있다.
복잡한 UI를 필요로하는 애플리케이션에는 한계가 있을 수 있지만, 간단하게 GUI를 만들어야 하는 상황에서는 매우 유용한 도구이다.


Kivy
Kivy는 새로운 사용자 인터페이스를 생성하도록 설계된 OpenGL ES 2 가속 프레임워크이다.
Kivy는 Windows, Mac, Linux, Android, iOS 등 다양한 플랫폼을 지원하며, 툴킷에는 20개 이상의 위젯이 포함되어 있다.
특히 멀티터치 애플리케이션에 초점을 맞추고 있다.
Kivy를 이용하면 iOS, Android 등의 다양한 플랫폼에서 동작하는 애플리케이션을 한 번의 개발로 만들 수 있어, 모바일 기반의 크로스 플랫폼 애플리케이션을 개발하고자 하는 경우 매우 유용하다.
다만, 고급 기능과 세부 컨트롤이 필요한 경우에는 상대적으로 부적합할 수 있다.
홈페이지가 다른 GUI 홈페이지, 공식 문서에 비해 가장 깔끔하고 최근에 개발된 것처럼 생겼다.


wxPython
wxPython은 Python 개발자가 추가적인 오버헤드 없이 네이티브 사용자 인터페이스를 생성할 수 있게 해주는 라이브러리이다.
다른 라이브러리와 프레임워크처럼 wxPython은 Mac OS, Windows, Linux, Unix 기반 시스템 등 다양한 플랫폼에서 작동한다.
깔끔하고 네이티브 느낌의 GUI를 만들 수 있으며, 다양한 위젯과 함께 독특하게 매핑된 이벤트 시스템이 있다.


Libavg
Libavg 라이브러리는 현대의 터치 기반 장치에 대한 사용자 인터페이스를 개발하는 데 가장 좋은 라이브러리 중 하나로 널리 인식되고 있으며, OpenGL과 GPU 셰이더를 통해 하드웨어 가속을 사용한다
이 라이브러리는 간단한 게임, 시각화, 인터랙티브 설치 등 다양한 멀티미디어 애플리케이션 제작을 지원한다.


PySide2
PySide2는 Qt 프레임워크의 또 다른 바인딩을 제공하는 Python 라이브러리이다.
PySide2는 비즈니스 애플리케이션 개발에 가장 적합하며, Qt의 모든 주요 기능에 대한 완전한 바인딩을 제공한다.
LGPL 라이센스로 배포되어 상업적으로 사용하기 더 용이하다.
PyQt와 비교했을 때 기능상 큰 차이는 없지만, 라이선스 관련하여 선택할 수 있는 옵션이 다르다고 한다.


PyGTK
PyGTK는 GTK 라이브러리의 Python 바인딩을 제공하는 라이브러리이다.
PyGTK를 사용하면 사용자가 GTK 위젯을 Python에서 직접 사용할 수 있게 되어, 아름다운 GUI 애플리케이션을 생성할 수 있다.
Linux 환경에서 잘 동작하며, GNOME 데스크톱 환경과 잘 통합된다고 한다.
복잡한 GUI 애플리케이션을 만들기에 적합하며, 신뢰성과 안정성이 검증되어 있는 걸로 알려져 있다.


pyFLTK
FLTK는 Fast Light Toolkit의 약자로, GUI 프로그래밍을 위한 크로스 플랫폼 C++ 라이브러리이다.
Python 바인딩이 제공되며, 사용이 간단하고 고성능이라는 장점이 있다.
가벼운 라이브러리로, 작고 빠른 애플리케이션 개발에 적합하다고 하며, C++로 작성된 원래의 FLTK와 동일한 라이센스로 사용할 수 있다.


Toga
Toga는 Python의 네이티브, OS 네이티브 사용자 인터페이스 툴킷이다.
iOS, Android, Windows, MacOS, Linux, Web 등 다양한 플랫폼에서 실행되는 애플리케이션을 개발할 수 있다.
Toga는 플랫폼별 GUI 위젯 집합을 제공한다고 한다.
이로 인해 각 플랫폼의 룩앤필을 유지하면서 코드를 재사용할 수 있다.
즉, macOS에서는 macOS 느낌의 버튼이 표시되고, Windows에서는 Windows 스타일의 버튼이 표시되게 지원한다고 한다.
ChatGPT의 Web Browsing을 통해 Python GUI 라이브러리 종류에 대해 간단하게 알아보았다.
tkinter와 PyQT5는 알고 있었는데, 이렇게 많은 종류가 있는 줄은 몰랐다.
우선 필자의 경우 시간 날 때 PyQT5에 대해 공부해 볼 생각인데, 다른 라이브러리도 기회가 된다면 한번 사용해 봐야겠다.
개인적으로 PyQT5 다음으로 Kivy를 해볼까 싶다.
반응형

loading