Qt 6.0 ์•ŒํŒŒ ๋ฒ„์ „ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Qt ํšŒ์‚ฌ ๋ฐœํ‘œํ–ˆ๋‹ค. ์Šค๋ ˆ๋“œ ๋ฒˆ์—ญ์— ๋Œ€ํ•ด QT 6 ์•ŒํŒŒ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๊นŒ์ง€. Qt 6์—๋Š” ์ค‘์š”ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋นŒ๋“œํ•˜๋ ค๋ฉด C++17 ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ’€์–ด ์ฃผ๋‹ค ์˜ˆ์ • 1๋…„ 2020์›” XNUMX์ผ ๊ธฐ์ค€.

์—ด์‡  ํŠน์ง• Qt 6:

  • ์šด์˜ ์ฒด์ œ์˜ 3D API์™€ ๋…๋ฆฝ์ ์ธ ์ถ”์ƒํ™”๋œ ๊ทธ๋ž˜ํ”ฝ API์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Qt ๊ทธ๋ž˜ํ”ฝ ์Šคํƒ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋Š” RHI(๋ Œ๋”๋ง ํ•˜๋“œ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค) ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OpenGL๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Vulkan, Metal ๋ฐ Direct 3D API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Qt Quick ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๋Š” ์žฅ๋ฉด ๋ Œ๋”๋ง ์—”์ง„์ž…๋‹ˆ๋‹ค.
  • 3D ๋ฐ 2D ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ Qt Quick์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ API๊ฐ€ ํฌํ•จ๋œ Qt Quick 3D ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. Qt Quick 3D๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด QML์„ ์‚ฌ์šฉํ•˜์—ฌ UIP ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ 3D ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Qt Quick 3D์—์„œ๋Š” 2D ๋ฐ 3D์šฉ์œผ๋กœ ํ•˜๋‚˜์˜ ๋Ÿฐํƒ€์ž„(Qt Quick), ํ•˜๋‚˜์˜ ์žฅ๋ฉด ๋ ˆ์ด์•„์›ƒ, ํ•˜๋‚˜์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹œ๊ฐ์  ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋ฐœ์—๋Š” Qt Design Studio๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ QML์„ Qt 3D ๋˜๋Š” 3D Studio์˜ ์ฝ˜ํ…์ธ ์™€ ํ†ตํ•ฉํ•  ๋•Œ ํฐ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  2D์™€ 3D ๊ฐ„์˜ ํ”„๋ ˆ์ž„ ์ˆ˜์ค€์—์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ๋ณ€ํ™˜์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๋” ์ž‘์€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  ๊ธฐ๋ณธ ์ œํ’ˆ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ฐ ์ „๋ฌธ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์นดํƒˆ๋กœ๊ทธ ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋˜๋Š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Qt ๋งˆ์ผ“ ํ”Œ๋ ˆ์ด์Šค.
  • QML์˜ ๋Œ€๋Œ€์ ์ธ ํ˜„๋Œ€ํ™”:
    • ๊ฐ•๋ ฅํ•œ ํƒ€์ดํ•‘ ์ง€์›.
    • QML์„ C++ ํ‘œํ˜„๊ณผ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๊ธฐ๋Šฅ.
    • ์™„์ „ํ•œ JavaScript ์ง€์›์„ ์˜ต์…˜์œผ๋กœ ๋งŒ๋“ค๊ธฐ(๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ JavaScript ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์™€ ๊ฐ™์€ ์žฅ๋น„์—์„œ QML์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค).
    • QML ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฑฐ๋ถ€.
    • QObject ๋ฐ QML์— ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ†ตํ•ฉ(๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ค„์ด๊ณ  ์‹œ์ž‘ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค).
    • ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ƒ์„ฑ์—์„œ ๋ฒ—์–ด๋‚˜ ์ปดํŒŒ์ผ ํƒ€์ž„ ์ƒ์„ฑ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
    • ๋น„๊ณต๊ฐœ ๋ฉ”์„œ๋“œ์™€ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ˆจ๊น๋‹ˆ๋‹ค.
    • ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ์ปดํŒŒ์ผ ํƒ€์ž„ ์˜ค๋ฅ˜ ์ง„๋‹จ์„ ์œ„ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€์˜ ํ†ตํ•ฉ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • PNG ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•๋œ ํ…์Šค์ฒ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์…ฐ์ด๋” ๋ฐ ๋ฉ”์‹œ๋ฅผ ํŠน์ • ํ•˜๋“œ์›จ์–ด์— ์ตœ์ ํ™”๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋“ฑ ์ปดํŒŒ์ผ ์‹œ ๊ทธ๋ž˜ํ”ฝ ๊ด€๋ จ ์ž์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ๋งˆ์™€ ์Šคํƒ€์ผ์„ ์œ„ํ•œ ํ†ตํ•ฉ ์—”์ง„์„ ๋‚ด์žฅํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐ์Šคํฌํ†ฑ ํ”Œ๋žซํผ์— ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Qt Widgets ๋ฐ Qt Quick ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ์–‘์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ QMake ๋Œ€์‹  CMake๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. QMake๋ฅผ ์‚ฌ์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ• ์ง€์›์€ ๊ณ„์† ์œ ์ง€๋˜์ง€๋งŒ Qt ์ž์ฒด๋Š” CMake๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. CMake๊ฐ€ ์„ ํƒ๋œ ์ด์œ ๋Š” ์ด ํˆดํ‚ท์ด C++ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ๋งŽ์€ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์ง€์›๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. QMake๋ฅผ ๋Œ€์ฒดํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” Qbs ์กฐ๋ฆฝ ์‹œ์Šคํ…œ์˜ ๊ฐœ๋ฐœ, ๊ณ„์†๋˜๋Š” ์ง€์—ญ ์‚ฌํšŒ.
  • ๊ฐœ๋ฐœ ์ค‘์— C++17 ํ‘œ์ค€์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค(์ด์ „์—๋Š” C++98์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). Qt 6์€ ๋งŽ์€ ์ตœ์‹  C++ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ด์ง€๋งŒ ๋ ˆ๊ฑฐ์‹œ ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ฝ”๋“œ์™€์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์žƒ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • C++ ์ฝ”๋“œ์—์„œ QML ๋ฐ Qt Quick์— ์ œ๊ณต๋˜๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. QObject ๋ฐ ์œ ์‚ฌํ•œ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์†์„ฑ ์‹œ์Šคํ…œ์„ ํฌํ•จํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ œ์‹œ๋ฉ๋‹ˆ๋‹ค. QML์—์„œ ๋ฐ”์ธ๋”ฉ ์ž‘์—…์„ ์œ„ํ•œ ์—”์ง„์ด Qt ์ฝ”์–ด์— ํ†ตํ•ฉ๋˜์–ด ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ๋กœ๋“œ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ์ค„์–ด๋“ค๊ณ  Qt Quick๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Qt์˜ ๋ชจ๋“  ๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • Python, WebAssembly ๋“ฑ ์ถ”๊ฐ€ ์–ธ์–ด์— ๋Œ€ํ•œ ์ง€์›์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถœ์ฒ˜ : opennet.ru

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