Reusable Diagnostic Tools - kimjooyoon/meta-ontology-go GitHub Wiki
Gooo ์ง๋จ ๋๊ตฌ ๋ง๋ค๊ณ ์ฌ์ฌ์ฉํ๊ธฐ
์ ๋ฐ์ดํธ: 2026-10-08 KST. ์๋ ์คํ๋ฒ์ ๊ฐ ๊ด์ธก ๋น์์ ๋ฒ์ ๊ณผ ์์ค๋ฅผ ์ ์งํฉ๋๋ค. ์ ๋ฐฐํฌ๋ ํ์ฌ ์ํ์์ ํ์ธํฉ๋๋ค.
0.6.10 ๋ก์ปฌ ํ๋ณด์์ ๊ฐ์ ์์ ๋ช
๋ น์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์๋ก ์์ฑํ์ต๋๋ค.
๊ณ ์ ์์์ ์์ฒด ๊ทธ๋ํ ๋ชจ๋ธ ๋ชจ๋ ์กฐ๋ฆฝ ์ฌ๋ก 5/5ยทํ๋ ์ถ๋ ฅ 8/8์ ๋งํ๊ณ ,
๋ ๋ฐฉ์ ๋ชจ๋ ๋ค ํ๋ณด๋ฅผ ์๋ํ์ต๋๋ค. ์ ์ฅ ์ฌ์คํ์ ์ถ๋ ฅ๋ ๊ฐ์์ผ๋ฉฐ,
๊ธฐ๋๊ฐ ์์ด ์ ์
๋ ฅ ์ธ ๊ฑด์ ์ฒ๋ฆฌํ ์คํ์ OBSERVED์ ์ ๋ชจ๋ธ ํธ์ถ 0ํ๋ฅผ ๊ธฐ๋กํ์ต๋๋ค.
์์ฑ๋ ์ฌ์ฏ ํ์ผ๊ณผ ์ค์ ์คํ ๊ธฐ๋ก.
| ์์์ | ๊ณ ์ ์์ค | ํด๋ณผ ์ผ |
|---|---|---|
| ํ ํ๋ฆฟ ์ต์ด ๋ฐฐํฌ ๊ด์ธก | 0.6.6 ๊ฐ๋ฐํ, 86d218f0 |
์ฌ์ฏ ํ์ผ์ ์์ฑํด ์์ ์ ์ง๋จ ๋๊ตฌ๋ก ์์ |
| ์ด์ ๋ฐฐํฌ ๊ด์ธก ์์ | 0.6.5 ๊ฐ๋ฐํ, 07715764 |
๊ฐ์ ๋ฒ์ ์ ์ ์ฅ ํ๋ก๊ทธ๋จ์ ์คํยท์ค๋ช |
์์ ๊ณต๊ตฌ๋ฅผ ํ ๋ฒ ์กฐ๋ฆฝํด ์์ ๋์ ๋๊ณ ์ฐ๋ ํ๋ฆ์ ๋๋ค. Gooo ์์ค์๋ ์ง๋จ ์กฐ๊ฑด, ๋ณ์ ๋์ ๊ณผ ์ถ๋ ฅ ํ๋์ ์ ํ์ง๊ฐ ์์ต๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ์ค ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๊ณ , ์ ์ฅํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ๋ ฅ์๋ ์ฌ์ฉํฉ๋๋ค.
์ ํ๋ก์ ํธ๋ฅผ ๋ฐ๋ก ๋ง๋ค๊ธฐ
Go 1.27.1์ ์ค๋นํ๊ณ 0.6.6 ๋ฐฐํฌ ํ์ด์ง์์
ํธ์คํธ์ ๋ง๋ ์คํ ํ์ผ์ ๋ฐ์ PATH์ ๋ก๋๋ค. SHA256SUMS๋ก ํ์ผ์ ํ์ธํฉ๋๋ค.
์๋ ๋ช
๋ น์ ๋ฐฐํฌํ์ ํฌํจ๋ ํ
ํ๋ฆฟ์ผ๋ก ์์ํฉ๋๋ค.
gooo version --build --json
gooo_go_bin="$(GOTOOLCHAIN=go1.27.1 go env GOROOT)/bin/go"
gooo init --template diagnostic --module example.org/team/diagnostic my-diagnostic
cd my-diagnostic
gooo package execute --json --go "$gooo_go_bin" --cases cases.json gooo.workspace.json > execution.json
gooo package replay --receipt execution.json --go "$gooo_go_bin" --inputs inputs.json gooo.workspace.json
diagnostics.gooo์ ์กฐ๊ฑดยท๋์
ยท์ธ ํ๋ ์ ํ์งยท๋ค์ฏ ์กฐ๋ฆฝ ์ฌ๋ก๊ฐ ๋ค์ด๊ฐ๋๋ค.
app.gooo๋ ์ด๋ฅผ ๊ฐ์ ธ์ ์ค๋ช
์ ๋ง๋ญ๋๋ค. ๋๋จธ์ง ํ์ผ์ ํจํค์ง ์ฐ๊ฒฐ,
์คํ ๊ธฐ๋๊ฐ, ์ถ๊ฐ ์
๋ ฅ๊ณผ README์
๋๋ค. ์ด๋ฏธ ์๋ ํด๋๋ฅผ ๋ฎ์ด์ฐ์ง ์์ผ๋ฏ๋ก
์ ํด๋ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค. ์ ์ฒด ํด๋์ ์คํ ๊ธฐ๋ก์ ํจ๊ป ์ฎ๊ฒจ๋ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ณต๊ฐ 0.6.6 macOS arm64 ์คํ ํ์ผ์์๋ ๊ฒฐ์ ๋ก ยท์์ฒด ๋ชจ๋ธ ๊ฒฝ๋ก๊ฐ ๋ชจ๋ ์ถ๋ ฅ ๊ธฐ๋๊ฐ 8/8์ ์ถฉ์กฑํ์ต๋๋ค. ์ ๋ ฅ๋ง ๋ฃ์ ์ ์ฅ ์ฌ์คํ์ ์ถ๊ฐ ์ถ๋ก 0ํ๋ก ์ค์ ๊ฐ์ ๋จ๊ฒผ์ต๋๋ค. ํ์ฌ ๋ฐฐํฌ์ ์๋ณธ๊ณผ ์ธก์ ๋ฒ์๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
์ด์ ํ ํ๋ฆฟ ์์ค์ ์ค์น ๊ด์ธก
์์ dev 25df2948 ์์ค๋ฅผ Go ๋ชจ๋ ๋ฐฉ์์ผ๋ก ์ค์นํด ์ค์ ์์ฑํ ํ๋ก์ ํธ์์ ๊ฒฐ์ ๋ก ยท์์ฒด ๋ชจ๋ธ
๊ฒฝ๋ก์ ํด๋ ์ด๋ ํ ์ ์ฅ ์ฌ์คํ์ ๊ฐ๊ฐ 8/8 ์ถ๋ ฅ ๊ธฐ๋๊ฐ์ผ๋ก ํ์ธํ์ต๋๋ค.
์ถ๊ฐ ์
๋ ฅ ์ธ ๊ฑด์ OBSERVED๋ก ๋ฐํ๋์ต๋๋ค. ์ด ์ค์น๋ณธ์ ์คํ ๊ธฐ๋ก์ Git
๋ฆฌ๋น์ ์ UNBOUND_LOCAL_SOURCE๋ก ํ์ํฉ๋๋ค. ์ค์น ๋ช
๋ น์ ๊ณ ์ ๋ฆฌ๋น์ ๊ณผ
go version -m์ ๋จ์ ๋ชจ๋ ๋ฒ์ ยท์ฒดํฌ์ฌ์ ํจ๊ป ๋ณด๊ดํด ์ค์น ์ถ์ฒ๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐฐํฌํ ์์ : 1. ๊ฐ์ ๋ฒ์ ์ ์์ค์ ์คํ ํ์ผ ์ค๋น
Go 1.27.1๊ณผ Git์ด ์๋ ํ๊ฒฝ์์ ์ ํด๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
git clone --depth 1 --branch v0.6.5-dev https://github.com/kimjooyoon/meta-ontology-go.git gooo-demo
cd gooo-demo
gooo_go_bin="$(GOTOOLCHAIN=go1.27.1 go env GOROOT)/bin/go"
GOWORK=off "$gooo_go_bin" build -trimpath -o gooo ./cmd/gooo
./gooo version --json
๋น๋ ๋์ ๋ฐฐํฌ ํ์ด์ง์
ํธ์คํธ์ ๋ง๋ ํ์ผ์ ๋ฐ์ ๊ฐ์ ์์น์ gooo ์คํ ํ์ผ์ ๋ ์๋ ์์ต๋๋ค.
๋ฐฐํฌ ํ์ผ์ SHA256SUMS๋ก ๋ด๋ ค๋ฐ์ ํ์ผ์ ํ์ธํฉ๋๋ค. ๋ค์ดํฐ๋ธ ์คํ์๋
Gooo ์คํ ํ์ผ๊ณผ ๊ฐ์ ์ด์์ฒด์ ยท์ํคํ
์ฒ์ Go ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค.
์๋ ๋ช
๋ น์ POSIX ์
ธ ๊ธฐ์ค์ด๋ฉฐ Windows ์คํ ํ์ผ ์ด๋ฆ์ gooo.exe์
๋๋ค.
๋ฐฐํฌํ ์์ : 2. ์ง๋จ ๊ท์น์ ์กฐ๋ฆฝํ๊ณ ์ ์ฅ
./gooo package execute --json --go "$gooo_go_bin" \
--cases examples/package-diagnostic-replay/cases.json \
examples/package-diagnostic-replay/gooo.workspace.json > diagnostic-execution.json
diagnostics.gooo.fixture๋
๋ง์ถ ์ถ๋ ฅ ์, ์ ์ฒด ์ถ๋ ฅ ์, ํ๋ฝ ํ๋ณด ์์ ์ค๋ช
์ ์
๋ ฅ์ผ๋ก ๋ฐ์ต๋๋ค.
Gooo์ ์กฐ๊ฑด์ด ์๋ฃยท๋ถ๋ถ ์ถฉ์กฑยท๊ด์ธก ๋ถ์กฑยท์๋ชป๋ ์๋ฅผ ๊ตฌ๋ถํ๊ณ , ๋ค๋ฅธ Gooo
ํจํค์ง๊ฐ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์ฅ์ผ๋ก ๋ง๋ญ๋๋ค. ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ ๊ฒฐ์ ๋ก ์ ์
๋๋ค.
์์ค ์์ ์กฐ๋ฆฝ ์ฌ๋ก๋ 5๊ฐ, ๋ณ๋ ์คํ ํ์ผ์ ์ ๋ ฅ ํ์ 4๊ฐ์ด๋ฉฐ ํ๋ ์ถ๋ ฅ ๊ธฐ๋๊ฐ์ 8๊ฐ์ ๋๋ค. ๊ฐ๊ฐ ๋ฌด์์ ์ผ ์์ธ์ง ์คํ ๊ธฐ๋ก์ ๋จ์ต๋๋ค.
๋ฐฐํฌํ ์์ : 3. ์ ์ ๋ ฅ์ผ๋ก ๊ณ์ ์ฌ์ฉ
./gooo package replay --receipt diagnostic-execution.json --go "$gooo_go_bin" \
--inputs examples/package-diagnostic-replay/inputs.json \
examples/package-diagnostic-replay/gooo.workspace.json
์ ๋ ฅ ํ ์ธ ๊ฐ์ ๊ฐ์ ๋ฐํํ๋ฉฐ, ๊ทธ์ค ํ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
"partial: missing branch result [repair-and-replay]"
์
๋ ฅ ํ์ผ์ ๋ฐ๊ฟ ์์ ์ ์์น์ ์ค๋ช
์ ์ ๋ฌํ ์ ์์ต๋๋ค. ์
๋ ฅ๋ง ๋ฐ๊พธ๋ฉด
์ ํ๋ณด ํ์ ์์ด ์ ์ฅํ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํฉ๋๋ค. ์์ค์ ๊ท์น์ ๋ฐ๊ฟจ๋ค๋ฉด
๋ค์ ์กฐ๋ฆฝํด ์ ๊ธฐ๋ก์ ๋ง๋ญ๋๋ค. --json์ ํ์ฌ ์คํ ๊ด์ธก์ ์ ์ฅํ ๋ ์๋๋ค.
๊ธฐ๋ ์ ๋ต ์์ด ์คํํ ๊ฒฐ๊ณผ๋ OBSERVED์ด๋ฉฐ ์ ๋ต๋ฅ ์ ๋ง๋ค์ง ์์ต๋๋ค.
๋ฐํํ ๋ค์ ์์ ์ ๋ค๋ฅธ ๋๊ตฌ๊ฐ ์๋นํ ์ ์๋ ๋ฐ์ดํฐ์ ๋๋ค. ์ด ์์ ์์๋ ์ง๋จ ๋ฉ์์ง๊น์ง ๊ณ์ฐํฉ๋๋ค.
๋ฐฐํฌํ ์์ : 4. ์กฐ๋ฆฝ ๊ณผ์ ์ Gooo๋ก ์ค๋ช
./gooo package execute --json --go "$gooo_go_bin" \
--construction-receipt diagnostic-execution.json \
examples/assembly-explainer/gooo.workspace.json
Gooo ์ค๋ช ๋๊ตฌ๊ฐ ๋น์์ ์ถฉ์กฑ ์ฌ๋ก ์์ ๋จ์ ์์ฐ์ ์ฝ๊ณ โ๊ด์ธกํ ๋ ๋์ ํ๋ณด ์ฌ์ฉโ, โ๋ค๋ฅธ ํ๋ณด ๊ณ์ ํ์โ, โ์ ์ ๋ ฅ ๊ด์ธกโ ๊ฐ์ ๋ค์ ์์ ์ ๋ฐํํฉ๋๋ค. ์ ํ ๊ธฐ์ค๊ณผ ๋ฉ์์ง๋ Gooo ์์ค์ ์์ต๋๋ค. ์ ์ฅํ ํ๋ณดยท์ ์ยท์์ฑ๋ฌผ์ ๋ค์ ํ์ธํ๊ณ ์ค๋ช ํ๋ฉฐ, ์ ์ถ๋ก ํธ์ถ์ 0ํ์ ๋๋ค.
์ ํ์ ์ผ๋ก ์์ฒด ๋ชจ๋ธ ์ฐ๊ฒฐ
์ฒซ ์กฐ๋ฆฝ ๋ช
๋ น์ --assembly-model /path/to/model.json์ ์ถ๊ฐํ๋ฉด ํธํ๋๋
์์ ๋ชจ๋ธ์ด ๊ฐ์ ํ๋ณด์ ์๋ ์์๋ฅผ ์ ์ํฉ๋๋ค.
๊ณต๊ฐ ๊ณต์ QAT ๋ชจ๋ธ์
model.json๊ณผ weights.bin์ ๊ฐ์ ํด๋์ ๋ก๋๋ค. ์ด ๋ชจ๋ธ์ ์๋ก ์ด๊ธฐํํ
๊ฐ์ค์น๋ฅผ Gooo ์๋ฃ๋ก ํ์ตํ์ผ๋ฉฐ ๋งค๊ฐ๋ณ์๋ 2,072๊ฐ์
๋๋ค.
๊ณต๊ฐํ ํ ๊ณผ์ ์ ๊ด์ธก์์ ๊ฒฐ์ ๋ก ๊ฒฝ๋ก๋ 4ํ, ๋ชจ๋ธ ๊ฒฝ๋ก๋ 2ํ ์๋ํ์ต๋๋ค. ๋ชจ๋ธ์ ์ฒซ ์ ์์ ์กฐ๋ฆฝ ์ฌ๋ก 3/5์ ํ๋ 13/15๋ฅผ ๋งํ๊ณ ๋ค์ ํ๋ณด๊ฐ 5/5ยท15/15๋ฅผ ์ถฉ์กฑํ์ต๋๋ค. ์์ชฝ์ ์ค์ ์ถ๋ ฅ ๊ธฐ๋๊ฐ์ 8/8์ด์์ต๋๋ค. ์ถ๋ก ์ฝ 19.9๋ง์ดํฌ๋ก์ด์ ๋ชจ๋ธ ์ค๋น ์ฝ 0.497๋ฐ๋ฆฌ์ด๋ฅผ ๋ฐ๋ก ์ธก์ ํ์ผ๋ฉฐ, ๋จ์ผ ์์ฐจ ๊ด์ธก์ ์บ์ ์กฐ๊ฑด์ ํต์ ํ์ง ์์์ต๋๋ค.
๋ชจ๋ธ์ ๊ต์ฒดํ ๋๋ Gooo๊ฐ ์ ํ ์ ํ์ง์ ๊ฒ์ฌ ๊ธฐ์ค์ ์ ์งํฉ๋๋ค. ์ ํ๋ ์์ฐ์์๋ ์ ํ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก ์คํจ์ ๋ฏธ๊ด์ธก๋ ํจ๊ป ๋น๊ตํฉ๋๋ค. ์ ์ฅ๋ ํ๋ก๊ทธ๋จ์ ๋ค์ ์คํํ ๋๋ ๋ชจ๋ธ ํ์ผ์ด ํ์ํ์ง ์์ต๋๋ค.
์์ํ๊ธฐ ยท ํ์ฌ ์ํ ยท ์ธ์ด ๋ฐฉํฅ๊ณผ ์ฐ๊ตฌ ๊ณํ