Growing Gooo Through Useful Tools - kimjooyoon/meta-ontology-go GitHub Wiki

์ž‘์€ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ Gooo๋ฅผ ๋ฐœ์ „์‹œํ‚ค๊ธฐ

์—…๋ฐ์ดํŠธ: 2026-10-09 KST.

Gooo๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์˜๋ฏธ์™€ ์กฐ๋ฆฝ ๊ฐ€๋Šฅํ•œ ์„ ํƒ์ง€๋ฅผ ์†Œ์Šค์— ์ ๊ณ , ์ž‘์€ ๋ชจ๋ธ์˜ ์ œ์•ˆ๊ณผ ์‹ค์ œ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฉ”ํƒ€ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ฐœ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์€ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ณ , ์‹คํŒจํ•œ ์ง€์ ์„ ๋‹ค์Œ ์–ธ์–ด ๊ธฐ๋Šฅ์œผ๋กœ ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ง€๊ธˆ์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

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

์ง€ํ‚ฌ ์„ค๊ณ„ ๊ธฐ์ค€

์š”์†Œ ๋งก๋Š” ์ผ ๋ฐ”๊ฟ€ ๋•Œ ํ™•์ธํ•  ๊ฒƒ
Gooo ์†Œ์Šค์™€ ์˜จํ†จ๋กœ์ง€ ๊ฐœ๋…์˜ ์˜๋ฏธ, ํƒ€์ž…, ๊ด€๊ณ„, ํ—ˆ์šฉํ•  ์กฐ๋ฆฝ๊ณผ ์˜๋ฌด ์˜๋ฏธ์™€ ์„ ํƒ ๊ณต๊ฐ„์ด ์–ด๋””์„œ ๋‹ฌ๋ผ์ง€๋Š”์ง€
์ปดํŒŒ์ผ๋Ÿฌ ์„ ์–ธ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ๋ณธ๋ฌธ๊ณผ ์‹คํ–‰ ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ ๊ฐ™์€ ์†Œ์Šค์˜ ๋ณ€ํ™˜๊ณผ ์ถœ์ฒ˜๊ฐ€ ์žฌํ˜„๋˜๋Š”์ง€
์ž์ฒด ์†Œํ˜• ๋ชจ๋ธ ์„ ์–ธ๋œ ์„ ํƒ์ง€์˜ ์‹œ๋„ ์ˆœ์„œ๋ฅผ ์ œ์•ˆ ๊ฐ™์€ ํ›„๋ณดยท๊ฒ€์‚ฌยท์˜ˆ์‚ฐ์—์„œ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ๋Š”์ง€
๊ฒ€์‚ฌ์™€ ์‹ค์ œ ์‹คํ–‰ ๋ช…์‹œํ•œ ๊ธฐ๋Œ€๊ฐ’๊ณผ ์˜๋ฌด๋ฅผ ๊ด€์ธก ์‚ฌ๋ก€ยทํ•„๋“œยท์ž…๋ ฅ์˜ ๋ถ„๋ชจ์™€ ์•„์ง ํ™•์ธํ•˜์ง€ ๋ชปํ•œ ๋ฒ”์œ„
PROV์™€ ์‹คํ–‰ ๊ธฐ๋ก ์†Œ์Šค, ์„ ํƒ, ์‚ฐ์ถœ๋ฌผ๊ณผ ๊ด€์ธก์„ ์—ฐ๊ฒฐ ์ด์ „ ํŒ๋‹จ์„ ์–ด๋–ค ๊ทผ๊ฑฐ๋กœ ์ด์–ด ์“ฐ๊ฑฐ๋‚˜ ๋‹ค์‹œ ๊ฒ€์‚ฌํ•˜๋Š”์ง€

๋ชจ๋ธ์„ ๊ต์ฒดํ•ด๋„ ํ—ˆ์šฉ๋˜๋Š” ๊ตฌ์„ฑ๊ณผ ๊ฒ€์‚ฌ ๊ธฐ์ค€์€ ์†Œ์Šค์— ๋‚จ์Šต๋‹ˆ๋‹ค. ์ œํ•œ๋œ ์˜ˆ์‚ฐ์—์„œ ๊ณ ๋ฅธ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ค์ œ ์ถœ๋ ฅ๋„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์„ ๊ต์ฒดํ•˜๋Š” ์‹คํ—˜์—์„œ๋Š” ๊ฐœ๋…๊ณผ ์˜๋ฌด์˜ ๋ณ€๊ฒฝ์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋‘ ๋„๋ฉ”์ธ ๋„๊ตฌ๋Š” ์ง€์›ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ ๊ตฌ์„ฑ ์•ˆ์—์„œ ๊ณตํ†ต ๋ณด๊ณ  ํƒ€์ž…๊ณผ ๋ Œ๋”๋ง ํŒจํ‚ค์ง€๋ฅผ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ๋ฆ„

๊ณต๊ฐœ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ง„๋‹จ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด, ๋ณ€์ˆ˜ ๋Œ€์ž…, ํ•„๋“œ ์„ ํƒ์ง€์™€ ๊ฒ€์‚ฌ ์‚ฌ๋ก€๊ฐ€ Gooo์— ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์—†์ด ์‹œ์ž‘ํ•˜๊ณ , ์ž์ฒด QAT ๋ชจ๋ธ์„ ์—ฐ๊ฒฐํ•ด ๊ฐ™์€ ๊ณผ์ œ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0.6.6 ๊ณต๊ฐœ macOS arm64 ํŒŒ์ผ๋กœ ๊ด€์ธกํ•œ ์ง„๋‹จ ๋„๊ตฌ๋Š” ๊ธฐ๋Œ€ ์ถœ๋ ฅ 8/8, ๋ณด์กฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์•ฑ์€ 4/4๋ฅผ ์ถฉ์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ณผ์ œ์—์„œ ๊ฒฐ์ •๋ก  ์ˆœ์„œ๋Š” ๋„ค ํ›„๋ณด, ๋ชจ๋ธ ์ˆœ์„œ๋Š” ๋‘ ํ›„๋ณด๋ฅผ ์‹œ๋„ํ•ด ๊ฐ™์€ ์ƒ์„ฑ ์ฝ”๋“œ์™€ ์ถœ๋ ฅ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ์ฐ ๋ฉˆ์ถ˜ ๊ฒฝ์šฐ์—๋Š” ๋ถ€ํ’ˆ ๊ฒ€์‚ฌ 3/5์™€ ์•ฑ ์ถœ๋ ฅ 2/4๊ฐ€ ๋‚จ๊ณ , ๋‹ค๋ฅธ Gooo ๋„๊ตฌ๊ฐ€ CONTINUE_CANDIDATES๋ฅผ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋ถ„ ๊ฒฐ๊ณผ์™€ ์›๋ณธ์—์„œ ์ด์–ด ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์žฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒˆ ์ž…๋ ฅ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ๋กœ๋Š” ์ถ”๊ฐ€ ์ถ”๋ก  0ํšŒ์ž…๋‹ˆ๋‹ค. ์ด ๊ด€์ธก์€ ๋‘ ์ž‘์€ ๊ณผ์ œ์™€ ๋ช…์‹œํ•œ ๊ธฐ๋Œ€๊ฐ’์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์„ค์น˜ํ•˜๊ณ  ์ž์‹ ์˜ ๋ฌธ์ œ๋กœ ํ™•์žฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์Œ ๊ณต๊ฐœ ๊ธฐ๋ก์œผ๋กœ ์ถ•์ ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„๋œ ๋‹ค์Œ ๋‹จ๊ณ„์™€ ์ด์–ด๊ฐˆ ์ˆœ์„œ

๋ณด์กฐ ํ•จ์ˆ˜ ํ›„์† ์กฐ๋ฆฝ์€ 0.6.7 ๊ฐœ๋ฐœํŒ๋ถ€ํ„ฐ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค‘์ฒฉ ํ•จ์ˆ˜ ์•ฑ์€ 0/2์—์„œ 2/2, ์ง„๋‹จ ์•ฑ์€ 2/4์—์„œ 4/4๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ๊ณผ๊ฑฐ ์ œ์•ˆ์€ ๋ณด์กดํ•˜๊ณ , ๋ฐ”๋€ ํ•จ์ˆ˜์— ์˜์กดํ•˜๋Š” ํ›„๋ณด์˜ ํ˜„์žฌ ์ ์ˆ˜๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. package resume๋„ Gooo ์ •์ฑ…๊ณผ ์ €์žฅํ•œ ์กฐ๋ฆฝ ๊ธฐ๋ก์„ ๋ฐ›์•„ ๋‚จ์€ ํ›„๋ณด๋ฅผ ์ด์–ด ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฐฐํฌยท์„ค์น˜ ์ƒํƒœ์™€ ๊ฐ ๊ด€์ธก์˜ ์›๋ณธ์€ ํ˜„์žฌ ์ƒํƒœ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„ ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€ ์ด์–ด์„œ ํ™•์ธํ•  ๋ฒ”์œ„
ํŒจํ‚ค์ง€์˜ ์กฐ๋ฆฝ ์ด์–ด๊ฐ€๊ธฐ ํŒจํ‚ค์ง€ ํ˜ธ์ถœ ์‹คํŒจ๋ฅผ ๋‹ค์Œ ์กฐ๋ฆฝ์— ๋ฐ˜์˜ํ•˜๋ฉฐ Gooo ๊ทœ์น™์ด ์‚ฌ๋ก€์™€ ํ•œ๋„๋ฅผ ๊ณ ๋ฆ„. ์ž‘์—…์žฅ CI ํ›„ main์— ๋ณ‘ํ•ฉ ์ƒˆ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ํ”Œ๋žซํผ๋ณ„ ์‹คํ–‰๊ณผ ๊ณต๊ฐœ ๋ฐฐํฌ, ์‹ค์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„๊ตฌ ๋Š˜๋ฆฌ๊ธฐ
Gooo ์ •์ฑ…์œผ๋กœ ๊ณ„์†ํ• ์ง€ ํŒ๋‹จ ์‹ค์ œ ํ›„๋ณด ์ ์ˆ˜์™€ ๋‚จ์€ ์˜ˆ์‚ฐ์œผ๋กœ ๊ณ„์†ยท์ค‘๋‹จ์„ ๊ฒฐ์ • ๋‹ค๋ฅธ ์กฐ๋ฆฝ ํ”„๋กœํ•„๊ณผ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜์˜ ์„ ํƒ์„ ํ•จ๊ป˜ ๋‹ค๋ฃจ๊ธฐ
Gooo๋กœ ๋งŒ๋“  ์žฌ์‚ฌ์šฉ ๋„๊ตฌ ์†Œ์Šค ์กฐ๊ฐ ๊ต์ฒด ๋„๊ตฌ, ์ˆซ์žยท๋…ผ๋ฆฌยท๋ฌธ์ž์—ด ํ•จ์ˆ˜ 17๊ฐœ ์ด ๋„๊ตฌ๋ฅผ ์ด์šฉํ•ด ๋” ๊ธด ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ
์ž์ฒด ์†Œํ˜• ๋ชจ๋ธ ํ•™์Šต ์„ธ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•œ์˜ ์˜๋„ยทํ›„๋ณด 576ํ–‰, ํ”„๋กœ๊ทธ๋žจ ์ œ์™ธ ํ‰๊ฐ€ ์ƒˆ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ณ ์ • ์ˆœ์„œ๋ณด๋‹ค ๋” ์‹œ๋„ํ–ˆ๋˜ ์›์ธ์„ ๋ฐ˜์˜ํ•˜๊ณ  ๋ณ„๋„ ๊ณผ์ œ๋กœ ํ‰๊ฐ€
๊ณต๊ฐœ ์‚ฌ์šฉ ํ๋ฆ„ ์‹คํ–‰ ํŒŒ์ผ, ์งง์€ ๋ช…๋ น, ์‹ค์ œ ์ž…๋ ฅ๊ณผ ์ €์žฅ ์žฌ์‹คํ–‰ ์™ธ๋ถ€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ๊ณผ์ œ๋กœ ์žฌํ˜„ํ•œ ๊ฒฐ๊ณผ

์†Œ์Šค ์ˆ˜์ • ๋„๊ตฌ, ํ‘œ์ค€ ํ•จ์ˆ˜, ์ž์ฒด ๋ชจ๋ธ์˜ ๋‚ฎ์€ ์ „์ด ์„ฑ๋Šฅ์— ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค์—์„œ ํŒจํ‚ค์ง€ ์„ค์ •์„ ์ฝ๋Š” ๊ตฌ์„ฑ์€ 0.6.11 ๊ฐœ๋ฐœํŒ์œผ๋กœ ๊ณต๊ฐœํ–ˆ๊ณ  ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 0.1.1์—๋„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋„๊ตฌ๋กœ ๊ฐ€์ ธ๊ฐˆ ๋•Œ ๋ฐ˜๋ณตํ•ด ์ ์„ ๋‚ด์šฉ์„ ์ค„์ž…๋‹ˆ๋‹ค.

๊ตฌํ˜„ํ•œ ์กฐ๋ฆฝ๊ณผ ํŒจํ‚ค์ง€ ํ™•์žฅ

๊ธฐ์กด ๊ฒฝ๋กœ๋Š” ๊ฐ ๋ณด์กฐ ํ•จ์ˆ˜๋ฅผ ๊ทธ ํ•จ์ˆ˜์˜ ์˜ˆ์ œ๋กœ ๋จผ์ € ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ์ œ๊ฐ€ ์ž…๋ ฅ 0 โ†’ ์ถœ๋ ฅ 0์ด๋ฉด x์™€ x * 2๊ฐ€ ๋ชจ๋‘ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋ฅผ ๊ณ ๋ฅธ ๋’ค ์•ฑ์—์„œ ์ž…๋ ฅ 3 โ†’ ์ถœ๋ ฅ 6์„ ๊ธฐ๋Œ€ํ•˜๋ฉด ์‹ค์ œ ๊ฐ’์€ 3์ž…๋‹ˆ๋‹ค. ๋ถ€ํ’ˆ์˜ 1/1๊ณผ ์ „์ฒด์˜ 0/1์ด ํ•จ๊ป˜ ๋‚จ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ํšŒ๊ท€ ์˜ˆ์ œ๋ฅผ ๊นจ๋—ํ•œ 0.6.11 ํ›„๋ณด๋กœ ์ง์ ‘ ์‹คํ–‰ํ•ด ์ด ์ƒํƒœ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šคยท์ž…๋ ฅยท์‹ค์ œ ๊ฒฐ๊ณผ. ์ด ์‹คํŒจ๋ฅผ ๋ฐ›์•„ ํ—ˆ์šฉ๋œ ๋‹ค๋ฅธ ์กฐํ•ฉ์„ ์‹œ๋„ํ•˜๋Š” body-construct๋ฅผ PR 1384๋กœ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋ฅผ ์ด์šฉํ•œ ํƒ์ƒ‰, ์˜์กด ๊ด€๊ณ„์— ๋”ฐ๋ฅธ ๋ถ€ํ’ˆ ์žฌ๊ฒ€์‚ฌ, ๋ชจ์ˆœ๋œ ์š”๊ตฌ์˜ ๋ถ€๋ถ„ ๊ฒฐ๊ณผ์™€ ์ €์žฅ ์žฌ์‹คํ–‰์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ CI๋ฅผ ํ†ต๊ณผํ–ˆ๊ณ  0.6.12 ํ›„๋ณด์˜ ๋„ค ํ”Œ๋žซํผ ๊ฒ€์‚ฌ๋„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. PR 1385๋„ ๋ณ‘ํ•ฉํ–ˆ๊ณ  0.6.12๋ฅผ ๊ณต๊ฐœยท์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘ ํ•จ์ˆ˜๊ฐ€ ํ•จ๊ป˜ ๋ฐ”๋€Œ์–ด์•ผ ํ†ต๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์™€ ์ค‘์ฒฉ ํ•จ์ˆ˜๋„ ๊ฒ€์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์ฒด ๋ชจ๋ธ์„ ๋ถ™์ธ ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ๋ชจ๋ธ ์ˆœ์„œ ํ•œ ๋ฒˆ, ๊ณ ์ • ์ˆœ์„œ ์—ฌ๋Ÿ ๋ฒˆ์œผ๋กœ ๊ฐ™์€ ์ฝ”๋“œ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์— ์‚ฌ์šฉํ•œ ์ž…๋ ฅ๊ณผ ์ดํ›„ ํ‰๊ฐ€ ์ž…๋ ฅ์˜ ๊ฒน์นจ์„ ๊ธฐ๋กํ•˜๊ณ , ์ ์€ ํ•œ๋„์—์„œ์˜ ์‹คํŒจ๋„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•๊ณผ ๊ด€์ธก ๋ฒ”์œ„์— ์›๋ณธ์„ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ƒํƒœ๊ณ„ ์ž‘์—…์žฅ์˜ construct ๋ช…๋ น์ด Gooo ๊ทœ์น™์œผ๋กœ ๋‹ค์Œ ์‹œ๋„ ํ•œ๋„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ƒํ•œ ์•ˆ์—์„œ ์ž๋™ ์žฌ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋ถ€ํ’ˆ์„ ๊ณ ๋ฅธ ๊ธฐ๋ก, ์ „์ฒด ์กฐํ•ฉ์˜ ์‹œ๋„, ํ›„์† ํ‰๊ฐ€๋ฅผ ๋”ฐ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ๊ธฐ์กด ์ž์ฒด ๋ชจ๋ธ๋กœ ์ด ํ๋ฆ„์„ ์ง์ ‘ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์กฐ๋ฆฝ์€ PR 1402๋กœ ๊ตฌํ˜„ํ–ˆ๊ณ  ํ•„์ˆ˜ CI๋ฅผ ํ™•์ธํ•ด dev์— ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์˜ˆ์ œ๋Š” ๊ธฐ์กด ๋ชจ๋ธ 41๋ฒˆ๊ณผ ๊ณ ์ • ์ˆœ์„œ 48๋ฒˆ์œผ๋กœ ๊ฐ™์€ ์ฝ”๋“œ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„ ์ž…๋ ฅ์€ ๋‘˜ ๋‹ค 4/4์˜€๊ณ  ์›๋ž˜ ์‹คํŒจ๋„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜จ ํ•จ์ˆ˜๊นŒ์ง€ ํ•จ๊ป˜ ์กฐ๋ฆฝํ•˜๊ธฐ์— ์‚ฌ์šฉ๋ฒ•๊ณผ ์›๋ณธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์žฅ PR 42์—์„œ๋Š” ์ด ํŒจํ‚ค์ง€ ๊ธฐ๋ก์„ Gooo ์ •์ฑ…์ด ์ฝ๊ณ  ๋‹ค์Œ ์กฐ๋ฆฝ์— ์“ธ ์‚ฌ๋ก€์™€ ํ•œ๋„๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ์›๋ž˜ ๊ธฐ๋Œ€๊ฐ’์„ ์œ ์ง€ํ•œ ์˜ˆ์ œ ๋‘ ๊ฐ€์ง€๋Š” ๊ฐ๊ฐ 5ํšŒ์ฐจยท14๋ฒˆ๊ณผ 8ํšŒ์ฐจยท105๋ฒˆ ์‹œ๋„ ํ›„ ๋ณ„๋„ ํ‰๊ฐ€ 4/4๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ํšŒ์ฐจ๋งˆ๋‹ค ๋‹ค์‹œ ์‹œ๋„ํ•œ ์กฐํ•ฉ๋„ ๋ชจ๋‘ ์…‰๋‹ˆ๋‹ค. CI ์›๋ณธ์„ ๋Œ€์กฐํ•œ ๋’ค ์ž‘์—…์žฅ main์— ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋‚จ์€ ๋ฒ”์œ„๋„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํ›„๋ณด๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋™์•ˆ ์ค‘์ฒฉ ํ˜ธ์ถœ์— ์ „๋‹ฌํ–ˆ๋˜ ์ธ์ž ์ด๋ ฅ์€ ์ผ๋ถ€ ๊ฒฝ๋กœ์—์„œ ์•„์ง ๋ฏธ๊ด€์ธก์ž…๋‹ˆ๋‹ค. body-construct๋Š” source-fill๊ณผ IR search๋ฅผ ํ•จ๊ป˜ ํƒ์ƒ‰ํ•˜๋ฉฐ, ์ƒˆ package construct๊ฐ€ ์ด ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜จ ํ•จ์ˆ˜๊นŒ์ง€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋„ ๋„์›€์ด ๋˜๋Š” ๋ชจ๋ธ์ธ์ง€๋Š” ํ˜„์žฌ์˜ ๋‚ฎ์€ ์ „์ด ๊ฒฐ๊ณผ๋ถ€ํ„ฐ ์ด์–ด ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์–ธ์–ด ํ™•์žฅ์€ ์ด๋Ÿฐ ๋„๊ตฌ์—์„œ ํ•„์š”ํ•ด์ง„ ํ‘œํ˜„์„ ๊ธฐ์ค€์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ํ•™์Šต๋„ ์‹ค์ œ Gooo ํ›„๋ณด์™€ ํ•œ๊ตญ์–ดยท์˜์–ด ์˜๋„, ์‹คํŒจ ๊ธฐ๋ก์„ ์ค‘์‹ฌ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋Š” ๊ธฐ์ค€

์ฒซ ๋น„๊ต๋Š” ๊ฐ™์€ ์†Œ์Šคยทํ›„๋ณดยท๊ฒ€์‚ฌยท์˜ˆ์‚ฐ์— ๊ฒฐ์ •๋ก  ์ˆœ์„œ์™€ ์ž์ฒด ๋ชจ๋ธ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์‚ฌ๋ฅผ ์ถฉ์กฑํ•œ ๊ณผ์ œ ์ˆ˜, ์‹œ๋„ ํ›„๋ณด ์ˆ˜, ์ „์ฒด ์‹œ๊ฐ„, ๋ชจ๋ธ ํ˜ธ์ถœยทํŒ๋‹จ ์‹œ๊ฐ„, CPU ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ, ์‚ฌ๋žŒ์˜ ๊ฐœ์ž…, ์žฌ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ•จ๊ป˜ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๋ถ€ํ’ˆ ์‚ฌ๋ก€ 3/5, ์ถœ๋ ฅ 2/4, ํ•„๋“œ ์ถฉ์กฑ ์ˆ˜๋Š” ๊ฐ๊ฐ์˜ ๋‹จ์œ„๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Œ€๊ฐ’ ์—†์ด ๋„ฃ์€ ์ž…๋ ฅ์€ ๋ฐ˜ํ™˜๊ฐ’์„ ๊ด€์ธกํ•˜๋ฉฐ ์ •๋‹ต๋ฅ ์€ ๋ฏธ๊ด€์ธก์œผ๋กœ ๋‘ก๋‹ˆ๋‹ค. ๋” ๊ฐ•ํ•œ ์ฝ”๋“œ ๋ชจ๋ธ์ด๋‚˜ ๋ณ‘๋ ฌ ์—์ด์ „ํŠธ์™€ ๋น„๊ตํ•  ๋•Œ๋„ ๊ฐ™์€ ๊ณผ์ œ์™€ ๊ฒ€์ฆ ๊ธฐ์ค€์„ ์ค€๋น„ํ•œ ๋’ค ๊ฒฐ๊ณผ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.

์—ฐ๊ตฌ ์„ค๋ช…์€ ๊ธฐ์กด ๋น„๊ต ์กฐ๊ฑด๊ณผ ์—ฐ๊ตฌ ๋งฅ๋ฝ์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Rosette, DreamCoder, Halide์™€ PROV-O์—์„œ ์ด์–ด์ง€๋Š” ์งˆ๋ฌธ์„ ๋ฐํžˆ๊ณ , Gooo์˜ ์—ญํ•  ๋ถ„๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์œ ์šฉํ•œ์ง€๋Š” ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ์™€ ๋น„๊ต๋กœ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.

์™ธ๋ถ€์— ๋ณด์—ฌ ์ค„ ์ˆœ์„œ

์ฒ˜์Œ ๋ณด๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์งง์€ ์‹คํ–‰ ์˜ˆ์ œ, ๋ถ€๋ถ„ ๊ฒฐ๊ณผ์˜ ์„ค๋ช…, ๊ฐ™์€ ๊ณผ์ œ์˜ ๋น„๊ต, ์–ธ์–ด ์„ค๊ณ„ ์ˆœ์„œ๋กœ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šคยท์ปดํŒŒ์ผ๋Ÿฌยท๋ชจ๋ธยทํ•™์Šต ์ž๋ฃŒยท์‹คํ–‰ ๊ธฐ๋ก๊ณผ ๋ผ์ด์„ ์Šค ์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด์–ด ์—ฐ๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

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

English summary

Gooo develops a metaprogramming language in which source declares meaning, permitted construction choices and verification obligations. An optional small model suggests a search order. The compiler constructs executable code, while receipts retain the selected path, observed behavior and remaining obligations.

Record-choice continuation already works through package workspaces and Gooo policies. Source editing, reusable functions and a small independently trained graph model have executable public observations. PR 1384 implements bounded caller-guided construction after a helper satisfies insufficient local examples. Local and caller observations remain separate; dependent local examples are rechecked as earlier choices change. The feature passed canonical CI and merged into dev; version 0.6.12 passed four native platforms and was published and installed. The workbench now executes a Gooo policy that proposes the next whole-program budget, then dispatches fresh construction within explicit limits. PR 1402 adds package caller construction, retaining original package identities and rechecking all saved attempts without a model. Canonical CI passed and the feature merged into dev. Workbench PR 42 also passed CI and merged into main: Gooo policies consume these package records to select original counterexamples and propose the next bounded attempt budget. Cases consumed as construction feedback remain distinct from subsequent evaluation. Grow language features and training data from such concrete failures and independent use.

์ง„๋‹จ ๋„๊ตฌ ์‹œ์ž‘ํ•˜๊ธฐ ยท ํ˜„์žฌ ์ƒํƒœ ยท ๋ฌธ์„œ ํ™ˆ