Qt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ธ Qt Creator 17์ด ์ถ์๋์์ต๋๋ค. C++ ๊ธฐ๋ฐ ํด๋์ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ๊ณผ QML ์ธ์ด ์ฌ์ฉ์ด ๋ชจ๋ ์ง์๋๋ฉฐ, QML ์ธ์ด์์๋ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์๋๋ฆฌ์ค๋ฅผ ์ ์ํ๊ณ ์ธํฐํ์ด์ค ์์์ ๊ตฌ์กฐ์ ๋งค๊ฐ๋ณ์๋ CSS์ ์ ์ฌํ ๋ธ๋ก์ผ๋ก ์ ์๋ฉ๋๋ค. ์ ๋ฒ์ ์ Qt ์จ๋ผ์ธ ์ค์น ํ๋ก๊ทธ๋จ(์์ฉ, ์คํ์์ค)์ ์ ๋ฐ์ดํธ ๋ฒ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ์์ฉ ๋ผ์ด์ ์ค๊ฐ ์ ์ฉ๋ ์คํ๋ผ์ธ ์ค์น ํ๋ก๊ทธ๋จ์ Qt ๊ณ์ ํฌํธ์์, ์คํ์์ค ํจํค์ง๋ ํด๋น ๋ค์ด๋ก๋ ํ์ด์ง์์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด ์ ๋ฐ์ดํธ๋ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ฌด๋ฃ๋ก ์ ๊ณต๋ฉ๋๋ค.
๊ฐ์ ์ฌํญ ๋ฐ ์์ ์ฌํญ์ ๊ฐ๋ตํ ๋ชฉ๋ก:
- Qt Creator 2024์ ๋์
๋๊ณ Qt Creator 15์์ ์
๋ฐ์ดํธ๋ ์ด๋ก๊ณ ๋ฐ์ "16" ํ
๋ง๊ฐ ์ด์ ๊ธฐ๋ณธ ํ
๋ง๋ก ์ ์ฉ๋ฉ๋๋ค. Qt Creator ์์ด์ฝ๋ ์๋ก์ด ๋์์ธ๊ณผ ์ด์ธ๋ฆฌ๋๋ก ์์ ๋ฐ ์
๋ฐ์ดํธ๋์์ผ๋ฉฐ, ์ธํฐํ์ด์ค์ ์ผ๊ด์ฑ๋ ๋์ฑ ํฅ์๋์์ต๋๋ค.

- ๊ธฐ๋ณธ ํ๋ฌ๊ทธ์ธ ์ ์ฅ์๊ฐ GitHub์ผ๋ก ์ด๋๋์์ต๋๋ค. ์ด์ ํ๊ฒฝ ์ค์ > ํ์ฅ ํ๋ก๊ทธ๋จ > ๋ธ๋ผ์ฐ์ ์์ ์ถ๊ฐ ํ๋ฌ๊ทธ์ธ ์ ์ฅ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค(์ฌ์ฉ ์ ๋ฐ์ํ๋ ๋ชจ๋ ์ฑ ์์ ์ฌ์ฉ์์๊ฒ ์์ต๋๋ค). ์์ง ์ค์น๋์ง ์์ ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ ๋ณด๊ฐ ํ์ฅ๋์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ํจ๋์ ๋๋๊ทธ ์ค ๋๋กญ ๋ฐฉ์์ผ๋ก ํ๋ฌ๊ทธ์ธ์ ์ค์นํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ๋ก์ ํธ: ์คํ ํ๋กํ์ด ๋น๋ ํ๋กํ์ ์ผ๋ถ๊ฐ ๋์์ต๋๋ค(์ด์ ์๋ ์์ ํ ๋
๋ฆฝ์ ์ด์์ต๋๋ค). ์ด์ ๊ฐ ์คํ ํ๋กํ์ ํน์ ๋น๋ ํ๋กํ์ ์ํ๋ฉฐ, ํ์ฌ ๋น๋ ํ๋กํ์ ์ ํํ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํ ์คํ ํ๋กํ ์ธํธ๋ ์ ํ๋ฉ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์์ฃผ ์์ฒญํ๋ ์๋๋ฆฌ์ค, ์ฆ ๋๋ฒ๊ทธ ๋ฐ ๋ฆด๋ฆฌ์ค์ ๊ฐ์ ๋ค์ํ ๋น๋ ํ๋กํ์ ๋ํด ๋ช
๋ น์ค ์ธ์๋ ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ๋ค์ํ ์คํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
์ด์ "์ฌ๊ธฐ์ ๋ณต์ฌ" ๋ฒํผ์ ์ฌ์ฉํ์ฌ ํน์ ๋น๋ ํ๋กํ์ ์ํด ์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ํ ์คํ ํ๋กํ์ ๊ฐ์ ๋ค๋ฅธ ํ๋กํ๋ก ๋ณต์ฌํ ์ ์์ต๋๋ค.
- CMake: Qt ๊ตฌ์ฑ ์์ ๋๋ฝ์ผ๋ก ์ธํด cmake ํธ์ถ์ด ์คํจํ ๊ฒฝ์ฐ, Qt ์จ๋ผ์ธ ์ค์น ํ๋ก๊ทธ๋จ(Qt Creator๊ฐ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ)์ ์ฌ์ฉํ์ฌ ๋๋ฝ๋ Qt ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด ์๋ก์ด ๊ธฐ๋ฅ์ "ํ๊ฒฝ ์ค์ > CMake > ์ผ๋ฐ > ํจํค์ง ๊ด๋ฆฌ์ ์๋ ์ค์น" ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉฐ, ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด Qt Creator์์ CMake๋ฅผ ์คํํด์ผ ํฉ๋๋ค.
- Python: pyproject.toml ํ๋ก์ ํธ ์ด๊ธฐ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ Qt Creator ๋ง๋ฒ์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ PySide ํ๋ก์ ํธ์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ๋ฉ๋๋ค. .pyproject ํ๋ก์ ํธ ์ด๊ธฐ๋ ๊ณ์ ์ง์๋ฉ๋๋ค.
- C++ ์์ : ๊ฒฐ๊ณผ ๋ฐ์ด๋๋ฆฌ๋ ์ด์ ์
๋ฐ์ดํธ๋ C++ ์ง์์ ์ํด LLVM 20.1.3์ผ๋ก ๋น๋๋์์ต๋๋ค. Qt ๋ฌธ์์ด ๋ฆฌํฐ๋ด ์ฐ์ฐ์(์: "_ba" ๋ฐ "_L1")์ ๋ํ ์ง์์ด ์์ ๋์์ต๋๋ค. ๋ด์ฅ ํจ์ ๋ฐ ๋งคํฌ๋ก๋ฅผ ํจ์์ฒ๋ผ ์ฌ์ฉํ๋ ์ผ๋ถ ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค.
ํ๋ก์ ํธ์์ ์ด์ ์ ์ฌ์ฉ๋์ง ์์๋ Qt ํด๋์ค(์ฝ๋ ๋ชจ๋ธ์์ ์ฐพ์ง ๋ชปํ ํด๋์ค)๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ๋ฐ์์ ํธ์์ฑ์ ๋์ด๊ธฐ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ก์ด ๋น ๋ฅธ ์์ (ํ๋ก์ ํธ์ ์ Qt ํด๋์ค๊ฐ ์๋ ์ค์ ํธ์ง๊ธฐ์ ๋ ธ๋์ ํ์๋ฑ์ด ์ผ์ง)์ ํตํด ๋๋ฝ๋ #include ์ง์๋ฌธ์ ์์ค์ ์ถ๊ฐํ๊ณ ๋๋ฝ๋ Qt ๋ชจ๋์ ํ๋ก์ ํธ ํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. #include ์ง์๋ฌธ์ด ์๋ ์ค์ ๋ํ ๋์ผํ ๋น ๋ฅธ ์์ ์ ํตํด ํ์ํ Qt ๋ชจ๋์ ํ๋ก์ ํธ ํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- QML: ํ๊ฒฝ ์ค์ > Qt Quick > ์ฝ๋ ์คํ์ผ์์ ์ฝ๋ ์คํ์ผ ์ต์
์ ํตํด QML ์ธ์ด ์๋ฒ์ ํตํฉ๋ qmlformat์ ๋ฌผ๋ก , ๊ธฐ๋ณธ ์ ๊ณต ํฌ๋งคํฐ ๋๋ ์ฌ์ฉ์ ์ง์ qmlformat ํธํ ํฌ๋งคํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์ ์ปจํ
์คํธ ๋ฉ๋ด์ ๋๊ตฌ > QML/JS ๋ฉ๋ด์์ ๋ฌธ์ ์ฌํฌ๋งท ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Qt Design Studio์์ .ui.qml ํ์ผ์ ์ด ์ ์๋ ์ ๋ฒํผ์ด QML ์ฝ๋ ํธ์ง๊ธฐ ๋๊ตฌ ๋ชจ์์ ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ถ์๊ธฐ: ๋๋ฒ๊ทธ > Axivion ๋ชจ๋์ ์ด์ ์ธํฐํ์ด์ค์ ์๋ก์ด "๋ก์ปฌ ๋น๋" ๋ฐ "๋ก์ปฌ ๋์๋ณด๋" ๋ฒํผ์ด ์ถ๊ฐ๋์ด Axivion์ ๋ํ ๋ก์ปฌ ๋์๋ณด๋ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. "ํ๊ฒฝ ์ค์ > ๋ถ์ > Axivion"์ ๋ค์ํ ์ค์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: '์คํ ์ด์ง๋์ง ์์' ๋์ '์คํ ์ด์ง๋' ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉ๋๋ ๋ค์ํ git 'diff' ์์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. Instant Blame ํดํ์ ๋ณ๊ฒฝ ์ฌํญ ๋๋๋ฆฌ๊ธฐ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ 'ํ๊ทธ ์ถ๊ฐ' ๋ํ์์์์ ์ฃผ์์ด ๋ฌ๋ฆฐ ํ๊ทธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru

