Qt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๋๋ก ์ค๊ณ๋ Qt Creator 10.0 ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ฆด๋ฆฌ์ค๊ฐ ๊ฒ์๋์์ต๋๋ค. ๊ณ ์ ์ ์ธ C++ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ๊ณผ QML ์ธ์ด์ ์ฌ์ฉ์ด ๋ชจ๋ ์ง์๋๋ฉฐ JavaScript๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ์ธํฐํ์ด์ค ์์์ ๊ตฌ์กฐ์ ๋งค๊ฐ๋ณ์๋ CSS์ ์ ์ฌํ ๋ธ๋ก์ผ๋ก ์ค์ ๋ฉ๋๋ค. ์ค๋น๋ ์ด์ ๋ธ๋ฆฌ๋ Linux, Windows ๋ฐ macOS์ฉ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ ๋ฒ์ ์์:
- ์์ ์งํ ์ํฉ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ด๋ํ๊ณ ์จ๊ธฐ๋ ๊ธฐ๋ฅ์ด ์ ๊ณต๋ฉ๋๋ค.
- ๊ฒ์์ฐฝ(Locator)์์ ์ค์ ์ ๋ ฌ ํ์ ์ฐฝ์์ ์ด๊ธฐ ๋ชจ๋ ์ฌ์ฉ ์ ๋ง์ง๋ง์ ์ ๋ ฅํ ๊ฒ์์ด๊ฐ ๊ธฐ์ต๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- LLVM์ ๋ฒ๋ค ๋ฒ์ ์ Clang์ C++16 ํ์ค์ ๋ํ ์ง์์ด ํ์ฅ๋๊ณ Qt Creator์ Clangd ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ด ํฅ์๋ ๋ฆด๋ฆฌ์ค 20์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ClangFormat ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ผ๋ฉฐ ์ด์ C++ ์ฝ๋๋ฅผ ์ ๋ ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ํฌํจ๋ ํ์ผ์ ์๋์ผ๋ก ๋ณ๊ฒฝํ๊ณ (include๋ฅผ ํตํด) ".ui" ํ์ผ ๋๋ ์ ์๋ ์์์ ์ด๋ฆ์ ๋ฐ๊พผ ํ C++ ํ์ผ์ ๋งํฌ๋ฅผ ์กฐ์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
- ํ๋ก์ ํธ์์ ์ฌ์ฉ๋์ง ์๋ ํจ์๋ฅผ ๊ฒ์ํ๋ ๋๊ตฌ(๋๊ตฌ > C++ > ์ฌ์ฉํ์ง ์๋ ํจ์ ์ฐพ๊ธฐ)๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ์ด ๊ธฐ๋ฅ์ ์ง์ํ๋ LSP(์ธ์ด ์๋ฒ ํ๋กํ ์ฝ) ์๋ฒ๊ฐ ์๋ ๋ชจ๋ ์ธ์ด์ ์ฌ์ฉํ ์ ์๋ ํตํ ๊ณ์ธต ๋ณด๊ธฐ ๋ชจ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- QML ์ฝ๋ ๋ชจ๋ธ์ด Qt 6.5์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์ด์ ์ฝ๋ ํธ์ง๊ธฐ์๋ ์์ ์์ฑ์ ๋๊ตฌ ์ค๋ช ์ผ๋ก ๋ฏธ๋ฆฌ ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- QML ํ์ผ ํ์์ ์ง์ ํ๊ธฐ ์ํ ์ธ๋ถ ๋ช ๋ น ์ ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค(์: ๋ด์ฅ ํ์ ์ง์ ๋ ผ๋ฆฌ ๋์ qmlformat ํธ์ถ).
- Qt ์ค์น ํ๋ก๊ทธ๋จ์์ ์ ํ์ Qt Language Server ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ ๋ QML Language Server๋ฅผ ํ ์คํธํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(Qt Quick > QML/JS ํธ์ง > ์ง๊ธ qmlls ์ฌ์ฉ).
- CMake ๋น๋ ์์คํ ์ ์ฌ์ ์ค์ (cmake-presets) ์ง์์ด ๋ฒ์ 5๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ด์ ${pathListSep} ๋ณ์, "include" ๋ช ๋ น, ์ํคํ ์ฒ ๋ฐ ๋๊ตฌ์ ๋ํ ์ธ๋ถ ์ ๋ต์ ๋ํ ์ง์์ด ํฌํจ๋ฉ๋๋ค.
- CMake ๊ด๋ จ ํ์ผ์ ํ์์ ์ง์ ํ๊ธฐ ์ํ ๋ช ๋ น์ ์ง์ ํ๊ธฐ ์ํ ์ค์ ์ด ํธ์ง๊ธฐ(CMake > ํฌ๋งทํฐ)์ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด cmake-format ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- "ํ๋ก์ ํธ > ์คํ ์ค์ > ๋ฐฐํฌ ๋จ๊ณ ์ถ๊ฐ" ์ต์ ์ ํตํด ์ถ๊ฐํ ์ ์๋ "cmake --install"์ ์ฌ์ฉํ์ฌ ์ ์ค์น ๋จ๊ณ๋ฅผ ๊ตฌํํ์ต๋๋ค.
- Docker์์ ๋น๋ํ ๋ Clangd ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ๋ชจ๋ธ์ ์๊ฒฉ ์ฒ๋ฆฌ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ClangFormat ํ๋ฌ๊ทธ์ธ์๋ Docker ์ปจํ ์ด๋์ ํธ์คํ ๋ ์ธ๋ถ ํ์ผ ์์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด ๋น๋์ฉ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ํํ๊ธฐ ์ํด ์๊ฒฉ ๋์ ์์คํ ์ ํ์ผ ์์คํ ์ ํ์ํ๋ ๊ธฐ๋ฅ์ด ์ ๊ณต๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋น๋ ํ๊ฒฝ ์ค์ ์ ์๋ Open Terminal(ํฐ๋ฏธ๋ ์ด๊ธฐ) ์์ ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์์คํ ์์ ํฐ๋ฏธ๋์ ์ด ์ ์๋ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru