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

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฒˆ์—ญ๊ธฐ Vala 0.51.1์˜ ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Vala ์–ธ์–ด๋Š” C# ๋˜๋Š” Java์™€ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Gobject(Glib Object System)๋Š” ๊ฐ์ฒด ๋ชจ๋ธ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ์ฐธ์กฐ ์นด์šดํŒ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

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

Vala ํ”„๋กœ๊ทธ๋žจ์€ C ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ ํ‘œ์ค€ C ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ปดํŒŒ์ผ๋˜๋ฉฐ ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“œ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vala ๋ณ€ํ™˜๊ธฐ๋Š” ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” Genie ์–ธ์–ด์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์ƒˆ ๋ฒ„์ „์—์„œ:

  • ํ‘œํ˜„์‹์˜ ์ž๋™ ์œ ํ˜• ์ถ•์†Œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. if (x is Foo){ x.SomeFooField // "x"๋ฅผ "Foo"๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. }
  • ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž ์ฒด์ธ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋Ÿฐํƒ€์ž„ ์‹œ libvala ๋ฒ„์ „ ํ™•์ธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถˆํˆฌ๋ช… ์ปดํŒฉํŠธ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒ์„ฑ์ž์˜ ๋ฐฐ์—ด ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํ™•์žฅ๋œ ์ง€์›;
  • girparser์— ๋Œ€ํ•œ ๊ฐ€์ƒ ๋ฉ”์„œ๋“œ ๋˜๋Š” ์‹ ํ˜ธ์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š” ์ต๋ช… ๋Œ€๋ฆฌ์ž ์ฒ˜๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • valadoc, libvaladoc ๋ฐ girwriter์˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • SDL 2.x์— ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ SDL 1.x ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Enchant 2.x์— ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Glib.Value๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋ช…์‹œ์ ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ํž™์— ํ• ๋‹น๋œ ๊ตฌ์กฐ๋ฅผ ์Šคํƒ์œผ๋กœ ์ด๋™ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • gdk-pixbuf-2.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 2.42.3์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • getopt_long() ํ•จ์ˆ˜ ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ GNU ํ•จ์ˆ˜์˜ ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • libunwind-generic์— ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • cairo, gobject-2.0, pango, goocanvas-2.0,curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, ํ“จ์ฆˆ, libxml์— ๋Œ€ํ•œ ๊ณ ์ • ๋ฐ”์ธ๋”ฉ -2.0;
  • gio-2.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 2.67.3์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gobject-2.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 2.68๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gstreamer์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 1.19.0+ git master๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • gtk4์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 4.1.0+2712f536์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • POSIX, GNU ๋ฐ BSD์šฉ ์ •๊ทœ์‹ API์— ๋ฐ”์ธ๋”ฉ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • webkit2gtk-4.0์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ๋ฒ„์ „ 2.31.1๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ˆ„์ ๋œ ์˜ค๋ฅ˜ ๋ฐ ๋‹จ์ ์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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