Automatic Native Tool Selection - kimjooyoon/meta-ontology-go GitHub Wiki
2026-10-04. ๊ฐ๋ฐ PR #1213๊ณผ
main PR #1214๋ฅผ ๊ฐ๊ฐ ์์ฒด
CIยท๋
๋ฆฝ ์ฆ๊ฑฐ ํ์ธ ํ ๋ณํฉํ์ต๋๋ค. ๊นจ๋ํ main 33846f9e์์ CLI์ ๋ณ๋ ์คํ๊ธฐ๋ฅผ
Go1.27.1ยทSDK v0.2.21๋ก ๋น๋ยท์ค์นํ์ต๋๋ค. ์๋ ํ๋ณด ์ธก์ ์ 36b8c298์ด๋ฉฐ,
์ค์น๋ณธ์ ์ค์ ์คํ๋ ๋ฐ๋ก ํ์ธํ์ต๋๋ค. ํ์ฌ ์ํ.
์ปดํ์ผ๋ฌ ์ ์ฅ์ ๋ฃจํธ์์ ์คํํฉ๋๋ค. --out์๋ ์ ํด๋ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
gooo body-path-run \
--source examples/body-codegen/condition-path-assembly.gooo.fixture \
--activity Qualified \
--path-plan examples/body-codegen/condition-path-assembly.json \
--cases examples/body-codegen/condition-path-assembly-cases.json \
--repeat 2 --timing --out condition-results๋ ์ํผ๋ ์ง์ญ๊ฐ ์ฐธ์กฐ, ์กฐ๊ฑด ๋ถ๊ธฐ์ ๋ณธ๋ฌธ ๋ฐฐ์น, ๋ ๋ฆฝ ์ ์ธ ์์๋ผ๋ ์ธ ๊ฐ์ง ์ด์ง ์ ํ์ ์ฝ๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ํ๋ณด๋ฅผ ๋ง๋ค๊ณ ์ ์ธ๋ ๊ธฐ๋๊ฐ์ ํ์ธํ ๋ค, ์ ํํ Go๋ฅผ ๊ณง๋ฐ๋ก ๋น๋ํด ๋ณ๋ ์ ๋ ฅ์ผ๋ก ๋ ๋ฒ ์คํํฉ๋๋ค. ๋ชจ๋ธ์ ์ง์ ํ์ง ์์ผ๋ฉด ์ ์ธ๋ ๊ฒฐ์ ๋ก ์ ํ์ ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
| ์์ | ํ์ธํ๋ ์์น | ์กฐ๊ฑด |
|---|---|---|
| 1 | PATH์ go
|
๋ค์ดํฐ๋ธ Go1.27.1, ํ์ฌ ์ด์์ฒด์ ยทCPU ๊ตฌ์กฐ |
| 2 | ์คํ ์ค์ธ ์ปดํ์ผ๋ฌ์ GOROOT ์ bin/go
|
๊ฐ์ ๋ฒ์ ยทํ๋ซํผ |
| 3 | ๋ก์ปฌ ๋ชจ๋ ์บ์์ ์ ํํ Go1.27.1 ๋๊ตฌ์ฒด์ธ ๊ฒฝ๋ก | ๊ฐ์ ๋ฒ์ ยทํ๋ซํผ |
๊ฒฝ๋ก ์ ๋ณด๋ฅผ ์ ๊ฑฐํ -trimpath ๋น๋๋ ๋ ๋ฒ์งธ ์์น๊ฐ ๋น์ด ์์ ์ ์์ต๋๋ค.
์ธ ๋ฒ์งธ ์์น๋ GOMODCACHE ํ๊ฒฝ๊ฐ, ์ฒซ GOPATH์ pkg/mod, ๋๋ ํ์
go/pkg/mod์์ ์ ํฉ๋๋ค. ๊ทธ ์๋ ํ์ฌ ์ด์์ฒด์ ยทCPU ๊ตฌ์กฐ์ ๋ง๋
golang.org/[email protected].<os>-<arch>/bin/go ํ๋๋ง ํ์ธํฉ๋๋ค.
๋๊ตฌ๋ฅผ ์๋ก ๋ด๋ ค๋ฐ๊ฑฐ๋ ๋์คํฌ ์ ์ฒด๋ฅผ ํ์ํ๋ ์์
์ ์์ต๋๋ค.
์ ํํ ๋๊ตฌ๋ ์ค์ ํ์ผ ๋ฐ์ดํธ์ go version ์๋ต์ ํ์ธํ ๋ค ์ฌ์ฉํฉ๋๋ค.
run-1-runtime.json์ observation.go_tool_path๊ฐ ์ ๋ ๊ฒฝ๋ก,
go_tool_selection์ด ์ ํ ์ด์ ๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๋ชจ๋ธ์ ์ฐ๋ ์์ฒญ๊ณผ ๊ฒฐ์ ๋ก ์
์์ฒญ์ ์ด ๊ฐ์ ์คํ ์ ์ฐจ๋ฅผ ๋ฐ๋ฆ
๋๋ค.
๋ช
์์ ์ธ --go-bin /path/to/go1.27.1/bin/go๊ฐ ์์ผ๋ฉด ๊ทธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฒ์ ์ด ๋ค๋ฅด๋ฉด ์ค์ ๊ด์ธก๊ฐ๊ณผ ์ค๋ฅ๋ฅผ ๋จ๊น๋๋ค. go env -w์๋ง ๊ธฐ๋กํ ๋ณ๋ ์บ์๋ฅผ
์ฐ๋ ํ๊ฒฝ์์๋ GOMODCACHE ํ๊ฒฝ๊ฐ์ด๋ --go-bin์ผ๋ก ์์น๋ฅผ ์๋ ค์ฃผ์ธ์.
์ธ ์์น์์ ์ฌ์ฉํ ๋๊ตฌ๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ์ค์นยท๊ฒฝ๋ก ์ง์ ์๋ด๊ฐ ๋์ต๋๋ค.
๊ณต๊ฐ ์ฐ๊ตฌ ์ ์ฅ์ ๋ฃจํธ์์๋ ํ์ ์๋์ ์์ฒด ์ํ ๋ชจ๋ธ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
gooo body-path-run \
--source publication/condition-path-assembly-20261004/source.gooo.fixture \
--activity Qualified \
--path-plan publication/condition-path-assembly-20261004/recipe.json \
--cases publication/condition-path-assembly-20261004/runtime-cases.json \
--model models/own-three-feedback-v1/set-feedback/models/fp32/model.json \
--repeat 2 --timing --out condition-model-results์ด ๊ณผ์ ๋ ๋ ๋ฒ์งธ ์ง์ญ๊ฐ์ ๋ถ๊ธฐ ๊ธฐ์ค์ผ๋ก ๊ณ ๋ฅด๋๋ก ์๋๋ฅผ ์ง์ ํฉ๋๋ค. ๋ชจ๋ธ์ ์๋ตํ๊ณ ์ ์ถ๋ ฅ ํด๋๋ฅผ ์ฃผ๋ฉด ๊ฐ์ ๊ธฐ๋๊ฐ์ผ๋ก ๊ฒฐ์ ๋ก ์ ๊ฒฝ๋ก๋ฅผ ๊ด์ธกํ ์ ์์ต๋๋ค.
๋์ผํ ๊ณต๊ฐ ๊ณผ์ ๋ฅผ ์ด์ ์ค์น๋ณธ 7da09722์์ ์คํํ์ ๋ ์์ฑ์ ์ ํ ์ฌ๋ก
5/5๋ฅผ ์ถฉ์กฑํ์ต๋๋ค. ์ด์ด์ง ์คํ์ PATH์ Go1.26.5์์ ๋ฉ์ท๊ณ ๋ณ๋ ๊ธฐ๋๊ฐ
11๊ฐ๋ ๋ฏธ๊ด์ธก ์ํ์์ต๋๋ค. Go1.27.1์ ์ด๋ฏธ ๋ก์ปฌ์ ์ค์น๋ผ ์์์ต๋๋ค.
์ฒซ ์๋ ์ ํ ๊ตฌํ์ ์์ค ๊ฒ์ฌ์ ํต๊ณผํ์ง๋ง ์ค์ -trimpath ์คํ ํ์ผ์์
GOROOT๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๋๊ตฌ ์บ์์ ์ ํํ ์์น๋ฅผ ์ถ๊ฐํ ๋ค ์ค์ ์ค์น ํํ์
์คํ ํ์ผ์ด Go1.27.1์ ์ ํํ์ต๋๋ค.
| ์ต์ข ํ๋ณด์ ์ค์ ์คํ | ์์ฒด ์ํ ๋ชจ๋ธ | ๊ฒฐ์ ๋ก |
|---|---|---|
| ์ ํ ์ฌ๋ก | 5/5 | 5/5 |
| ํ๊ฐํ ์กฐ๋ฆฝ ํ๋ณด | 3 | 2 |
| ๋ณ๋ ์คํ ์ฌ๋ก, ๊ฐ ์์ฒญ | 11/11 | 11/11 |
| ์ฒซ ์๋ต | 339.649 ms | 499.020 ms |
| ์ํฐํฉํธ ์ฌ์ฌ์ฉ ์๋ต | 32.608 ms | 34.675 ms |
๊ฐ ๋ชจ๋๋ ์์ฒญ ๋ ๊ฑด์ ์คํํ๊ณ , ๋งค ์์ฒญ์์ ๋ค์ดํฐ๋ธ ์คํ ๋ ๋ฒ์ด ํ์ฌ ์ ๋ ฅ๊ณผ ๊ธฐ๋๊ฐ์ ํ์ธํ์ต๋๋ค. ์ ํ ๊ฒฝ๋ก์ ์์ฑ digest๋ ์ด์ ์์ฑ ๊ฒฐ๊ณผ์ ๊ฐ์์ต๋๋ค. ์ ์ฅ ํ์ผ๊ณผ ๋จ๊ณ๋ณ ์๊ฐ์ ์ฐ๊ฒฐ ๊ฒ์ฌ๋ ํต๊ณผํ์ต๋๋ค.
์ ์๊ฐ์ ๊ฒฐ์ ๋ก ์ ๋จผ์ ์คํํ๊ณ ๋ชจ๋ธ์ ๋์ค์ ์คํํ ๋จ์ผ ์ฒซ ์คํยท์ฌ์ฌ์ฉ ์์ ๋๋ค. ๋น๋ ์บ์ ์ํ๊ฐ ๋ค๋ฅด๋ฉฐ, ์์ ์ ์ธ ํ๊ท ์ด๋ ๋ชจ๋ธ ์๋ ์ฐ์๋ฅผ ๊ณ์ฐํ์ง ์์์ต๋๋ค. ๋ชจ๋ธ ๊ฐ์ค์น์ ํ์ต๋์ ๊ทธ๋๋ก์ ๋๋ค. ์ด๋ฒ ๊ฐ์ ์ ๊ธฐ์กด ์กฐ๋ฆฝ ๊ฒฐ๊ณผ๋ฅผ ์ค์ ์คํ๊น์ง ์ด์ด๊ฐ๊ณ , ์ฌ์ฉ์๊ฐ ์ง์ ํ ์ค์ ํ๋๋ฅผ ์ค์ธ ๊ฒ์ ๋๋ค.
์ค์นํ main 33846f9e์์๋ CLI์ ๋ณ๋ ์คํ๊ธฐ๊ฐ ๊ฐ๊ฐ ๋ชจ๋ธยท๊ฒฐ์ ๋ก ์์ฒญ ๋ ๊ฑด์
์๋ฃํ์ต๋๋ค. ์์ฒญ๋ง๋ค ๋ณ๋ ์คํ 11/11๊ณผ ๋ค์ดํฐ๋ธ ์คํ ๋ ๋ฒ์ ํ์ธํ๊ณ ,
๋ชจ๋ ์์ฒญ์ด toolchain_cache๋ฅผ ์ ํํ์ต๋๋ค. CLI์ ๋ ๋ชจ๋๋ ๊ฐ์ ์์ฑ digest๋ฅผ
๋์ผ๋ฉฐ ์ ์ฅ ์๊ฐยทํ์ผ ์ฐ๊ฒฐ ๊ฒ์ฌ๋ ํต๊ณผํ์ต๋๋ค. ์ ์ค์น์ ์ฌ์ฌ์ฉ ์๋ต์ ๋ชจ๋ธ
32.439msยท๊ฒฐ์ ๋ก 28.481ms์์ต๋๋ค. ์ด ์ญ์ ๊ฐ ๋ชจ๋์ ๋จ์ผ ์ ๊ด์ธก์
๋๋ค.
์ค์ ์ฌ์ฉ ๊ด์ธก ยท ์กฐ๊ฑด ๋ณธ๋ฌธ ์คํ ยท ๋จ๊ณ๋ณ ๋น์ฉ ์ฝ๊ธฐ