GUADEC 2021์์๋ MVC ํจ๋ฌ๋ค์๊ณผ ๋ฐ์ดํฐ ๋ชจ๋ธ ์ฐ์ ์ฒ ํ์ ์ฌ์ฉํ๋ GTK 3 ๋ฐ GTK 4์ฉ ์๋ก์ด ์ ์ํ ์ธํฐํ์ด์ค ๊ฐ๋ฐ ๋๊ตฌ์ธ Cambalache๋ฅผ ์๊ฐํฉ๋๋ค. Glade์ ๊ฐ์ฅ ๋์ ๋๋ ์ฐจ์ด์ ์ค ํ๋๋ ํ๋์ ํ๋ก์ ํธ์์ ์ฌ๋ฌ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ์ง ๊ด๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ Python์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ GPLv2์ ๋ฐ๋ผ ๋ผ์ด์ผ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
GTK์ ์ฌ๋ฌ ๋ถ๊ธฐ์ ๋ํ ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด ์น ๋ธ๋ผ์ฐ์ ์ฐฝ์์ GTK ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๋ ฅ์ ๋ ๋๋งํ ์ ์๋ Broadway ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ ๊ณต๊ฐ์ด ์์ฑ๋ฉ๋๋ค. ๊ธฐ๋ณธ Cambalache ํ๋ก์ธ์ค์๋ WebKit WebView์ ๋ํ ๋ฐ์ธ๋ฉ์ด ์ ๊ณต๋๋ฉฐ, ์ฌ๊ธฐ์ Broadway๋ ์ฌ์ฉ์๊ฐ ๋ง๋ ์ธํฐํ์ด์ค ๋ ๋๋ง์ ์ง์ ๊ด์ฌํ๋ Merengue ํ๋ก์ธ์ค์ ์ถ๋ ฅ์ ๋ธ๋ก๋์บ์คํธํฉ๋๋ค. ์ธํฐํ์ด์ค๋ ํ๋ก์ ํธ์ ์ ์๋ ๋ฒ์ ์ ๋ฐ๋ผ GTK 3 ๋ฐ GTK 4๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ์ ์์ต๋๋ค.
Cambalache๋ GtkBuilder ๋ฐ GObject์ ๋ ๋ฆฝ์ ์ด์ง๋ง GObject ์ ํ ์์คํ ๊ณผ ์ผ๊ด๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํ ๋ฒ์ ์ฌ๋ฌ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๋ด๋ณด๋ผ ์ ์๊ณ GtkBuilder ๊ฐ์ฒด, ์์ฑ ๋ฐ ์ ํธ๋ฅผ ์ง์ํ๊ณ ์คํ ์ทจ์ ์คํ(์คํ ์ทจ์/๋ค์ ์คํ) ๋ฐ ๋ช ๋ น ๊ธฐ๋ก์ ์์ถํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. cambalache-db ์ ํธ๋ฆฌํฐ๋ gir ํ์ผ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์ฑํ๊ธฐ ์ํด ์ ๊ณต๋๊ณ , db-codegen ์ ํธ๋ฆฌํฐ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ ํ ์ด๋ธ์์ GObject ํด๋์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ ๊ณต๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru