ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด Vala 0.54.0 ๋ฒˆ์—ญ๊ธฐ ์ถœ์‹œ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฒˆ์—ญ๊ธฐ Vala 0.54.0์˜ ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Vala ์–ธ์–ด๋Š” C# ๋˜๋Š” Java์™€ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Vala ์ฝ”๋“œ๋Š” C ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ, ์ด๋Š” ๋‹ค์‹œ ํ‘œ์ค€ C ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ๋Œ€์ƒ ํ”Œ๋žซํผ์˜ ๊ฐœ์ฒด ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†๋„๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“œ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๋Š” GNOME ํ”„๋กœ์ ํŠธ์˜ ํ›„์›์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Gobject(Glib Object System)๋Š” ๊ฐ์ฒด ๋ชจ๋ธ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ ์ฝ”๋“œ๋Š” LGPLv2.1 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์–ธ์–ด๋Š” ์ž์ฒด ๊ฒ€์‚ฌ, ๋žŒ๋‹ค ํ•จ์ˆ˜, ์ธํ„ฐํŽ˜์ด์Šค, ๋Œ€๋ฆฌ์ž ๋ฐ ํด๋กœ์ €, ์‹ ํ˜ธ ๋ฐ ์Šฌ๋กฏ, ์˜ˆ์™ธ, ์†์„ฑ, null์ด ์•„๋‹Œ ์œ ํ˜•, ์ง€์—ญ ๋ณ€์ˆ˜(var)์— ๋Œ€ํ•œ ์œ ํ˜• ์œ ์ถ”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ์ฐธ์กฐ ์นด์šดํŒ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์ปฌ๋ ‰์…˜์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ผ๋ฐ˜ํ™”๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ libgee๊ฐ€ ํ•ด๋‹น ์–ธ์–ด์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. foreach ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์ปฌ๋ ‰์…˜ ์š”์†Œ ์—ด๊ฑฐ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”ฝ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ GTK ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด ํ‚คํŠธ์—๋Š” C ์–ธ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋งŽ์€ ๋ฐ”์ธ๋”ฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Vala ๋ฒˆ์—ญ๊ธฐ๋Š” ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” Genie ์–ธ์–ด์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Geary ์ด๋ฉ”์ผ ํด๋ผ์ด์–ธํŠธ, Budgie ๊ทธ๋ž˜ํ”ฝ ์‰˜, Shotwell ์‚ฌ์ง„ ๋ฐ ๋น„๋””์˜ค ํŒŒ์ผ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์€ Vala ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๋Š” Elementary OS ๋ฐฐํฌํŒ ๊ฐœ๋ฐœ์— ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ :

  • ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๋Œ€๋ฆฌ์ž์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • POSIX ํ”„๋กœํ•„๊ณผ ๋™์˜์–ด์ธ LIBC ํ”„๋กœํ•„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • POSIX ํ”„๋กœํ•„ ๋ชจ๋“œ์˜ ์ƒ์„ฑ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ํ˜• ์ถ”๋ก (var?)์„ ํ†ตํ•ด null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒ์†์ด ๊ธˆ์ง€๋œ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋ด‰์ธ๋จ).
  • null(a.?b.?c)์ผ ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค ํ•„๋“œ์— ์•ˆ์ „ ์•ก์„ธ์Šค ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • null๋กœ ๊ตฌ์กฐ ๋‚ด์šฉ ์ดˆ๊ธฐํ™” ํ—ˆ์šฉ (const Foo[] BARS = { { "bar", 42 }, null };);
  • ์ƒ์ˆ˜ ๋ฐฐ์—ด์—๋Š” resize() ์ž‘์—…์ด ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ void ((void)not_void_func(););์— ์บ์ŠคํŒ…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ฒฝ๊ณ  ์ถœ๋ ฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • GLib.Array ์š”์†Œ ์œ ํ˜•์— ๋Œ€ํ•œ ์ œํ•œ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • foreach() ๋ฌธ์—์„œ "์†Œ์œ ๋˜์ง€ ์•Š์€ var" ์†Œ์œ ๊ถŒ ์ƒ์†์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • webkit2gtk-4.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 2.33.3๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gstreamer์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 1.19.0+ git master๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gtk4์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 4.5.0~e681fdd9๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gtk+-3.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 3.24.29+f9fe28ce๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gio-2.0,glib-2.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 2.69.0์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Linux์˜ ๊ฒฝ์šฐ SocketCAN์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, Rest-0.7, libusb, libusb-1.0, pixman-1, webkit2gtk-web-์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ ์ˆ˜์ • ํ™•์žฅ-4.0, x11, zlib, gnutls;
  • gedit-2.20 ๋ฐ webkit-1.0 ๋ฐ”์ธ๋”ฉ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GIR์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”์ธ๋”ฉ์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒ์„ฑ๋œ C ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ girparser, girwriter, valadoc, libvaladoc/girimporter;
  • ๋‹ค์–‘ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ˆ„์ ๋œ ์˜ค๋ฅ˜ ๋ฐ ๋‹จ์ ์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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