기존에 있던 또다른 신기한(......) 기능인 Qt WebGL Streaming Plugin하고는 다른데, WebGL Streaming Plugin은 프로그램이 서버에서 실행되면서 웹브라우저에서는 GUI 화면만 보여주는 형태인 반면 Qt for WebAssembly는 프로그램을 웹브라우저가 다운로드받아 브라우저 내 샌드박스에서 실행시키는 차이가 있습니다. 프로그램이 클라이언트에서 실행되기 때문에 서버 부하가 줄어들 뿐 아니라, WebGL Streaming Plugin마냥 GUI를 한번에 한 사람밖에 못쓰는(......) 문제도 없습니다.
이 기능을 보고나서 제가 느낀건 뭐랄까...... 일단 이것들이 인간이 맞나 싶더군요. 도대체 어디의 외계인을 고문하고 다니는 건지 모르겠습니다. 그리고 그 뒤에는 환희가 몰려왔습니다.
이제 C++로 개발한 뒤에 웹브라우저에서 실행시킬 수 있어요! Qt 개발자 여러분, GUI의 대세가 web이라 울며 겨자먹기로 Angular나 React나 Vue.js같은걸 억지로 학습할 필요가 없습니다! 이제 Qt로 개발하고 웹브라우저에서 실행시키시면 됩니다!
......그런데 그렇게 부푼 가슴이 쪼그라드는데는 몇시간도 안 걸리더군요. 이거 단점들이 꽤 있습니다.
1. WebGL이 지원 안되면 못씀
저같은 경우는 특성상 서버에서 웹브라우저를 돌려야 되는 환경도 고려해야 하는데, 이 경우 서버 하드웨어에서 OpenGL 2.0이 지원되지 않아 화면이 안 나오는(......) 문제가 발생할 수 있습니다. 멀리 갈 것 없이 HP DL시리즈 서버의 경우 최소한 7세대까지는 매트록스 그래픽 칩셋을 사용했습니다(8세대 이후로는 안써봐서 모르겠습니다). OpenGL 지원따위...... 저 하늘 위의 별같은 거죠.
2. 한글 지원 문제(아마 CJK 환경이 다 문제일 것 같습니다만......)
WebAssembly 샌드박스 환경의 특성인지는 모르겠지만, Qt for WebAssembly는 시스템 폰트에 직접 접근할 수 있는 권한이 없답니다. 이걸 해결하려면 별도 폰트를 프로그램에 qrc 등의 형태로 내장시켜야 한다고 하네요.
그 외에 위키에 적혀있는 QMAKE_WASM_TOTAL_MEMORY 옵션이 실제로는 적용이 되지 않아서 Makefile을 수동으로 고쳐야 한다던가 하는 문제가 더 있긴 합니다만 이건 뭐 최초 지원이니만큼 그냥 눈감아줄 수 있다고 치고......
하여간 그렇습니다. 웹브라우저 환경을 최대한 활용하려면 당분간은 QML과 구조가 대충 비슷하다고 알려진 Vue.js를 좀 더 공부하는게 더 나을 것 같습니다. -_-;
No comments:
Post a Comment