Getting Started History through 2026 10 09 - kimjooyoon/meta-ontology-go GitHub Wiki

์‹œ์ž‘ํ•˜๊ธฐ

์—…๋ฐ์ดํŠธ: 2026-10-09. ์ž‘์€ Gooo ๋„๊ตฌ๋ฅผ ์กฐ๋ฆฝํ•˜๊ณ , ์ €์žฅํ•œ ํ”„๋กœ๊ทธ๋žจ์— ์ƒˆ ์ž…๋ ฅ์„ ๋„ฃ์–ด ๋ด…๋‹ˆ๋‹ค.

์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ: Go 1.27.2

0.6.21 ๊ฐœ๋ฐœํŒ์€ Linux amd64, macOS amd64ยทarm64, Windows amd64 ์‹คํ–‰ ํŒŒ์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜จ ํ•จ์ˆ˜๊นŒ์ง€ ํ•จ๊ป˜ ์กฐ๋ฆฝํ•˜๋Š” package construct์™€ ์ €์žฅ ์žฌ์‹คํ–‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --inputs๋กœ ์ •๋‹ต ์—†๋Š” ์‹ค์ œ ์ž…๋ ฅ์„ ์ฃผ๊ณ , ๋‚˜์˜จ ๊ฐ’์„ ์ €์žฅํ•ด ๋‹ค์Œ ์ž…๋ ฅ์ด๋‚˜ ํ›„์† ํ‰๊ฐ€์— ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ์™€ ์ƒ์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰์—๋Š” Go 1.27.2๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœ macOS ARM64 ํŒŒ์ผ์„ ์„ค์น˜ํ•ด ์ž์ฒด ๋ชจ๋ธ ์‚ฌ์šฉยท๋ฏธ์‚ฌ์šฉยท์ €์žฅ ์žฌ์‹คํ–‰์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐฐํฌ ์†Œ์Šค๋ฅผ ์ง์ ‘ ๋นŒ๋“œํ•  ๋•Œ๋Š” ์ƒˆ ํด๋”์—์„œ ๋‹ค์Œ์ฒ˜๋Ÿผ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

git init gooo-compiler
git -C gooo-compiler remote add origin https://github.com/kimjooyoon/meta-ontology-go.git
git -C gooo-compiler fetch --depth 1 origin d4d0966f3c463d64119d9b6a6c689da4af2cef4f
git -C gooo-compiler switch --detach FETCH_HEAD
GOTOOLCHAIN=go1.27.2 go -C gooo-compiler build -trimpath -o gooo ./cmd/gooo
./gooo-compiler/gooo version --build --json

์ถœ๋ ฅ์˜ go_version๊ณผ native_go_required๋Š” go1.27.2, version์€ 0.6.21-dev, vcs_revision์€ ์œ„ ์†Œ์Šค์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. 0.6.21 ์‹คํ–‰ ์•ˆ๋‚ด์˜ ์˜์–ดยทํ•œ๊ธ€ ํƒ€์ž… ์ด๋ฆ„๊ณผ ๊ฐ™์€ ID, ๋ณ€์ˆ˜ยท์กฐ๊ฑด๋ฌธยท์ž์ฒด ๋ชจ๋ธ ์กฐ๋ฆฝยท์‹ค์ œ ์ž…๋ ฅยท์ €์žฅ ์žฌ์ƒ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ๋ฆฝ ์ „ ๋ชจ๋ธ ๊ทœ๊ฒฉ์„ ํ™•์ธํ•˜๋Š” body-context --model์€ PR1423์„ ๋ณ‘ํ•ฉํ•œ dev e5be98712f6b435917b297447200ef50e7adb493์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ทธ ์†Œ์Šค๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ํ•œ ๋ช…๋ น ์กฐ๋ฆฝ ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ํƒœ๊ทธ ์†Œ์Šค์™€ ๊ฐœ๋ฐœ ์†Œ์Šค๋Š” version --build --json์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ด์ „ ๊ณต๊ฐœ ์‹คํ–‰ ํŒŒ์ผ: 0.6.16

0.6.16 ๊ฐœ๋ฐœํŒ์€ Linux amd64, macOS amd64ยทarm64, Windows amd64 ์‹คํ–‰ ํŒŒ์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. gooo init --template diagnostic, ์ €์žฅํ•œ ์กฐ๋ฆฝ ์ด์–ด๊ฐ€๊ธฐ, ํ˜ธ์ถœ ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ๊ณ„์‚ฐ์‹ยท๋ ˆ์ฝ”๋“œ ์กฐ๋ฆฝ, ์กฐ๊ฑด์‹ยท๋Œ€์ž…์‹ ๋นˆ์นธ ๋ฌถ์Œ๊ณผ ์‹ค์ œ ํ˜ธ์ถœ์˜ ๊ณ„์‚ฐ ์‹คํŒจ ํ›„ ์ด์–ด๊ฐ€๊ธฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹ค์ œ ์‹คํ–‰์—๋Š” Go 1.27.1์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ง„๋‹จ ๋„๊ตฌ ๋”ฐ๋ผ ํ•˜๊ธฐ์—์„œ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ธฐ๋Œ€ ์ถœ๋ ฅ์„ ํ™•์ธํ•œ ๋’ค ์ €์žฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒˆ ์ž…๋ ฅ์— ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Gooo ์„ ์–ธยท์‹คํ–‰ ๊ธฐ๋กยท์ž‘์€ ์ž์ฒด ๋ชจ๋ธ์˜ ์—ญํ• ์„ ๊ฐ™์€ ์˜ˆ์ œ๋กœ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฐฐํฌ์™€ ์„ค์น˜ ๊ด€์ธก์—์„œ ๋ฒ„์ „๋ณ„ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๊ณต๊ฐœ ์‹คํ–‰ ํŒŒ์ผ์˜ ๊ด€์ธก์—์„œ๋Š” ์™„์ „ํ•œ ์ถœ๋ ฅ๊ณผ ์ผ๋ถ€๋งŒ ๋งžํžŒ ๊ฒฐ๊ณผ๋ฅผ ํ•จ๊ป˜ ์ฝ์Šต๋‹ˆ๋‹ค. ๋ฐœ์ „ ๋ฐฉํ–ฅ์€ ์ด ๋„๊ตฌ์—์„œ ๋“œ๋Ÿฌ๋‚œ ์–ธ์–ด์˜ ๋ถ€์กฑ์„ ๋‹ค์Œ ๊ตฌํ˜„์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ณธ๋ฌธ ์˜ˆ์ œ์˜ ๊ณ ์ • ์†Œ์Šค

์ˆซ์žยท๋…ผ๋ฆฌยท๋ฌธ์ž์—ด ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ณ  ์งง์€ ๋ช…๋ น์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด ์ž‘์€ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ ํ•จ์ˆ˜ยท์ง„๋‹จยท์ƒˆ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ ค๋ฉด Gooo ์ƒํƒœ๊ณ„ ๋„๊ตฌ์˜ ์„ธ ๋ช…๋ น์„ ๋”ฐ๋ผํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดํ•˜ ๋ณธ๋ฌธ ์˜ˆ์ œ๋Š” 10์›” 5์ผ์˜ main f144dddb๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น go.mod๋Š” Go 1.27.1ยทSDK v0.2.24๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์˜ˆ์ œ์˜ ๋งํฌ์™€ ๊ด€์ธก์€ ๊ฐ ์†Œ์Šค ์‹œ์ ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ์—์„œ ์ƒˆ ๋ฐฐํฌ ๊ทผ๊ฑฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ํด๋”์— ์˜ˆ์ œ์šฉ ์†Œ์Šค๋ฅผ ๋ฐ›์„ ๊ฒฝ์šฐ:

git clone --depth 1 https://github.com/kimjooyoon/meta-ontology-go.git
cd meta-ontology-go
git fetch --depth 1 origin f144dddb8261b9b525181dee510afc65f1603153
git switch --detach FETCH_HEAD

์ด๋ฏธ ์ž‘์—… ์ค‘์ธ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž์‹ ์˜ ๋ณ€๊ฒฝ์„ ๋ณด์กดํ•˜๊ณ  ์‚ฌ์šฉํ•  ๋ฆฌ๋น„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ•œ ํŒŒ์ผ์— ์กฐ๋ฆฝ ๊ทœ์น™์„ ๋‘๊ณ  ์ƒ์„ฑยท์‹คํ–‰ํ•˜๊ธฐ

์†Œ์Šค์˜ assembling ์„ ์–ธ์ด ์กฐ๋ฆฝ ๊ทœ์น™๊ณผ ์„ ํƒ ์˜ˆ์‹œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์‹คํ–‰์—์„œ ํ™•์ธํ•  ๊ธฐ๋Œ€๊ฐ’์„ ๋”ฐ๋กœ ์ฃผ๊ณ , ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋นŒ๋“œํ•ด ํ•œ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ๊ณ ์ • ์†Œ์Šค์˜ ๋ฃจํŠธ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gooo_go_bin="$(GOTOOLCHAIN=go1.27.1 go env GOROOT)/bin/go"
"$gooo_go_bin" version
GOWORK=off "$gooo_go_bin" build -trimpath -o gooo ./cmd/gooo
./gooo body-path-run \
  --source examples/body-codegen/source-assembly.gooo.fixture \
  --activity Clamp \
  --cases examples/body-codegen/source-assembly-clamp-cases.json \
  --repeat 2 --timing --out clamp-results
./gooo body-path-run --verify-timing --out clamp-results

clamp-results๋Š” ์ƒˆ ์ถœ๋ ฅ ํด๋” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ๋กœ๋Š” ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” run-N-generated.go, ํ˜„์žฌ ๊ธฐ๋Œ€๊ฐ’์˜ ์ถฉ์กฑ ์ˆ˜์™€ ๋ถ„๋ชจ๋Š” summary.json์—์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์˜ ๋ณ„๋„ ์‹คํ–‰ ๊ธฐ๋Œ€๊ฐ’์€ int64 ๊ฒฝ๊ณ„๋ฅผ ํฌํ•จํ•œ ์ผ๊ณฑ ๊ฐœ์ž…๋‹ˆ๋‹ค. ์„ ์–ธ ๋ฌธ๋ฒ•๊ณผ ๊ด€์ธก ยท ๋ชจ๋ธ ์—ฐ๊ฒฐยทํ•œ์˜ ์ง€์‹œยท์ถœ๋ ฅ ์ฝ๊ธฐ.

๋นŒ๋“œํ•  ๋•Œ Go1.27.1์„ ์„ ํƒํ•ด๋„ PATH์˜ ๊ธฐ๋ณธ go๊ฐ€ ๋ฐ”๋€Œ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์‹คํ–‰์€ ์ด๋ฏธ ์„ค์น˜๋œ ์ •ํ™•ํ•œ Go1.27.1์„ ์ฐพ์Šต๋‹ˆ๋‹ค. --go-bin์œผ๋กœ ์›ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์—ฐ๊ฒฐ ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋ ค๋ฉด ๋ณ€๊ฒฝ์ด ์—†๋Š” Git ์ฒดํฌ์•„์›ƒ์—์„œ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. go install ...@revision์œผ๋กœ ๋ฐ›์€ ์‹คํ–‰๊ธฐ๋Š” ๋ชจ๋“ˆ ๋ฒ„์ „์„ ๋ณด๊ด€ํ•˜์ง€๋งŒ, ์ด๋ฒˆ ๊ด€์ธก์—์„œ๋Š” Git ๋ฆฌ๋น„์ „์ด ๋‚ด์žฅ๋˜์ง€ ์•Š์•„ ๊ฒฐ๊ณผ์˜ ์†Œ์Šค ํ•ญ๋ชฉ์ด UNBOUND_LOCAL_SOURCE์˜€์Šต๋‹ˆ๋‹ค. ๋‘ ์„ค์น˜ ๋ฐฉ์‹ยท์›๋ž˜ ๋„๊ตฌ ์˜ค๋ฅ˜ยท์‹ค์ œ ๊ฒฐ๊ณผ.

์—ฌ๋Ÿฌ ๋ณธ๋ฌธ์„ ์—ฐ๊ฒฐํ•ด ์‹คํ–‰ํ•˜๊ธฐ

์œ„์—์„œ ๋นŒ๋“œํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ •์ˆ˜ยท์ฐธ๊ฑฐ์ง“ยทํ…์ŠคํŠธ ์ผ๊ณฑ ํ™œ๋™์„ ํ•œ ๋ฒˆ์— ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

./gooo body-compose \
  --source examples/body-codegen/native-composition.gooo.fixture \
  --cases examples/body-codegen/native-composition-cases.json \
  --out composition-results

์ƒˆ ํด๋”์— ์›๋ณธยท์„ ํƒ๋œ Goooยท์ƒ์„ฑ ํ•จ์ˆ˜ยท์—ฐ๊ฒฐ ์ฝ”๋“œยท์‹ค์ œ ์‹คํ–‰ ๊ธฐ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” ๊ฒฐ์ •๋ก ์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ ํŒŒ์ผ์„ ์ค€๋น„ํ–ˆ๋‹ค๋ฉด --model path/to/model.json์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ ๊ธฐ๋ก์˜ ์žฌ์‹คํ–‰๊ณผ ๊ธฐ๋Œ€๊ฐ’ ๋ถ„๋ชจ๋Š” ์‹ค์ œ ๋ณธ๋ฌธ ์—ฐ๊ฒฐ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ž…๋ ฅ์„ ํ•ฉ๋ฅ˜์‹œํ‚ค๊ธฐ

๊ฐ™์€ Integer ํƒ€์ž…์˜ ๋‘ ์œ„์น˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ , ์ž…๋ ฅ ์ผ๋ถ€๋งŒ ์—ฐ๊ฒฐํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

./gooo body-compose \
  --source examples/body-codegen/native-input-joins.gooo.fixture \
  --cases examples/body-codegen/native-input-joins-cases.json \
  --out input-joins-results

์—ฌ๋Ÿฌ ์ž…๋ ฅ์€ input0, input1์ฒ˜๋Ÿผ ์„ ์–ธ ์ˆœ์„œ๋Œ€๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ„์น˜์˜ ์‚ฌ๋ก€ ํ‚ค๋Š” Label.input1๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ํ•˜๋‚˜๋Š” ๊ธฐ์กด input๊ณผ ํ™œ๋™ ์ด๋ฆ„์˜ ์‚ฌ๋ก€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ์—ฐ๊ฒฐ, ์ €์žฅ ๊ธฐ๋ก๊ณผ ์‹ค์ œ ๊ฐ’ ์ฝ๊ธฐ๋Š” ์—ฌ๋Ÿฌ ์ž…๋ ฅ์˜ ํ•ฉ๋ฅ˜ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๊ธฐ๋ก์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ ๋ณธ๋ฌธ์— ์ „๋‹ฌํ•˜๊ธฐ

์ œ๋ชฉยท์ƒํƒœ๋ฅผ ๋‹ด์€ ๊ธฐ๋ก์„ ๋งŒ๋“ค๊ณ , ๋‹ค์Œ ํ™œ๋™์—์„œ ํ•„๋“œ๋ฅผ ์ฝ๋Š” ์—ฌ์„ฏ ํ™œ๋™ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

./gooo body-compose \
  --source examples/body-codegen/native-records.gooo.fixture \
  --cases examples/body-codegen/native-records-cases.json \
  --out record-results

๊ธฐ๋ก ์ƒ์„ฑ์ž, ํ•„๋“œ ์ฝ๊ธฐ, ์ง€์—ญ๊ฐ’ ์ „์ฒด ๊ต์ฒด์™€ ๊ธฐ๋ก ๋น„๊ต๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ œ๊ณตํ•œ ์—ฌ์„ฏ ์‚ฌ๋ก€์˜ ์ด๋ฆ„ ์žˆ๋Š” ์ถœ๋ ฅ ๊ธฐ๋Œ€๊ฐ’์€ 36๊ฐœ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ํ•„๋“œ๊ฐ’๊ณผ ๋ฏธ์ถฉ์กฑ ๋ถ€๋ถ„์˜ ์š”์•ฝ์€ ๊ธฐ๋ก ์ „๋‹ฌ ๊ฐ€์ด๋“œ์—์„œ ์ฝ์Šต๋‹ˆ๋‹ค.

์ž‘์€ ์ž์ฒด ๋ชจ๋ธ๋กœ ์‹ค์ œ ํ•„๋“œ๋ฅผ ์กฐ๋ฆฝํ•˜๊ธฐ

์ œ๋ชฉยท์ƒํƒœยท์‚ฌ์œ ์˜ ํ›„๋ณด์‹์„2,072๊ฐœ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ณต์œ  ๋ชจ๋ธ์ด ํ•œ ๋ฒˆ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ๋นŒ๋“œํ•œ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ณต๊ฐœ ๋„ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

hf download asketeddy/gooo-record-shared-field-tiny-v1 \
  models/qat_ternary/model.json models/qat_ternary/weights.bin \
  demo.gooo.fixture demo-cases.json \
  --revision 87f8c482d23dc0eaa41f5575f652e7ca61f44280 \
  --local-dir ./gooo-field-model
./gooo body-compose --source ./gooo-field-model/demo.gooo.fixture \
  --cases ./gooo-field-model/demo-cases.json \
  --model ./gooo-field-model/models/qat_ternary/model.json \
  --out field-results > field-result.json

์˜ˆ์ œ์˜ ์˜ˆ์‚ฐ์€8์ด๋ฉฐ, ์‹ค์ œ ๊ด€์ธก์€ ์„ ํƒ15/15ํ•„๋“œยท์ƒˆ ์ž…๋ ฅ8/8์ถœ๋ ฅยท12/12ํ•„๋“œ์ž…๋‹ˆ๋‹ค. --model์„ ๋นผ๋ฉด ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ ์˜ˆ์‹œ์™€ ๋Ÿฐํƒ€์ž„ ์ž…๋ ฅ์˜ ๋ถ„๋ชจ๋ฅผ ๋”ฐ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ ๋ ˆํฌ์˜record-completeness ๋„๊ตฌ๋Š” ์งง์€ ์ถฉ์กฑ๋ฅ ๊ณผ ๋‚จ์€ ํ•„๋“œ ์ด๋ฆ„ยท์‹ค์ œ ๊ฐ’ยท๊ธฐ๋Œ€๊ฐ’์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ชจ๋ธ ์ฝ๊ธฐ์˜--text๋Š” ํ›„๋ณด์‹๋ณ„ ํ™•๋ฅ ์„ ํ‘œ์‹œํ•˜๋ฉฐ ์ด ๊ฐ’๊ณผ ๊ธฐ๋Šฅ์˜ ์™„์ „์„ฑ์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋„ค ํŒŒ์ผ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ ์ฝ๊ธฐ๊นŒ์ง€ ยท ๊ณต์œ  ํŒ๋‹จ์˜ ์„ฑ๊ณผยทํ‡ดํ–‰.

1. ์„ ์–ธ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ

๊ฒฐ์ œ ์˜ˆ์ œ๋Š” ์ฃผ๋ฌธ๊ณผ ๊ฒฐ์ œ ์ˆ˜๋‹จ์„ ๋ฐ›์•„ ๊ฒฐ์ œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

go run ./cmd/gooo check examples/billing/main.gooo

์„ฑ๊ณตํ•˜๋ฉด ์„ ์–ธ์˜ ์ด๋ฆ„ยท์ฐธ์กฐยท์˜๋ฏธ ๊ด€๊ณ„๋ฅผ ๊ฒ€์‚ฌํ–ˆ๋‹ค๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฝ์„ ๊ด€๊ณ„๋Š” PayOrder used Order, PayOrder used PaymentMethod, Payment wasGeneratedBy PayOrder์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฒฐ์ œ ํ˜ธ์ถœ์€ ๊ตฌํ˜„๊ณผ ์‹คํ–‰ ๋‹จ๊ณ„์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

2. Go ๊ตฌ์กฐ ์ƒ์„ฑํ•˜๊ธฐ

out="$(mktemp -d)"
go run ./cmd/gooo generate examples/conformance/main.gooo --out "$out"

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

3. ์กฐ๊ฑด๊ณผ ํ• ๋‹น์ด ์žˆ๋Š” ๋ฐ”๋”” ์ƒ์„ฑํ•˜๊ธฐ

์ €์žฅ์†Œ์— ์žˆ๋Š” ClampBelowZero ์›๋ณธ์€ ์ง€์—ญ ๋ณ€์ˆ˜, ๋Œ€์ž…๊ณผ ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

go run ./cmd/gooo body-codegen --activity ClampBelowZero \
  examples/body-codegen/main.gooo.fixture

ํƒ€์ž…๊ณผ ์ง€์› ๋ฌธ๋ฒ•์„ ํ™•์ธํ•œ ๋’ค Go ํ•จ์ˆ˜๊ฐ€ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์›๋ณธ ํŒŒ์ผ์— ๊ฒฐ๊ณผ๋ฅผ ์“ฐ๋Š” ์ž‘์—…์€ ํ˜ธ์ถœ์ž๊ฐ€ ๋ณ„๋„๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑดยท๋Œ€์ž…์„ ์—ฌ๋Ÿฌ ์ค„๋กœ ์ง์ ‘ ์ž‘์„ฑํ•œ ์˜ˆ์ œ๋„ ๋ฐ”๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

go run ./cmd/gooo body-codegen --activity ClampBelowZero \
  examples/body-codegen/raw-computes.gooo.fixture

์ „์ฒด ์†Œ์Šค์™€ ๋ฌธ์ž์—ด ๊ทœ์น™์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. ์„ค์น˜๋ณธ์—์„œ ์ด ๋ฐ”๋””๋ฅผ ๋ณ„๋„๋กœ ์ปดํŒŒ์ผยท์‹คํ–‰ํ•ด int64 ๊ฒฝ๊ณ„๊ฐ’์„ ํฌํ•จํ•œ 8/8 ๊ธฐ๋Œ€๊ฐ’์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ์—†์ด ํ—ˆ์šฉ๋œ ์กฐ๋ฆฝ ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์˜ˆ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

go run ./cmd/gooo body-codegen --json \
  --path-plan examples/body-codegen/typed-path-compound-plan.json \
  --activity Combined examples/body-codegen/typed-path-compound.gooo.fixture

์ด ๊ฒฝ๋กœ๋Š” ๊ณ„ํš์— ์„ ์–ธ๋œ ํ›„๋ณด์™€ ์œ ํ•œ ์˜ˆ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ --path-model์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํ˜ธํ™˜๋˜๋Š” ๋กœ์ปฌ ๋ชจ๋ธ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ค‘์น˜ ๋‹ค์šด๋กœ๋“œ์™€ ํŒŒ์ผ ์„ ํƒ์€ ๋ชจ๋ธ ์‚ฌ์šฉ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

4. ๊ฒฐ๊ณผ์˜ ์‹คํ–‰ ๋ฒ”์œ„ ์ฝ๊ธฐ

go run ./cmd/gooo run --entry PayOrder --json examples/billing/main.gooo

์ด ๋‹จ์ผ ์†Œ์Šค ์˜ˆ์ œ์˜ DECLARATION_RESOLUTION_ONLY ๊ฒฐ๊ณผ๋Š” ์„ ์–ธ์˜ ์ž…๋ ฅยท์ถœ๋ ฅ ์ „์ด๋ฅผ ํ•ด์„ํ•œ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ Go๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•œ ๊ด€์ธก์€ ๋ณ„๋„ ๊ฒฐ๊ณผ์— ๋‚จ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ณ„์•ฝ.

๋‹ค์Œ ๋‹จ๊ณ„

ํ•œ๊ตญ์–ด ์ง€์‹œ๋กœ ๋‘ ์—ฐ์‚ฐ์˜ ์ˆœ์„œ๋ฅผ ์กฐ๋ฆฝํ•˜๊ณ  ์‹ค์ œ ์‹คํ–‰๊นŒ์ง€ ํ•ด๋ณด๋ ค๋ฉด ์ „์ฒด ํ›„๋ณด ์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gooo ์†Œ์Šค, ์งง์€ ๋ ˆ์‹œํ”ผ, ๊ธฐ๋Œ€๊ฐ’๊ณผ ๊ณต๊ฐœ 16 KiB ๋ชจ๋ธ์ด ํ•จ๊ป˜ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ณธ์˜ โ€œ๋”ํ•œ ๋‹ค์Œ ๊ณฑํ•œ๋‹คโ€๋ฅผ โ€œ๊ณฑํ•œ ๋‹ค์Œ ๋”ํ•œ๋‹คโ€๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. --path-model์„ ์ƒ๋žตํ•˜๋ฉด ๊ฐ™์€ ํ›„๋ณด์™€ ์˜ˆ์‹œ์—์„œ ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์˜ˆ์ œ๋Š” ์ด์ œ Go ๋ช…๋ น ํ•˜๋‚˜๋กœ ์ƒ์„ฑ๊ณผ ์‹ค์ œ ์‹คํ–‰์„ ์ด์–ด์„œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ ์ €์žฅ์†Œ ๋ฃจํŠธ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

out_root="$(mktemp -d)"
go run ./cmd/order-example \
  --model publication/order-judge-initial-20261003/model.json \
  --out "$out_root/model"

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

๋ฐ˜๋ณต ์กฐ๋ฆฝ์€ ์œ„ ๊ณ ์ • main์— ํฌํ•จ๋œ gooo body-path-stream์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„ ์›Œ์ปค ๋นŒ๋“œ ์—†์ด JSON ํ•œ ์ค„์— ํ•œ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์ค€๋น„๋˜๋Š” ๊ฒฐ๊ณผ๋ถ€ํ„ฐ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ์—ฐ๊ตฌ ์ €์žฅ์†Œ์˜ ๋ฃจํŠธ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gooo body-path-stream --workers 1 \
  --model publication/order-judge-initial-20261003/model.json \
  < examples/whole-candidate-order/worker-requests.jsonl \
  > /tmp/gooo-order-stream-results.jsonl

์—ฌ๊ธฐ์„œ gooo๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ์ €์žฅ์†Œ์—์„œ go build -o gooo ./cmd/gooo๋กœ ๋นŒ๋“œํ•œ ์‹คํ–‰ ํŒŒ์ผ์„ PATH์— ๋‘” ๊ฒƒ์ž…๋‹ˆ๋‹ค. --model์„ ์ƒ๋žตํ•˜๋ฉด ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ค„์˜ status์™€ correlation_id๋ฅผ ํ™•์ธํ•˜๊ณ , ์‹ค์ œ ์ƒ์„ฑ ์ฝ”๋“œ๋Š” response.source์—์„œ ์ฝ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ ์ •๋ณด๋Š” ํ‘œ์ค€ ์˜ค๋ฅ˜์— ๋‚˜์˜ต๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ๊ฒฐ๊ณผ๋Š” ์ค€๋น„๋˜๋Š” ์ˆœ์„œ๋กœ ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์š”์ฒญ์˜ ์ƒ์„ฑยท์‹คํ–‰ ์˜ˆ์ œ ยท main ๋ณ‘ํ•ฉยท์„ค์น˜ยท32/32 ์‹คํ–‰ ๊ธฐ๋Œ€๊ฐ’์˜ ์›๋ณธ.

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

์•ž์„  eb8477d5 ๊ฐฑ์‹ ์—์„œ๋Š” ํ•ด๋‹น ๊นจ๋—ํ•œ ์„ค์น˜๋ณธ์œผ๋กœ ์„ ์–ธ ๊ฒ€์‚ฌ, ๊ตฌ์กฐ ์ƒ์„ฑ, ์กฐ๊ฑด ๋ฐ”๋”” ์ƒ์„ฑ, ๋‹จ์ผ ์†Œ์Šค ์‹คํ–‰๊ณผ ์ƒˆ ํŒŒ์ผ ์กฐ๋ฆฝยท์‹คํ–‰์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ raw ๋ฐ”๋””์˜ 1,024/1,024 ๊ธฐ๋Œ€๊ฐ’๊ณผ ๋ณ„๋„ clamp 8/8, ์ƒ์„ฑยท์‹คํ–‰ ๊ธฐ๋ก ๋น„๊ต๋„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ž์„  ์ŠคํŠธ๋ฆผ ๋ช…๋ น์˜ ์„ค์น˜ ๊ด€์ธก์€ ๊ฐ ์ ˆ์˜ ๊ณต๊ฐœ ๊ธฐ๋ก์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ƒ์„ฑ๊ณผ ์‹ค์ œ ์‹คํ–‰์„ ํ•œ ์ŠคํŠธ๋ฆผ์—์„œ ์ด์–ด๊ฐ€๊ธฐ

์œ„์˜ ์„ค์น˜๋ณธ๊ณผ ์—ฐ๊ตฌ ์ €์žฅ์†Œ์—์„œ๋Š” ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ํŒŒ์ผ๋„ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

out_root="$(mktemp -d)"
go run ./cmd/order-example --retain-native \
  --model publication/order-judge-initial-20261003/model.json \
  --out "$out_root/model"

--model์„ ์ƒ๋žตํ•˜๋ฉด ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐ”๋””์˜ ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์€ ์‹คํ–‰ํŒŒ์ผ์„ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ํ˜„์žฌ ์ž…๋ ฅ์€ ์ƒˆ๋กœ ๋‘ ๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. passed/total์€ ํ˜„์žฌ ๊ธฐ๋Œ€๊ฐ’์˜ ์ถฉ์กฑ ์ˆ˜์ž…๋‹ˆ๋‹ค. response_ms๋Š” ์ƒ์„ฑยท์‹คํ–‰์„ ํฌํ•จํ•˜๊ณ , execution_ms๋Š” ๊ทธ ์•ˆ์˜ ์‹คํ–‰ ๊ตฌ๊ฐ„์ด๋ฏ€๋กœ ๋‘˜์„ ๋”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›๋ณธยท์ƒ์„ฑ Goยท์‹ค์ œ ๊ฒฐ๊ณผ๊ฐ€ ํด๋”์— ๋‚จ์Šต๋‹ˆ๋‹ค.

์ด ์ ˆ์˜ ์•ž์„  8c6ec01c ์„ค์น˜ ๊ด€์ธก์—์„œ ๋ชจ๋ธยท๊ฒฐ์ •๋ก  ๊ฒฝ๋กœ์˜ 4ํšŒ ์ƒ์„ฑยท8ํšŒ ์‹ค์ œ ์‹คํ–‰๊ณผ 32/32 ๊ธฐ๋Œ€๊ฐ’์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ์‘๋‹ต์€ ์•ฝ 30ms์˜€๊ณ , ์ฒซ ๋ชจ๋ธ ์‘๋‹ต 1.27์ดˆ๋„ ํ•จ๊ป˜ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๊ธฐ๋Œ€๊ฐ’์—์„œ๋Š” ํ•ฉ๊ฒฉ์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ–ˆ๊ณ  ์ž˜๋ชป๋œ ํ˜•์‹์€ ์ƒ์„ฑ ์ „์— ๊ฑฐ๋ถ€๋์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•ยทCI ์›๋ณธยท์„ค์น˜ ์ง€๋ฌธยท๋ชจ๋“  ๊ฒฐ๊ณผ.