Qbs 2.0 ์กฐ๋ฆฝ ๋„๊ตฌ ๋ฆด๋ฆฌ์Šค

Qbs 2.0 ๋นŒ๋“œ ๋„๊ตฌ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qbs๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด Qt๊ฐ€ ์ข…์†์„ฑ์œผ๋กœ ํ•„์š”ํ•˜์ง€๋งŒ Qbs ์ž์ฒด๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qbs๋Š” QML ์–ธ์–ด์˜ ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ณ  JavaScript ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž„์˜์˜ ๋นŒ๋“œ ๊ทœ์น™์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์œ ์—ฐํ•œ ๋นŒ๋“œ ๊ทœ์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Qbs์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋Š” IDE์—์„œ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ์„ฑ ๋ฐ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์ž๋™ํ™”ํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Qbs๋Š” make ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฉฐ make ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ๊ฐ™์€ ์ค‘๊ฐœ์ž ์—†์ด ์ž์ฒด์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๋ง์ปค์˜ ์‹œ์ž‘์„ ์ œ์–ดํ•˜์—ฌ ๋ชจ๋“  ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ ๋ฐ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์—์„œ ์ž‘์—… ์‹คํ–‰์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ณ‘๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์ˆ˜์˜ ํŒŒ์ผ๊ณผ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋œ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ Qbs๋ฅผ ์‚ฌ์šฉํ•œ ์žฌ๊ตฌ์ถ• ์„ฑ๋Šฅ์€ make๋ณด๋‹ค ๋ช‡ ๋ฐฐ๋‚˜ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์žฌ๊ตฌ์ถ•์€ ๊ฑฐ์˜ ์ฆ‰๊ฐ์ ์ด๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2018๋…„์— Qt Company๋Š” Qbs ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Qbs๋Š” qmake๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ ๊ถ๊ทน์ ์œผ๋กœ CMake๋ฅผ ์žฅ๊ธฐ์ ์œผ๋กœ Qt์˜ ์ฃผ์š” ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qbs์˜ ๊ฐœ๋ฐœ์€ ์ด์ œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„ธ๋ ฅ๊ณผ ๊ด€์‹ฌ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์›ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์ ํŠธ๋กœ ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qt Company ์ธํ”„๋ผ๋Š” ๊ฐœ๋ฐœ์— ๊ณ„์† ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ ๋ฒˆํ˜ธ์˜ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ์€ Qt 6์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” QtScript๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ์ƒˆ๋กœ์šด JavaScript ๋ฐฑ์—”๋“œ์˜ ๊ตฌํ˜„๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. -QEMU ๋ฐ FFmpeg ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค๋ฆฝํ•œ Fabrice Bellard๊ฐ€ ๋งŒ๋“  ์ƒˆ๋กœ์šด ๋ฐฑ์—”๋“œ QuickJS JavaScript ์—”์ง„์˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถฉ๋ถ„ํ•˜๊ณ  ์ปดํŒฉํŠธํ•œ ๊ฒƒ์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์—”์ง„์€ ES2019 ์‚ฌ์–‘์„ ์ง€์›ํ•˜๋ฉฐ ์„ฑ๋Šฅ ๋ฉด์—์„œ ๊ธฐ์กด ์—”์ง„๋ณด๋‹ค ํ›จ์”ฌ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค(XS๋Š” 35%, DukTape๋Š” XNUMX๋ฐฐ ์ด์ƒ, JerryScript๋Š” XNUMX๋ฐฐ, MuJS๋Š” XNUMX๋ฐฐ).

๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ƒˆ ์—”์ง„์œผ๋กœ์˜ ์ „ํ™˜์ด ๋ˆˆ์— ๋„๋Š” ๋ณ€ํ™”๋กœ ์ด์–ด์ ธ์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ๋„ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์  ์ค‘ ์ƒˆ ์—”์ง„์—๋Š” null ๊ฐ’ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋” ์—„๊ฒฉํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” QtScript๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์˜ ๋ฌธ์ œ๋ฅผ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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