Bound Assembly Feedback - kimjooyoon/meta-ontology-go GitHub Wiki

์—ฐ๊ฒฐํ•œ ํ™œ๋™์˜ ์‹คํŒจ๋กœ ๋‹ค์Œ ์กฐ๋ฆฝ ์ง„ํ–‰ํ•˜๊ธฐ

๋ฌธ๊ตฌ์™€ ์ •์ˆ˜๋ฅผ ์กฐ๋ฆฝํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํ™œ๋™์— ๋„˜๊ฒผ์„ ๋•Œ ์ƒˆ๋กœ์šด ์‹คํŒจ๊ฐ€ ๋“œ๋Ÿฌ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์žฅ์€ ๊ทธ ์‹คํŒจ ํ–‰์„ ์›๋ž˜ ์ž…๋ ฅ๊ณผ ํ•จ๊ป˜ ๋‹ค์Œ ์ฝ”๋“œ ์ƒ์„ฑ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. Describe๊ฐ€ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐ๋ฆฝํ•˜๊ณ  Present๊ฐ€ ์กฐ๊ฑด์— ๋”ฐ๋ผ Decorate๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ž‘์€ ์˜ˆ์ œ๋กœ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐœ Gooo 0.6.22-dev, Go 1.27.2์™€ ์ž‘์—…์žฅ ์ตœ์‹  main์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. PR53์€ ์›๋ณธ ์ „์ฒด CI 37942229769์˜ 38๋‹จ๊ณ„์™€ push ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•ด main 7d64f529์— ๋ณ‘ํ•ฉยท์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉยท์„ค์น˜ ๊ด€์ธก. ์ €์žฅ์†Œ ๋ฃจํŠธ์—์„œ:

go run ./cmd/workbench assemble --source examples/assembly-graph-feedback/source.gooo \
  --entry Present --assembly-activity Describe \
  --cases examples/assembly-graph-feedback/adaptive-cases.json --out out/graph-first
go run ./cmd/workbench construct --assembly out/graph-first \
  --holdout-cases examples/assembly-graph-feedback/holdout-cases.json --out out/graph-next

--entry๋Š” ๋งˆ์ง€๋ง‰ ์‹คํ–‰ ํ™œ๋™์ž…๋‹ˆ๋‹ค. --assembly-activity๋Š” ๋ฃจํŠธ ๋ ˆ์ฝ”๋“œ ์กฐ๋ฆฝ ํ™œ๋™์„ ์‚ฌ์ „ ํ™•์ธํ•˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ™œ๋™์ด๋ฉด ๊ธฐ์กด --entry๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ ํด๋” ํ•˜๋‚˜์— ์›๋ณธ ์†Œ์Šคยท์ž…๋ ฅยท์ƒ์„ฑ๋ฌผยท์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค.

์ธ์ž ํ•˜๋‚˜๋Š” ํ™œ๋™ ์ด๋ฆ„(Describe), ์—ฌ๋Ÿฌ ์ธ์ž๋Š” Describe.input0์ฒ˜๋Ÿผ ์ž…๋ ฅ ํฌํŠธ ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ native ๊ณ„ํš์˜ ๋‘ ํ˜•์‹์„ ํ™•์ธํ•ด ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ์ž…๋ ฅ๊ณผ ๋งˆ์ง€๋ง‰ ๊ธฐ๋Œ€๊ฐ’ ์œ ์ง€

์†Œ์Šค ์‚ฌ๋ก€๋Š” Describe์˜ ์ž…๋ ฅ ๋ฐฐ์—ด๊ณผ ๋ ˆ์ฝ”๋“œ ๊ธฐ๋Œ€๊ฐ’์ž…๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๋ฐ˜๋ก€๋Š” ์›๋ž˜ Describe ์ž…๋ ฅ๊ณผ Present์˜ ์ตœ์ข… ๊ธฐ๋Œ€๊ฐ’์ž…๋‹ˆ๋‹ค. ๋‘ ์ข…๋ฅ˜์˜ ๊ธฐ๋Œ€๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ณด์กดํ•ด ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ๋ ˆ์ฝ”๋“œ๋กœ๋ถ€ํ„ฐ ์›๋ž˜ ์ž…๋ ฅ์„ ์—ญ์‚ฐํ•˜๋Š” ๋‹จ๊ณ„๋Š” ์—†์Šต๋‹ˆ๋‹ค.

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

์ด๋ฒˆ ๊ด€์ธก

์›๋ž˜ ์กฐ๋ฆฝ / ํ›„์† ์กฐ๋ฆฝ ์ฒ˜์Œ ํ˜ธ์ถœ ํ•„๋“œ ์ƒˆ ํšŒ์ฐจ ๋ฐ˜๋ณต ํฌํ•จ ํ”„๋กœ๊ทธ๋žจ ์‹œ๋„ ํ›„์† ๋ชจ๋ธ ํ˜ธ์ถœ ์ตœ์ข… ํ•„๋“œ ์ตœ์ข… ์ƒˆ ์ถ”๋ก 
๊ณ ์ • / ๊ณ ์ • 2/6 4 15 0 6/6 0
๊ณ ์ • / ์ž์ฒด ๋ชจ๋ธ 2/6 4 13 4 6/6 0
์ž์ฒด ๋ชจ๋ธ / ๊ณ ์ • 4/6 4 15 0 6/6 0
์ž์ฒด ๋ชจ๋ธ / ์ž์ฒด ๋ชจ๋ธ 4/6 4 13 4 6/6 0

์ตœ์ข… ๋‘ ์ž…๋ ฅ์€ ์กฐ๋ฆฝ์— ์‚ฌ์šฉํ•œ ๋ฃจํŠธ ์ž…๋ ฅ ์ง‘ํ•ฉ ๋ฐ–์— ์žˆ์œผ๋ฉฐ ์„ ํƒ ๋’ค์—๋งŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต ๋…ธ์ถœ ์—ฌ๋ถ€๋Š” ํ™•์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•œ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ํ•œ ์‚ฌ๋ก€ ๊ฒฐ๊ณผ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ํด๋”์˜ ์—ดํ•œ ๊ฐœ ์ฐธ์กฐ ํŒŒ์ผ์€ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๊ทธ๋Œ€๋กœ ๋ณด๊ด€๋์Šต๋‹ˆ๋‹ค. 9007199254740993, ์Œ์ˆ˜, false, ๋นˆ ๋ฌธ์ž์—ด๊ณผ ํ•œ๊ธ€ยท์ด๋ชจ์ง€๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์ธ์ž ๋ฃจํŠธ์˜ ์‹ค์ œ native ์‹คํ—˜๋„ ์ตœ์ข… ํ•„๋“œ 6/6ยท์ƒˆ ์ถ”๋ก  0ํšŒ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… ์„ค์น˜๋ณธ์—์„œ๋Š” ๋ชจ๋ธ ์‹œ์ž‘ยท๊ณ ์ • ํ›„์† ๊ฒฝ๋กœ๋ฅผ ๊ฐ™์€ ์‚ฌ๋ก€๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ๋ฒ”์œ„๋Š” ๋ฃจํŠธ ๋ ˆ์ฝ”๋“œ ์กฐ๋ฆฝ ํ•˜๋‚˜์™€ ๊ณ ์ •๋œ ํ›„์† ํ™œ๋™ยท์ˆœ์ˆ˜ ๋ณด์กฐ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ฃจํŠธ๋‚˜ ์—ฌ๋Ÿฌ ์กฐ๋ฆฝ ํ™œ๋™์˜ ์‚ฌ๋ก€ ์—ฐ๊ฒฐ์€ ๊ธฐ์กด ์ „์ฒด construct ๊ฒฝ๋กœ์—์„œ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๋ฒ”์œ„์™€ ์žฌํ˜„, ๊ณ„ํšยท๊ด€์ธกยท์›๋ณธ ํ•ด์‹œ.

์ฐธ๊ณ ํ•œ ์ž๋ฃŒ

Matt Pocock์˜ ์ž‘์€ ์กฐํ•ฉ ๋„๊ตฌ๋ฅผ ์ฝ๊ณ  ๊ธฐ์กด assemble์™€ construct๋ฅผ ํ•จ๊ป˜ ์“ฐ๋Š” ๊ตฌ์„ฑ์„ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. Michael Lynch์˜ ๊ธ€์“ฐ๊ธฐ ์‚ฌ๋ก€๋ฅผ ์ฐธ๊ณ ํ•ด ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ์˜ˆ์ œ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Deno์˜ 10์›” 9์ผ ๋ฐœํ‘œ์—์„œ๋Š” ๊ธฐ์กด ์ƒํƒœ๊ณ„์™€ ์‹คํ–‰ ๊ฒฝํ—˜์„ ํ•จ๊ป˜ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ๋ฅผ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. Gooo๋Š” ํ˜„์žฌ ๊ณต๊ฐœ Go ์ƒ์„ฑ๊ณผ ์ €์žฅ ์žฌ์ƒ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฒ”์œ„๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž๋ฃŒ์—์„œ ๋‚ด๋ฆฐ ์„ค๊ณ„ ํŒ๋‹จ์ด๋ฉฐ ์ฑ„ํƒยท๋ณด๋ฅ˜ ์ด์œ ์— ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค.