Qt 5.13 ํ”„๋ ˆ์ž„์›Œํฌ ๋ฆด๋ฆฌ์Šค

XNUMX๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ค€๋น„ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋ ˆ์ž„์›Œํฌ ์ถœ์‹œ QT 5.13. Qt ๊ตฌ์„ฑ ์š”์†Œ์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” LGPLv3 ๋ฐ GPLv2, Qt Creator ๋ฐ qmake์™€ ๊ฐ™์€ Qt ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜๋ฉฐ ์ผ๋ถ€ ๋ชจ๋“ˆ์€ GPLv3์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ :

  • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” WebAssembly ๋ชจ๋“ˆ ํ˜•ํƒœ๋กœ Qt ๊ธฐ๋ฐ˜ ๊ทธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋Š” "Qt for WebAssembly" ๋ชจ๋“ˆ(์ด์ „์—๋Š” ์‹คํ—˜์ )์— ๋Œ€ํ•œ ์ „์ฒด ์ง€์›์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Emscripten์€ ์ปดํŒŒ์ผ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. OpenGL์€ WebGL๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • Qt GUI ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์–ด ์œˆ๋„์šฐ ์‹œ์Šคํ…œ๊ณผ์˜ ํ†ตํ•ฉ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, OpenGL ๋ฐ OpenGL ES์™€์˜ ํ†ตํ•ฉ, 2D ๊ทธ๋ž˜ํ”ฝ, ์ด๋ฏธ์ง€, ๊ธ€๊ผด ๋ฐ ํ…์ŠคํŠธ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ํด๋ž˜์Šค๋ฅผ ์ผ๋ฐ˜ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—๋Š” ์ƒˆ๋กœ์šด API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    QImage::convertTo๋Š” ์ด๋ฏธ์ง€ ํ˜•์‹์„ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. QPainterPath ํด๋ž˜์Šค์— ์ƒˆ๋กœ์šด ๋ฉ”์†Œ๋“œclear, Reserve ๋ฐ Capacity๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • QML ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” Qt QML ๋ชจ๋“ˆ์€ C++ ์ฝ”๋“œ์— ์ •์˜๋œ ์—ด๊ฑฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ "null" ๊ฐ’ ์ฒ˜๋ฆฌ๊ฐ€ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 64๋น„ํŠธ Windows ์‹œ์Šคํ…œ์—์„œ ํ•จ์ˆ˜ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์–ด JIT ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์Šคํƒ์„ ํ’€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Qt Quick์—์„œ๋Š” TableView ๊ฐ์ฒด์— ํ…Œ์ด๋ธ” ์—ด๊ณผ ํ–‰์„ ์ˆจ๊ธฐ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt Quick Controls 2์— ์œ ํ˜•์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”Œ๋ฆฟ๋ทฐ ์š”์†Œ๋ฅผ ๊ฐ€๋กœ ๋˜๋Š” ์„ธ๋กœ๋กœ ๋ฐฐ์น˜ํ•˜๊ณ  ๊ฐ ์š”์†Œ ์‚ฌ์ด์— ์ด๋™ ๊ฐ€๋Šฅํ•œ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์บ์‹ฑ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ด์ฝ˜ ์†์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt WebEngine ์›น ์—”์ง„์€ Chromium 73์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ ๋‚ด๋ถ€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์œผ๋กœ ์„ค๊ณ„๋œ ๋‚ด์žฅ PDF ๋ทฐ์–ด์— ๋Œ€ํ•œ ์ง€์›์œผ๋กœ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” ๋กœ์ปฌ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์™€ QML ์ธ์ฆ์„œ ์ง€์›๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›น ์•Œ๋ฆผ API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. URL ์š”์ฒญ ์ธํ„ฐ์…‰ํ„ฐ ์ •์˜์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • SSL ์†Œ์ผ“์šฉ Qt ๋„คํŠธ์›Œํฌ ๋ชจ๋“ˆ์—๋Š” ๋ณด์•ˆ ์ฑ„๋„์— ๋Œ€ํ•œ ์ง€์›๊ณผ OCSP(์˜จ๋ผ์ธ ์ธ์ฆ์„œ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Linux ๋ฐ Android์—์„œ SSL์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด OpenSSL 1.1 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ƒˆ๋กœ์šด ๋ถ„๊ธฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • QML ์œ ํ˜• VideoOutput์— ๋Œ€ํ•œ Qt ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ชจ๋“ˆ์— ์—ฐ์† ์žฌ์ƒ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(flushMode ์†์„ฑ์— ์˜ํ•ด ์ œ์–ด๋˜๋ฉฐ ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ  ์‚ฌ์ด์— ์ผ์‹œ ์ค‘์ง€ ์—†์Œ). Windows ๋ฐ macOS์˜ ๊ฒฝ์šฐ GStreamer ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Android์šฉ ์˜ค๋””์˜ค ์—ญํ• ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt KNX ๋ชจ๋“ˆ์€ ํ™ˆ ์˜คํ† ๋ฉ”์ด์…˜ ์ œ์–ด์™€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํ‘œ์ค€์„ ์ง€์›ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. KNX ๋ฒ„์Šค์— ๋ฉ”์‹œ์ง€๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๋‚ด๊ณ  KNX ์ง€์› ์žฅ์น˜๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” KNXnet ์„œ๋ฒ„์™€์˜ ๋ณด์•ˆ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • OPC/UA ์‚ฐ์—…์šฉ ํ†ต์‹  ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” Qt OPC UA ๋ชจ๋“ˆ์˜ C++ API์—์„œ ์‹คํ—˜์  ๊ฐœ๋ฐœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. QML์šฉ ์‹คํ—˜์  API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ๋ฌผ ์ธํ„ฐ๋„ท ์žฅ์น˜์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” M2M ํ”„๋กœํ† ์ฝœ์˜ ํด๋ผ์ด์–ธํŠธ ๋ถ€๋ถ„ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์ƒˆ๋กœ์šด ์‹คํ—˜ ๋ชจ๋“ˆ Qt CoAP Constrained Application Protocol์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. UDP๋ฅผ ํ†ตํ•œ DTLS(๋ฐ์ดํ„ฐ๊ทธ๋žจ TLS) ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt5๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Python์—์„œ ๊ทธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ "Python์šฉ Qt" ๋ชจ๋“ˆ ์„ธํŠธ์— ๋Œ€ํ•œ ์ˆ˜์ • ๋ฐ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค(Python ๊ฐœ๋ฐœ์ž๋Š” ๋Œ€๋ถ€๋ถ„์˜ Qt C++ API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). Python์šฉ Qt๋Š” PySide2 ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ๊ณ„์† ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์‹ค์ œ๋กœ Qt 5๋ฅผ ์ง€์›ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ PySide ๋ฆด๋ฆฌ์Šค๋Š” ์ƒˆ๋กœ์šด ์ด๋ฆ„์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค).
  • ์ƒˆ๋กœ์šด ์‹คํ—˜ ๋ชจ๋“ˆ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qt ๋กœํ‹ฐ๋Š” Adobe After Effects์šฉ Bodymovin ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ JSON ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ QML API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. QtLottie ๋•๋ถ„์— ๋””์ž์ด๋„ˆ๋Š” ํŽธ๋ฆฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ๋‚ด๋ณด๋‚ธ ํŒŒ์ผ์„ QtQuick์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. QtLottie์—๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜, ์ž๋ฅด๊ธฐ, ๋ ˆ์ด์–ด๋ง ๋ฐ ๊ธฐํƒ€ ํšจ๊ณผ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์žฅ ๋งˆ์ดํฌ๋กœ ์—”์ง„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—”์ง„์€ ๋‹ค๋ฅธ QtQuick ์š”์†Œ์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ QML ์ฝ”๋“œ์—์„œ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” LottieAnimation QML ์š”์†Œ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Wayland ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์šฉ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์ธ Qt Wayland Compositor๋Š” linux-dmabuf-unstable-v1 ๋ฐ wp_viewporter ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Wayland์˜ ํ”Œ๋žซํผ ๊ตฌ์„ฑ ์š”์†Œ์— fullscreen-shell-unstable-v1 ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Android ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆ์— ํŒŒ์ผ ์ž‘์—…์— ๊ธฐ๋ณธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์˜ ์ตœ์†Œ ๋ฒ„์ „์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด Android 5.0(API ๋ ˆ๋ฒจ 21)์œผ๋กœ ์ƒํ–ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt 3D์—๋Š” OpenGL ํ…์Šค์ฒ˜ ๋ Œ๋”๋Ÿฌ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. glTF 2.0 ์žฅ๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Qt ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
    Qt Quick Controls 1 ๋ฐ Qt XmlPatterns. Qt Canvas 3D ๋ชจ๋“ˆ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€