Composition Plan Inspection - kimjooyoon/meta-ontology-go GitHub Wiki

์กฐ๋ฆฝ ์ „์— ์ž…๋ ฅ๊ณผ ์—ฐ๊ฒฐ ์ฝ๊ธฐ

ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋จผ์ € ์–ด๋””์— ๊ฐ’์„ ๋„ฃ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. body-plan์€ ํ˜ธ์ถœ์ž๊ฐ€ ๋„ฃ์„ ๊ฐ’, ํ™œ๋™ ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ, ๋จผ์ € ์กฐ๋ฆฝํ•  ๋ณธ๋ฌธ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ž…๋ ฅ ์–‘์‹๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…๋Œ€์—์„œ ๋ถ€ํ’ˆ์„ ์กฐ๋ฆฝํ•˜๊ธฐ ์ „์— ์ž…๋ ฅ ๋‹จ์ž์™€ ์—ฐ๊ฒฐ์„ ์„ ํ™•์ธํ•˜๋Š” ๋‹จ๊ณ„์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์†Œ์Šค์˜ PR1427์€ ์›๋ณธ ์ „์ฒด CI 37947177323์˜ ์—ฌ์„ฏ ํ•„์ˆ˜ ๊ฒ€์‚ฌ์™€ v5 ์ฆ๊ฑฐ๋ฅผ ํ†ต๊ณผํ•ด dev a15b413412ad7b465a0567fb1db4de5706a8c2a8์— ๋ณ‘ํ•ฉ๋์Šต๋‹ˆ๋‹ค. 2026-10-10 KST์— ๊ฐ™์€ ์†Œ์Šค๋กœ ๊ฐœ๋ฐœํŒ์„ ์„ค์น˜ํ•˜๊ณ  ์ž์ฒด ๋ชจ๋ธ ์กฐ๋ฆฝ๊ณผ ์žฌ์ƒ์„ ๋‹ค์‹œ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. CIยท๋ณ‘ํ•ฉยท์„ค์น˜ ์›๋ณธ. ์ดํ›„ ๊ณต๊ฐœ 0.6.23์— ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„ ๊ด€์ธก์˜ a15 ์ƒ์‚ฐ์ž๋Š” ์œ ์ง€ํ•˜๊ณ , ํ˜„์žฌ ์‹คํ–‰์€ ๊ณต๊ฐœ gooo๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ์ฝ๊ณ  ์‹คํ–‰ํ•˜๊ธฐ

๊ณต๊ฐœ ์‹คํ–‰ ํŒŒ์ผ์„ ์„ค์น˜ํ•œ ๋’ค ์ปดํŒŒ์ผ๋Ÿฌ ์ €์žฅ์†Œ ๋ฃจํŠธ์—์„œ:

gooo body-plan --source examples/body-codegen/native-input-joins.gooo.fixture --entry Label
gooo body-plan --source examples/body-codegen/native-input-joins.gooo.fixture \
  --entry Label --inputs-template > inputs.json

์–‘์‹์—๋Š” Left, Right, Label.input1, Label.input2๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. Add์˜ ๋‘ ์ž…๋ ฅ์€ ์•ž ํ™œ๋™์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ณ , Label.input0์€ Add์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์œผ๋ฏ€๋กœ ์ง์ ‘ ์ฑ„์šฐ๋Š” ์–‘์‹์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค. --entry๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ํ™œ๋™๊ณผ ๋ช…์‹œ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์•ž ํ™œ๋™์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

0, false, ๋นˆ ๋ฌธ์ž์—ด์€ ๋ฐ”๊ฟ” ์“ธ ์ž๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ž…๋ ฅ์œผ๋กœ ์ˆ˜์ •ํ•œ ๋’ค:

./.gooo body-compose --source examples/body-codegen/native-input-joins.gooo.fixture \
  --entry Label --inputs inputs.json --out out/observed-label

์„ ํƒ์ ์ธ ๋ ˆ์ฝ”๋“œ ํ•„๋“œ๋Š” ์–‘์‹์—์„œ ์ƒ๋žต๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์žˆ์„ ๋•Œ ์ง์ ‘ ๋„ฃ์œผ๋ฉฐ, ๊ฐ’์ด 0์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด์–ด๋„ ์กด์žฌํ•˜๋Š” ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Œ€๊ฐ’ ์—†์ด ์‹œ์ž‘ํ•œ ์‹คํ–‰์€ 0/0 ๋ฏธ์ธก์ •์ž…๋‹ˆ๋‹ค. ์ •๋‹ต์„ ์ œ๊ณตํ•˜๋ฉด ์ €์žฅํ•œ ๊ฐ™์€ ์ƒ์„ฑ๋ฌผ์— ๋‚˜์ค‘์— ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ „์šฉ ์‹คํ–‰.

์–ด๋–ค ์ž๋ฃŒ๊ฐ€ ๋‚จ๋‚˜

--json์€ ์†Œ์Šค ์ง€๋ฌธ, stable ID, ์ •ํ™•ํ•œ ์ž…๋ ฅ ํ‚ค, bind ์—ฐ๊ฒฐ, ๋ ˆ์ฝ”๋“œ ํ•„๋“œ์™€ ์กฐ๋ฆฝ ๊ณ„์•ฝ ์ง€๋ฌธ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ™œ๋™์—์„œ ํ˜ธ์ถœํ•˜๋Š” ์กฐ๋ฆฝ ๋ณธ๋ฌธ์€ ๋จผ์ € ํ•„์š”ํ•œ ์ˆœ์„œ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ๊ณผ bind์— ๋ชจ๋‘ ์“ฐ์ด๋Š” ๋ณธ๋ฌธ๋„ ์กฐ๋ฆฝ ๋ชฉ๋ก์—๋Š” ํ•œ ๋ฒˆ ๋‚จ์Šต๋‹ˆ๋‹ค. ๋ณธ๋ฌธ ์•ˆ์˜ ํ˜ธ์ถœ ์ธ์ˆ˜๋Š” ์›๋ž˜ ํ˜ธ์ถœ์ž ์ž…๋ ฅ๊ณผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์กฐํšŒ ๋‹จ๊ณ„์˜ ๋ชจ๋ธ ํ˜ธ์ถœยทํ›„๋ณด ๊ฒ€์‚ฌยทnative ์‹คํ–‰์€ ๊ฐ๊ฐ 0ํšŒ์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ๋งŒ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป๋œ ๋ณธ๋ฌธ์˜ ํƒ€์ž…์ด๋‚˜ ๋™์ž‘์€ ์ƒ์„ฑยท๊ฒ€์‚ฌ ๋‹จ๊ณ„์—์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์— ๋งž๋Š” ๊ตฌ์กฐ์ธ์ง€๋Š” body-context --model์—์„œ ๋”ฐ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ด์–ด ์จ ๋ณธ ๊ฒฐ๊ณผ

๋‹ค์„ฏ ์˜ˆ์ œ์—์„œ ์กฐํšŒ ๊ณ„ํš์ด ์‹ค์ œ ์ƒ์„ฑ ๊ณ„ํš๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ์–‘์‹์˜ ์ž…๋ ฅ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ฐ™์€ ์ƒ์„ฑ๋ฌผ์— ๊ธฐ์กด ํ˜ธ์ถœ ๊ธฐ๋Œ€๊ฐ’์„ ์ œ๊ณตํ•ด ์žฌ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ตœ์ดˆ ๋ชจ๋ธ ํ˜ธ์ถœ ๋’ค์— ์ œ๊ณตํ•œ ํ˜ธ์ถœ ๊ธฐ๋Œ€๊ฐ’ ์žฌ์ƒ ์ƒˆ ๋ชจ๋ธ ํ˜ธ์ถœ
์—ฌ๋Ÿฌ ๋ฃจํŠธยท์ž…๋ ฅ ์—ฐ๊ฒฐ 0 49/49 0
์ž์ฒด ๋ชจ๋ธยท์„ธ ํ•„๋“œ 1 4/4 0
๋‘ source_search ๋ณธ๋ฌธ 0 15/15 0
๋‘ source_fill ๋ณธ๋ฌธ 0 15/15 0
ํ˜ธ์ถœ๋˜๋Š” ์˜ˆ์‚ฐ ๊ณ„์‚ฐ ๋ณธ๋ฌธ 0 1/4 0

์˜ˆ์‚ฐ ๊ณ„์‚ฐ ์˜ˆ์ œ๋Š” ์•ฝํ•œ ๋ณธ๋ฌธ๋ณ„ ์‚ฌ๋ก€๋ฅผ ๋งŒ์กฑํ•œ ์ฒซ ํ›„๋ณด๋กœ ์กฐ๋ฆฝ๋์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ํ˜ธ์ถœ ๊ธฐ๋Œ€๊ฐ’ ์„ธ ๊ฐœ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ์‚ฌ์‹ค๋„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด ์›๋ž˜ ํ˜ธ์ถœ ํ–‰์„ ๋‹ค์Œ ๊ตฌ์„ฑ์˜ ๋ฐ˜๋ก€๋กœ ์“ฐ๋Š” ํ๋ฆ„์„ ์ž‘์—…์žฅ์˜ assemble --graph์™€ construct --assembly๋กœ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ ๋ณธ๋ฌธ, ํ˜ธ์ถœ๋˜๋Š” source-fill ๋ณด์กฐ ํ•จ์ˆ˜, source-search์™€ ์ถ”๊ฐ€ ๋ฃจํŠธ ์ž…๋ ฅ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ณธ๋ฌธ์˜ ์กฐ๋ฆฝ๊ณผ ํ”ผ๋“œ๋ฐฑ์—์„œ ๋‘ ๋ช…๋ น๊ณผ ๋ฐ˜๋ก€ ์‚ฌ์šฉยท์˜ˆ์‚ฐ ๋ถ€์กฑยท๋ณ„๋„ ํ‰๊ฐ€์˜ ๊ฒฐ๊ณผ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž… ๊ฒฝ๋กœ์˜ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ ์žฌ์กฐ๋ฆฝ์€ ๋‹ค์Œ ์ง€์› ๋ฒ”์œ„๋กœ ๋‚จ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ์ž์ฒด ๋ชจ๋ธ์˜ ๊ฐ€์ค‘์น˜๋Š” 446๋ฐ”์ดํŠธ, ๋กœ๋”๊ฐ€ ๊ด€์ธกํ•œ ํ…์„œ๋Š” 2,096๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ์•ฑ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์ผ๋ฐ˜ํ™” ์ •ํ™•๋„๋ฅผ ๋œปํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ชจ๋ธ ํ•™์Šตยท๋‹ค์šด๋กœ๋“œ๋Š” ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์›๋ณธ ์‹คํ–‰์„ ๋‚จ๊ฒผ๊ณ , ์†๋„ ๊ฐœ์„  ์ˆ˜์น˜๋Š” ์ธก์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ํ•œ ์›๋ฆฌ

HN์—์„œ ๋ณธ Meadows๋Š” ์ž‘์€ ์–ธ์–ด๊ฐ€ ๊ทธ๋ž˜ํ”„ JSON์„ ๋‚ด๋ณด๋‚ด๊ณ  ๋„๊ตฌ๊ฐ€ ๊ทธ ๊ตฌ์กฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ์‹์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. Gooo์—์„œ๋Š” ์‹คํ–‰ ์ „์— ๊ตฌ์กฐ ๊ณ„ํš์„ ์ฝ๋Š” ๋ถ€๋ถ„์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. GeekNews์—์„œ ์ฝ์€ Dan Cohen์˜ Zotero ํšŒ๊ณ ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ ํ•˜๋Š” ์ž‘์—…๊ณผ ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด์„œ ์‚ฌ์šฉ ํ๋ฆ„์„ ๊ตฌ์ฒดํ™”ํ•œ ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ž‘์„ฑ๋ถ€ํ„ฐ ์ €์žฅ ์žฌ์ƒ๊นŒ์ง€ ๊ธฐ์กด ํ๋ฆ„์„ ์ด์–ด ์“ฐ๋Š” ํŒ๋‹จ์— ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๊ตฌํ˜„์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์†Œ์Šค ๊ฐ€์ด๋“œ์™€ ๋‹ค์„ฏ ๊ฒฝ๋กœ์˜ ๊ด€์ธก ์ž๋ฃŒ์—๋Š” ์ž…๋ ฅ ํ‚ค, ๊ณ„์•ฝ ์ง€๋ฌธ๊ณผ ์œ ํ•œ ๊ธฐ๋Œ€๊ฐ’ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ—˜ ๋‚ ์งœ๋Š” 10์›” 9์ผ, ๋ณ‘ํ•ฉยท์„ค์น˜ยท์œ„ํ‚ค ๊ฒŒ์‹œ ๋‚ ์งœ๋Š” 10์›” 10์ผ์ž…๋‹ˆ๋‹ค.