출처 : Qt Wiki
리액트로 파이썬 실행하기
리액트를 쓰기 위해서는 이전 글에서 언급했듯이 많은 비효율이 있었다.
당연히 이전 글과 같은 방식으로는 절대!! 개발을 해서는 안된다.
결국 python으로 ui를 만들기로 했다.
파이썬 GUI 프로그래밍 프레임워크에는 PyQt를 다들 많이 활용하는 것 같았다.
PyQt는 Qt를 파이썬에서 활용 가능하도록 한 것이다.
이전까지는 pyqt자체가 하나의 프레임워크인 줄 알았었다.
그럼 또 qt란 무엇일까
qt란 C++로 돌아가는 크로스플랫폼프레임워크다.
QML
(qt Modeling Language)라는 자체 언어도 가지고 있다.
PyQt
는 qt로 만든 레이아웃에 파이썬 코드를 연결하여 GUI를 제작할 수 있게 해주는 프레임워크이다.
다만 PyQt
는 GPL라이선스를 가지고 있다. 상업적 배포 프로그램은 모든 소스코드를 공개할 의무가 있다.
반면 PySide
의 경우 PyQt
와 거의 동일하지만 LGPL 라이선스로 의무공개는 없다.
따라서 PySide로 결정을 했다.
알아봤을 때는 크게 세가지 방식이 있었다.
1. 코드 기반 방식
2. QML 기반 방식
3. 디자이너 기반 방식
여기서 나는 모든 방식으로 간단히 화면을 구현해봤다.
나는 아래의 이유들로 qt디자이너 방식
을 선택했다.
우선 안드 개발과 익숙해져 있어 코드 변경이 화면에 바로 변경이 안되는 것이 너무 불편했다.
그리고 pyqt & pyside 유튜브 레퍼런스의 거의 90%? 정도는 디자이너를 기반으로 진행한다.
사실 qml방식이 선언형 UI라 마음에 들었었지만 다음 이유가 너무 걸렸다.
현재 프로젝트는 산업경영공학과 연구실에서 진행하고 있다. 나는 용병느낌으로 잠시 동안 들어간 것이다. 이후에는 다른 팀원중 누군가가 수정을 해야할 수도 있다.
따라서 추후 큰 학습곡선 없이 수정하기에 용이한 디자이너 방식을 선택했다.
단점인 .ui 에서 파이썬 코드로의 변환은 플러그인이 해결을 해준다.
아래 Baram 개발자분의 영상으로 도움을 얻었다.
Baram 유튜브 - Vscode & qt desinger 설정
Vscode를 통해 .ui파일을 생성 후 편집, 저장을 하면 바로 .ui에서 파이썬 코드로 변환을 해준다. 따라서 큰 불편함 없이 개발이 가능하다.
또한 이제는 기존 알고리즘 코드를 그대로 갖다 사용하면 된다.
리액트를 공부한 것이 아깝기는 하지만 또 항상 앱/웹 개발만 하다가 pyside를 공부해보는 좋은 기회를 가지게 되었으니 괜찮다.
pyside도 생각보다는 레퍼런스가 적어 나중을 위해 기록을 잘해가며 개발을 하려한다.
매번 사이드 느낌의 프로젝트를 하다가 외주를 맡게 되니 더욱 책임감을 갖고 해야겠다...!..