- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date 19/06/20 17:16:28수정됨
Name   T.Robin
Subject   Qt 5.13.0: C++로 개발해서 웹브라우저에서 실행하자!
2019년 6월 19일부로 발표된 Qt 5.13.0이 발표되었습니다. Qt 5.13.0의 새로운 기능 중에서 제 눈길을 꽤 끈 신기능이 하나 있었는데요....... Qt for WebAssembly입니다. 그러니까...... Emscripten을 사용해서 Qt를 WebAssembly로 컴파일하는 녀석 되겠습니다. 예. QML이나 Qt Widgets로 만든 프로그램을 그대로 웹브라우저에서 돌릴 수 있게 되었다는 거죠.

기존에 있던 또다른 신기한(......) 기능인 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. 한글이 깨짐
WebAssembly 샌드박스 환경의 특성인지는 모르겠지만, Qt for WebAssembly는 시스템 폰트에 직접 접근할 수 있는 권한이 없답니다. 이걸 해결하려면 별도 폰트를 프로그램에 qrc 등의 형태로 내장시켜야 한다고 하네요.
해봤습니다만, 뭐...... 제가 요령이 없어서 그런지 잘 안 됩니다. 한글 왕창 깨지고요(......).2019.6.21일 업데이트: 폰트를 내장한 뒤 기본 폰트를 바꾸면 출력은 잘 됩니다. 하지만 입력은 여전히 안됩니다. 유일한 방법은 웹브라우저 밖에서 한글을 입력한 뒤 복사하고 그걸 프로그램 내부에서 갖다 붙이는 겁니다. -_-

그 외에 위키에 적혀있는 QMAKE_WASM_TOTAL_MEMORY 옵션이 실제로는 적용이 되지 않아서 Makefile을 수동으로 고쳐야 한다던가 하는 문제가 더 있긴 합니다만 이건 뭐 최초 지원이니만큼 그냥 눈감아줄 수 있다고 치고......

하여간 그렇습니다. 웹브라우저 환경을 최대한 활용하려면 QML과 구조가 대충 비슷하다고 알려진 Vue.js나 좀 더 공부해야 될 것 같습니다. -_-



1


    목록
    번호 제목 이름 날짜 조회 추천
    9679 과학/기술스마트폰이 당신을 지켜보고 있다. 2 샤우리우 19/09/18 6450 1
    9482 과학/기술알아도 쓸모 없고 몰라도 상관 없다 - 왓슨의 주장에 대한 비판 vs. 왓슨에 대한 비난 8 굴러간다 19/07/28 5046 4
    9478 과학/기술알아도 쓸모 없고 몰라도 상관 없다 - 종 (種, species)에 대한 잡설 14 굴러간다 19/07/27 5218 8
    9475 과학/기술[번역] 인종 평등을 위한 과학적 기초 下 4 구밀복검 19/07/27 6558 9
    9474 과학/기술[번역] 인종 평등을 위한 과학적 기초 上 16 구밀복검 19/07/27 6132 9
    9388 과학/기술블록체인의 미래 - 2018 기술영향평가 보고서 2 호라타래 19/07/03 5232 19
    9329 과학/기술 Qt 5.13.0: C++로 개발해서 웹브라우저에서 실행하자! 6 T.Robin 19/06/20 6265 1
    9324 과학/기술과학적 연구의 동기부여는 시대를 어떻게 대변하는가? 25 다시갑시다 19/06/18 5450 36
    9319 과학/기술0.999...=1? 26 주문파괴자 19/06/14 6422 20
    9043 과학/기술화학 전공하면서 들은 위험했던 썰 몇가지 29 Velma Kelly 19/04/05 5581 15
    8932 과학/기술수학적 엄밀함에 대한 잡설 26 주문파괴자 19/03/05 4679 16
    8443 과학/기술정수론의 복잡성, 그리고 우주론 파랑새의나침반 18/10/30 4749 2
    8351 과학/기술[확률론] 당신은 암에 걸리지 않았다 - 의사들도 잘 모르는 사실 12 Sophie 18/10/11 6366 10
    8203 과학/기술파인만이 얘기하는 물리 vs 수학 21 Sophie 18/09/11 12983 1
    7988 과학/기술지구 온난화와 원전. 55 키시야스 18/08/01 6416 16
    7900 과학/기술가짜 논문지 그리고 연구윤리와 국가과제 및 정년보장 18 집에가고파요 18/07/21 4548 0
    7724 과학/기술다수의 출구조사로 대통령의 지지율을 보는게 맞을까? 7 히하홓 18/06/21 4378 0
    7628 과학/기술[진짜 통계의 오류] 설계의 오류 1 히하홓 18/06/06 5038 0
    7536 과학/기술본격(영어)듣기시험 평가 얘니 v 로렐 분석 13 다시갑시다 18/05/18 4231 5
    7512 과학/기술인공위성이 지구를 도는 방법과 추락하는 이유 17 곰곰이 18/05/13 19193 17
    7462 과학/기술[통계의 오류] 흑인이 백인보다 사형 판결을 잘 받는가? (심슨의 역설.) 20 히하홓 18/05/01 8126 3
    7130 과학/기술인공지능 로봇 소피아의 방한 행사 소동 4 맥주만땅(Beer Inside) 18/02/17 5665 0
    7124 과학/기술카팩 고장난 문제 해결한 썰 10 Toby 18/02/16 10275 5
    6997 과학/기술국뽕론 43 기아트윈스 18/01/25 6480 36
    6946 과학/기술망중립성 + P2P웹호스팅 + 인터넷글쓰기 + 가상화폐 = ??? 4 몽유도원 18/01/15 4124 1
    목록

    + : 최근 2시간내에 달린 댓글
    + : 최근 4시간내에 달린 댓글

    댓글