Qt Company๋ Qt 6.7 ๋ถ๊ธฐ์ ๊ธฐ๋ฅ์ ์ง์์ ์ผ๋ก ์์ ํํ๊ณ ํฅ์์ํค๋ ์์ ์ ์ํํ๋ Qt 6 ํ๋ ์์ํฌ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐํํ์ต๋๋ค. Qt 6.7์ Windows 10+, macOS 12+, Linux(Ubuntu 22.04, openSUSE) ํ๋ซํผ์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค. 15.5, SUSE 15 SP5, RHEL 8.8 /9.2, Debian 11.6), iOS 16+, Android 8+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS ๋ฐ QNX. Qt ๊ตฌ์ฑ ์์์ ์์ค ์ฝ๋๋ LGPLv3 ๋ฐ GPLv2 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์ ๊ณต๋ฉ๋๋ค.
Qt 6.7์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
- C++20 ํ์ค ์์๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋ ์ฌ์ฉ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. C++17 ์ฌ์๊ณผ ํธํ๋๋ std::*_ordering ์ ํ์ ๊ตฌํํ Qt::{strong,weak,partial}_ordering ํด๋์ค์ ์ปดํ์ผ๋ฌ์์ ์ปดํ์ผํ ๋ 20๋ฐฉํฅ ๋น๊ต ์ฐ์ฐ์ ""๋ก ํ์ฅ๋๋ ๋งคํฌ๋ก๋ฅผ ์ถ๊ฐํ์ต๋๋ค. C++ 17์ ์ง์ํฉ๋๋ค(์ปดํ์ผ๋ฌ๊ฐ C++XNUMX๋ง ์ง์ํ๋ ๊ฒฝ์ฐ ๋งคํฌ๋ก๋ ์ผ๋ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋๋ก ๋์ฒด๋ฉ๋๋ค).
std::span ํด๋์ค ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์ฐ์์ ์ธ ๊ฐ์ฒด ์ํ์ค๋ฅผ ๋ํ๋ผ ์ ์์ผ๋ฉฐ, ์ด๋ C++17 ์์คํ ์ ๊ฒฝ์ฐ QSpan ํด๋์ค๋ก ๋์ฒด๋ฉ๋๋ค. ๋ค์ํ Qt API์์ std::chrono ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ง์์ ๊ตฌํํ๋ ์์ ์ด ๊ณ์๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด Qt ๋คํธ์ํฌ API์ ์๊ฐ ์ด๊ณผ๋ ์ด์ std::chrono ์ ํ์ ์ฌ์ฉํ์ฌ ์ค๋ช ๋๋ฉฐ 5์ด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด "5s"์ ๊ฐ์ ๋ฆฌํฐ๋ด ํ์์ผ๋ก ์ง์ ๋ฉ๋๋ค.
- ๋ค์ํ ์ ํ์ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ถํ๊ณ ๋น ๋ฅด๊ฒ ๋ณํํ๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ปฌ๋ ์
์ ์๊ฐํํ๋๋ก ์ค๊ณ๋ ์คํ์ ์ธ Qt ๊ทธ๋ํ ๋ชจ๋์ ๊ฐ๋ฐ์ด ๊ณ์๋์์ต๋๋ค. ์ด ๋ชจ๋์ OpenGL์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ธฐ์กด Qt DataVisualization ๋ชจ๋๊ณผ Qt Charts ๋ชจ๋์ ๋์ฒดํ๊ธฐ ์ํด ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ์๋ก์ด ๋ชจ๋์ Qt Quick 3D์ ๋ค์ํ 3D API(OpenGL, Vulkan, Metal ๋ฐ Direct 3D)๋ฅผ ์ง์ํ๋ RHI(Rendering Hardware Interface) ๋ ๋๋ง ์์ง์ ์ฌ์ฉํฉ๋๋ค. 3D ์๊ฐํ ์ธ์๋ ์ ๋ฒ์ ์๋ XNUMX์ฐจ์ ํ์ด, ์ ๊ทธ๋ํ, ์ฐ์ ๋์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. Qt Quick์์ ์ฌ์ฉํ ์ ์๋ ์ ๋๋ฉ์ด์
๋๊ตฌ ๋ฐ ํจ๊ณผ์์ ํตํฉ์ด ์ ๊ณต๋ฉ๋๋ค. ํ
๋ง์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์
์๋ฅผ ์ค์ด๊ธฐ ์ํด ์ํคํ
์ฒ๊ฐ ํ๋ํ๋์์ต๋๋ค.
- HTTP ๊ธฐ๋ฐ API ๋ฐ REST(REpresentational State Transfer) ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํด ์๋ก์ด ํด๋์ค QHttpHeaders, QNetworkRequestFactory, QRestAccessManager ๋ฐ QRestReply๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- Qt GRPC ๋ชจ๋์ ๊ธฐ๋ฅ์ด ํ์ฅ๋์ด gRPC ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. Qt gRPC์๋ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ๋ฉ์์ง์ด ์๋์ผ๋ก ๊ตํ๋ ์ ์๋๋ก ํ๋ ํด๋ผ์ด์ธํธ ์ธก, ์๋ฒ ์ธก ๋ฐ ์๋ฐฉํฅ ์คํธ๋ฆฌ๋ฐ ํธ์ถ์ ์ํ ์๋ก์ด ํด๋์ค๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ก๊น ๋๋ ์บ์ฑ ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์๋ ์ ํ๋ gRPC ๋ฉ์์ง์ ๋ํ ์ฝ๋ฐฑ ํธ๋ค๋ฌ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด ์ธํฐ์ ํฐ API๊ฐ ์ ์๋์์ต๋๋ค.
- ํ๋กํ ์ฝ ๋ฒํผ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ Qt ํด๋์ค๋ฅผ ์ง๋ ฌํํ๋๋ก ์ค๊ณ๋ Qt Protobuf ๋ชจ๋์๋ JSON ํ์์ผ๋ก ๋๋ JSON ํ์์์ ์ง๋ ฌํํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Qt SVG ๋ฒกํฐ ๊ทธ๋ํฝ ๋ชจ๋์๋ ์ค์ ๋ก SVG ์ด๋ฏธ์ง์ ์์ฃผ ์ฌ์ฉ๋๋ SVG 1.1 ๋ฐ 2.0 ์์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค( , , , ๊ทธ๋ฆฌ๊ณ )๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ถ๋ถ์ SVG ํ์ผ์ ํ์ํ ์ ์์ต๋๋ค. SVG 2.0์ ๋ํ ์์ ํ ์ง์์ด ํ์ํ ์ฌ๋๋ค์๊ฒ๋ Qt WebEngine ๋ชจ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฒกํฐ ๊ทธ๋ํฝ์ Qt Quick ์ฅ๋ฉด ๊ทธ๋ํ๋ก ์ง์ ๊ฐ์ ธ์ค๊ธฐ ์ํด SVG๋ฅผ QML๋ก ๋ณํํ๋ svgtoqml ์ ํธ๋ฆฌํฐ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ํ๋๊ทธ๋จผํธ ์ ฐ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ํ์ง ๊ณก์ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์ํด Qt Quick Shapes ๋ชจ๋์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์์ ํ๋์์ต๋๋ค.
- ๊ธ๋ฆฌํ์ ๋๊ป, ๋๋น ๋ฐ ๊ธฐํ ์คํ์ผ ํน์ฑ์ ์์๋ก ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ๋ณ ๊ธ๊ผด์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์์ด์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. QIcon::fromTheme ํธ์ถ์ ์ฌ์ฉํ ๋ ์์ด์ฝ ์ด๋ฆ์ ์์ด์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐํธ์ ์ผ์น์ํฌ ์ ์์ต๋๋ค.
- ํ์ฌ ํ๋ซํผ ๊ณ ์ ์ ์ฐฝ์ Qt Quick ์ฅ๋ฉด์ ํฌํจํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด Qt Quick ๊ธฐ๋ฐ ์ธํฐํ์ด์ค์์ ํ๋ซํผ์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค ์์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด AppKit MapView ๋๋ Windows Media ํ๋ ์ด์ด๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- Qt์์ ์ง์๋๋ ๋ชจ๋ ๊ทธ๋ํฝ API(Vulkan, OpenGL, Direct3D, Metal)๋ฅผ ์ฌ์ฉํ์ฌ Qt Quick ๋๋ Qt ์์ ฏ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋๋ง ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ถ๊ฐ๋ QRhiQuickItem ๋ฐ QRhiWidget ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
- macOS 14, iOS 17, Windows 11 23H2, Android 14, RHEL 9.2, openSUSE 15.5, SUSE Linux Enterprise Server 15 ํ๋ซํผ์ ๋ํ ์ ์ฒด ์ง์์ด ์ ๊ณต๋ฉ๋๋ค. LLVM ๊ธฐ๋ฐ MinGW ํดํท์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ๋ Windows์ฉ ์ด์ ๋ธ๋ฆฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ARM ์ํคํ ์ฒ(Windows ๋ฐ Linux์ฉ), VxWorks 7 ํ๋ซํผ ๋ฐ QNX 7.1์ฉ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋น๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- Boot2Qt ์คํ์ด ์ ๋ฐ์ดํธ๋์ด Qt ๋ฐ QML ๊ธฐ๋ฐ ํ๊ฒฝ์์ ๋ถํ ๊ฐ๋ฅํ ๋ชจ๋ฐ์ผ ์์คํ ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. Boot2Qt์ ์์คํ ํ๊ฒฝ์ด Yocto 4.3 ํ๋ซํผ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- ์๋ก์ด ์ํ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ถ๊ฐ๋์์ต๋๋ค. Qt Location ๋ฐ Qt Quick Control์ ์ฌ์ฉํ์ฌ ๋์ฐ ๋ฐ์ดํฐ๋ฅผ ์ง๋์ ์๊ฐํํ๋ Lightning Viewer ์์
๋๋ค. Qt Quick 3D, Qt Positioning ๋ฐ Qt Network๋ฅผ ์ฌ์ฉํ์ฌ OpenStreetMap์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก 3D ๊ฑด๋ฌผ ์ง๋๋ฅผ ์์ฑํ๋ ์๋ก์ด OSM ๊ฑด๋ฌผ ๋ฐ๋ชจ์
๋๋ค. Virtual Assistant ์์ ๋ 3D ์ ๋๋ฉ์ด์
์์
๊ธฐ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ์ฒด์ ๋ ๋๋ง ์์ ๋ ์ฒด์ ๊ด์ ์ถ์ ์ ์ํด Qt Quick 3D์์ 3D ํ
์ค์ฒ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. StocQt ์์ ๋ Qt ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ ์์ฅ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋๋ก ์์ ํ ์ฌ์ค๊ณ๋์์ต๋๋ค.
๋ํ Qt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๋๋ก ์ค๊ณ๋ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ Qt Creator 13.0์ ์ถ์์ ์ฃผ๋ชฉํ ์ ์์ต๋๋ค. ์ด๋ C++์ ํด๋์ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ๊ณผ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํ๊ณ ์ธํฐํ์ด์ค ์์์ ๊ตฌ์กฐ์ ๋งค๊ฐ๋ณ์๊ฐ CSS์ ๊ฐ์ ๋ธ๋ก์ผ๋ก ์ง์ ๋๋ QML ์ธ์ด ์ฌ์ฉ์ ๋ชจ๋ ์ง์ํฉ๋๋ค. Linux, Windows ๋ฐ MacOS์ฉ ๊ธฐ์ฑ ์ด์ ๋ธ๋ฆฌ๊ฐ ์์ฑ๋์์ต๋๋ค.
์ ๋ฒ์ ์์:
- Linux๋ฅผ ์ฌ์ฉํ๋ ARM ์์คํ ์ฉ ์คํ๋ผ์ธ ๋ฐ ์จ๋ผ์ธ ์ค์น ํ๋ก๊ทธ๋จ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Welcome to Qt Creator ์ธํฐํ์ด์ค๊ฐ ์ด๋์ด ํ
๋ง์ ๋ฐ์ ํ
๋ง์ ๋ํ ์ง์์ ํฌํจํ๋๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค.
- ๋๋ฒ๊น
๋ชจ๋์์ ์ฌ์ฉ๋๋ ํจ๋ ์ด๋ ๋ฐ ์์ ฏ ์์ฑ์ ์ํ ์ธํฐํ์ด์ค๊ฐ ๊ฐ์ ๋์์ต๋๋ค(Widget Designer). ์์ง ํจ๋์ ์์ ์ถ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ํจ๋์ ๋จผ์ ๋ํน ํด์ ํ์ง ์๊ณ ๋ ํค๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํจ๋์ ์์ ๋กญ๊ฒ ์ด๋ํ ์ ์์ต๋๋ค.
- Qt Application Manager(Qt 6 ๋ฐ CMake ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ )๋ฅผ ์ฌ์ฉํ๋ ์ฅ์น์ ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ, ๋ฐฐํฌ, ์คํ ๋ฐ ๋๋ฒ๊น ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- iOS 17์ ๋ํ ๋ถ๋ถ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ๋ก์ ํธ ์ฝ๋์์ "build" ํ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ธฐ๋ณธ ๋น๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค. "๊ธฐ๋ณธ ์ค์ > ๋น๋ ๋ฐ ์คํ > ๊ธฐ๋ณธ ๋น๋ ์์ฑ > ๊ธฐ๋ณธ ๋น๋ ๋๋ ํฐ๋ฆฌ" ์ค์ ์ ์ฌ์ฉํ์ฌ ๋น๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ๋ชจ๋์๋ ๋ ์ด์ ์ฌ์ฉํ ์ ์๋ ํคํธ(๋ค๋ฅธ ๋น๋ ๋๊ตฌ ๋ฐ Qt ๋ฒ์ ์ ๋ํ ๋งํฌ)๋ฅผ ํ์ํ๊ณ ๋์ฒดํ์ ๋ง๋ค๊ฑฐ๋ ๋น๋, ๋ฐฐํฌ ๋ฐ ๊ตฌ์ถํ ๋ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ "์ฌ๋ผ์ง ๋์" ์น์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ค๋ฅธ ๊ธฐ์กด ํคํธ๋ฅผ ์คํํฉ๋๋ค.
- Python ์ธ์ด๋ก ํ๋ก์ ํธ์ฉ ํคํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค(๋ค๋ฅธ ๋ฒ์ ์ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ ํํ๊ธฐ ์ํด).
- YAML, JSON ๋ฐ Bash์ LSP(Language Server Protocol) ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฝ๋ ํธ์ง๊ธฐ๋ QML ๊ตฌ์ฑ ์์์์ ๊ด๋ จ C++ ์ฝ๋๋ก ์ด๋ํ๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
- ClangFormat ์ค์ ์ด ๊ฐํธ๋์์ต๋๋ค. ์์ ์ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ๊ตฌ๋ฌธ ๊ฒ์ฌ ๊ธฐ๋ฅ์ด ์๋ ํ
์คํธ ํธ์ง๊ธฐ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru