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

๋„์ž… ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋ ˆ์ž„์›Œํฌ ์ถœ์‹œ QT 5.15. Qt ๊ตฌ์„ฑ ์š”์†Œ์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” LGPLv3 ๋ฐ GPLv2 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Qt 6์˜ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๊ฐ€ XNUMX์›”์— ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์˜ˆ์ƒ๋œ๋‹ค ์ค‘์š”ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ. ํ–ฅํ›„ Qt 6 ๋ถ„๊ธฐ๋กœ์˜ ์›ํ™œํ•œ ์ „ํ™˜์„ ์œ„ํ•ด Qt 5.15์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ตฌํ˜„์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ Qt 6์—์„œ ์ œ๊ฑฐ ์˜ˆ์ •์ธ ๊ธฐ๋Šฅ์˜ ์ž„๋ฐ•ํ•œ ์ง€์› ์ค‘๋‹จ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Qt 5.15๋Š” LTS(์žฅ๊ธฐ ์ง€์›) ๋ฆด๋ฆฌ์Šค๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ๋ธŒ๋žœ์น˜ 5.15์— ๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์ถœํŒ๋  ๊ฒƒ์ด๋‹ค ๋‹ค์Œ ์ค‘์š”ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€๋งŒ, ์ฆ‰ 5508๊ฐœ์›”์ฏค. 499๋…„์— ๊ฑธ์ณ ์—…๋ฐ์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—ฐ์žฅ๋œ LTS ์ฃผ๊ธฐ๋Š” ์ƒ์—…์šฉ ๋ผ์ด์„ ์Šค(์ผ๋ฐ˜ ๊ธฐ์—…์˜ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋‹น ์—ฐ๊ฐ„ XNUMX๋‹ฌ๋Ÿฌ, ์Šคํƒ€ํŠธ์—… ๋ฐ ์ค‘์†Œ๊ธฐ์—…์˜ ๊ฒฝ์šฐ ์—ฐ๊ฐ„ XNUMX๋‹ฌ๋Ÿฌ)๋ฅผ ๋ณด์œ ํ•œ ์‚ฌ์šฉ์ž๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. Qt ํšŒ์‚ฌ๋Š” ๋˜ํ•œ ์กด๊ฒฝ๋ฐ›๋Š” ์ฒ˜์Œ 12๊ฐœ์›” ๋™์•ˆ์˜ ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ƒ์—…์šฉ ๋ผ์ด์„ผ์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ๋ฐฐํฌ๋˜๋Š” Qt ๋ฐฐํฌ ๋ชจ๋ธ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ๊นŒ์ง€ ์ด ์•„์ด๋””์–ด๋Š” ๋…ผ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” Qt 5.15์˜ ํ˜์‹ :

  • ์šด์˜ ์ฒด์ œ์˜ 3D API์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์ถ”์ƒํ™”๋œ ๊ทธ๋ž˜ํ”ฝ API๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Qt ๊ทธ๋ž˜ํ”ฝ ์Šคํƒ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋Š” RHI(๋ Œ๋”๋ง ํ•˜๋“œ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค) ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OpenGL๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Vulkan, Metal ๋ฐ Direct 3D API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Qt Quick ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๋Š” ์žฅ๋ฉด ๋ Œ๋”๋ง ์—”์ง„์ž…๋‹ˆ๋‹ค. 5.15์—์„œ๋Š” ์ƒˆ๋กœ์šด ๊ทธ๋ž˜ํ”ฝ ์Šคํƒ์ด "๊ธฐ์ˆ  ํ”„๋ฆฌ๋ทฐ" ์ƒํƒœ์˜ ์˜ต์…˜ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ์ „์ฒด ๋ชจ๋“ˆ ์ง€์› ์ œ๊ณต Qt ๋น ๋ฅธ 3D, ์‹คํ—˜์  ๊ฐœ๋ฐœ ํ‘œ์‹œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qt Quick 3D๋Š” 2D ๋ฐ 3D ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๋ฅผ ๊ฒฐํ•ฉํ•œ Qt Quick ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ†ตํ•ฉ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด QML์„ ์‚ฌ์šฉํ•˜์—ฌ UIP ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ 3D ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Qt Quick 3D์—์„œ๋Š” 2D ๋ฐ 3D์šฉ์œผ๋กœ ํ•˜๋‚˜์˜ ๋Ÿฐํƒ€์ž„(Qt Quick), ํ•˜๋‚˜์˜ ์žฅ๋ฉด ๋ ˆ์ด์•„์›ƒ, ํ•˜๋‚˜์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹œ๊ฐ์  ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋ฐœ์—๋Š” Qt Design Studio๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ QML์„ Qt 3D ๋˜๋Š” 3D Studio์˜ ์ฝ˜ํ…์ธ ์™€ ํ†ตํ•ฉํ•  ๋•Œ ํฐ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  2D์™€ 3D ๊ฐ„์˜ ํ”„๋ ˆ์ž„ ์ˆ˜์ค€์—์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ๋ณ€ํ™˜์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    Qt Quick 3D์— ์ถ”๊ฐ€๋œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์—๋Š” ํ›„์ฒ˜๋ฆฌ ํšจ๊ณผ ์ง€์›, ๊ธฐํ•˜ํ•™ ์กฐ์ž‘์„ ์œ„ํ•œ C++ API, QQuaternion ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ํšŒ์ „ API, ํฌ์ธํŠธ ๋ผ์ดํŠธ ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Qt Quick 3D์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๋ ค๋ฉด ์ค€๋น„๋œ ์กฐ๋ช… ์œ ํ˜•๊ณผ ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ๋ณต์žกํ•œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ , ํ…์Šค์ฒ˜, ์žฌ๋ฃŒ ๋ฐ ์•คํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ํŠน๋ณ„ ๋ฐ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— ์ œ์•ˆ ๋ฌธ์ œ ํ™˜๊ฒฝ Qt Quick 1.5D๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” Qt Design Studio 3์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋””์ž์ธํ•ฉ๋‹ˆ๋‹ค.


  • Qt QML์—์„œ ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ง‘์ค‘๋œ Qt 6์„ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ํ•„์ˆ˜์ธ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ 'required' ์†์„ฑ์ด ์žˆ๋Š” ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. qmllint ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” QML ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ์ƒ์„ฑ์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ์Šคํƒ€์ผ ์ง€์นจ์— ๋”ฐ๋ผ QML ์ฝ”๋“œ ํ˜•์‹์„ ๋” ์‰ฝ๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” qmlformat ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qt ์—๋””์…˜๊ณผ QML์˜ ํ˜ธํ™˜์„ฑ ๋ณด์žฅ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ.
  • Qt Quick์—์„œ๋Š” ์ด๋ฏธ์ง€ ์š”์†Œ์— ์ƒ‰์ƒ ๊ณต๊ฐ„ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qt Quick Shapes์— ์ƒˆ๋กœ์šด PathText ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    ์ปค์„œ ๋ชจ์–‘ ์†์„ฑ์ด ํฌ์ธํ„ฐ ํ•ธ๋“ค๋Ÿฌ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์Šคํฌํƒ‘ ์‹œ์Šคํ…œ์—์„œ ๋งˆ์šฐ์Šค ์ปค์„œ์˜ ๋ชจ์–‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TableView ๊ธฐ๋ฐ˜ ํ…Œ์ด๋ธ”์— ์ˆ˜์ง ๋ฐ ์ˆ˜ํ‰ ํ—ค๋”๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก HeaderView ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ์ธก ์ฐฝ ์žฅ์‹(CSD) ์ง€์›์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž์ฒด ์ฐฝ ์žฅ์‹์„ ์ •์˜ํ•˜๊ณ  ์ฐฝ ์ œ๋ชฉ ํ‘œ์‹œ์ค„์— ์‚ฌ์šฉ์ž ์ •์˜ ์ปจํ…์ธ ๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“ˆ ์•ˆ์ •ํ™” Qt ๋กœํ‹ฐ๋Š” Adobe After Effects์šฉ Bodymovin ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ JSON ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ QML API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. QtLottie ๋•๋ถ„์— ๋””์ž์ด๋„ˆ๋Š” ํŽธ๋ฆฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ๋‚ด๋ณด๋‚ธ ํŒŒ์ผ์„ QtQuick์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. QtLottie์—๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜, ์ž๋ฅด๊ธฐ, ๋ ˆ์ด์–ด๋ง ๋ฐ ๊ธฐํƒ€ ํšจ๊ณผ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์žฅ ๋งˆ์ดํฌ๋กœ ์—”์ง„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—”์ง„์€ ๋‹ค๋ฅธ QtQuick ์š”์†Œ์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ QML ์ฝ”๋“œ์—์„œ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” LottieAnimation QML ์š”์†Œ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Qt WebEngine ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์ด ์ฝ”๋“œ ๋ฒ ์ด์Šค๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Chromium 80 (๋ธŒ๋žœ์น˜ 5.14์—์„œ๋Š” Chromium 77์ด ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ ํ˜„์žฌ ๋ฒ„์ „์€ Chromium 83).
  • Qt 3D ๋ชจ๋“ˆ์—๋Š” ํ”„๋กœํŒŒ์ผ๋ง ๋ฐ ๋””๋ฒ„๊น… ๋„๊ตฌ๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt Multimedia์—๋Š” โ€‹โ€‹๋‹ค์ค‘ ํ‘œ๋ฉด ๋ Œ๋”๋ง์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qt GUI์—์„œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ • ๋ฐ ๋ณ€ํ™˜ ์ž‘์—…์€ ์ด์ œ ๋งŽ์€ ๊ฒฝ์šฐ์— ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • Qt Network์—๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์‹œ๊ฐ„ ์ œํ•œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์„ธ์…˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ TLS 1.3(์„ธ์…˜ ํ‹ฐ์ผ“์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„ ์ธก์— ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์„ธ์…˜์„ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Œ)
  • std::function๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก Qt Core, QRunnable ๋ฐ QThreadPool์„ ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ํ•ญ๋ชฉ์„ ํœด์ง€ํ†ต์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ฉ”์†Œ๋“œ QFile::moveToTrash()๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์•ˆ๋“œ๋กœ์ด๋“œ์šฉ Qt์—์„œ ์ถ”๊ฐ€ ํŒŒ์ผ ์—ด๊ธฐ ๋ฐ ์ €์žฅ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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