Getting Started - kimjooyoon/meta-ontology-go GitHub Wiki

μ‹œμž‘ν•˜κΈ°

μ—…λ°μ΄νŠΈ: 2026-10-12. 곡개 Gooo둜 μž‘μ€ ν”„λ‘œκ·Έλž¨μ„ μ‘°λ¦½ν•˜κ³ , κ²°κ³Όμ—μ„œ λ‹€μŒ μž‘μ—…κΉŒμ§€ μ½μŠ΅λ‹ˆλ‹€.

곡개 μ‹€ν–‰ 파일 μ€€λΉ„

0.6.34 κ°œλ°œνŒμ€ Linux amd64, macOS amd64Β·arm64, Windows amd64 μ‹€ν–‰ νŒŒμΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€. μ‹€μ œ 생성 μ½”λ“œμ˜ μ‹€ν–‰μ—λŠ” Go 1.27.2κ°€ ν•„μš”ν•©λ‹ˆλ‹€. μš΄μ˜μ²΄μ œμ— λ§žλŠ” νŒŒμΌμ„ λ°›κ±°λ‚˜, macOSΒ·Linux의 μƒˆ ν΄λ”μ—μ„œ μ•„λž˜μ²˜λŸΌ μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

GOBIN="$PWD/.gooo-bin" GOWORK=off GOTOOLCHAIN=go1.27.2 \
  go install github.com/kimjooyoon/meta-ontology-go/cmd/[email protected]
export PATH="$PWD/.gooo-bin:$PATH"
gooo version --build --json
gooo help models

배포 μ‹€ν–‰ νŒŒμΌμ€ 0.6.34-dev, Go go1.27.2, μ†ŒμŠ€ b266c0e2cf6878385b59788945861a03e33f766bμž…λ‹ˆλ‹€. go install둜 λΉŒλ“œν•œ 파일의 VCS ν•„λ“œλŠ” 배포 파일과 λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ„€μΉ˜ κ²½λ‘œμ™€ λͺ¨λ“ˆ 버전도 ν•¨κ»˜ ν™•μΈν•©λ‹ˆλ‹€. 배포 파일과 확인 λ²”μœ„.

λͺ¨λΈ 없이 μž‘μ€ ν”„λ‘œκ·Έλž¨λΆ€ν„°

gooo init --template diagnostic my-diagnostic
cd my-diagnostic
gooo package execute --json --cases cases.json gooo.workspace.json > execution.json
gooo package replay --receipt execution.json --inputs inputs.json gooo.workspace.json

첫 λͺ…령은 Gooo μ†ŒμŠ€μ™€ μž…λ ₯ μ˜ˆμ‹œλ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ‹€μŒ λͺ…령은 사둀λ₯Ό 확인해 ν”„λ‘œκ·Έλž¨μ„ κ³ λ₯΄κ³ , λ§ˆμ§€λ§‰ λͺ…령은 μ €μž₯ν•œ ν”„λ‘œκ·Έλž¨μ— μž…λ ₯을 λ„£μŠ΅λ‹ˆλ‹€. inputs.json의 μˆ˜μΉ˜μ™€ λ¬Έμž₯을 λ°”κΏ” λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈμ΄λ‚˜ API ν‚€λŠ” ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ˜ˆμ œμ™€ 좜λ ₯ μ„€λͺ….

μ†ŒμŠ€μ™€ λͺ¨λΈμ„ ν™•μΈν•˜κ³  μ‘°λ¦½ν•˜κΈ°

μž…λ ₯ ν‚€λ₯Ό λ¨Όμ € ν™•μΈν•˜λ €λ©΄ 곡개 파일의 body-plan을 μ‚¬μš©ν•©λ‹ˆλ‹€. νŽΈμ§‘ν•  μž…λ ₯ 양식과 ν™œλ™ 연결을 κ³„νš 쑰회 μ•ˆλ‚΄μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬λŸ¬ 본문을 μ‘°λ¦½ν•˜λŠ” μž‘μ—…μž₯도 같은 곡개 컴파일러λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

κΈ°λŒ€κ°’ 없이 μž…λ ₯λΆ€ν„° μ‹€ν–‰ν•΄ 보고 μ‹ΆμœΌλ©΄ gooo body-compose --inputs ...λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ‹€μ œ 값을 λ³Έ λ’€ 같은 생성물에 κΈ°λŒ€κ°’μ„ λ„£λŠ” μž…λ ₯ μ „μš© 쑰립 μ•ˆλ‚΄μ— μˆœμ„œλ₯Ό μ μ—ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ ν•œ ν™œλ™ assemble μ˜ˆμ œλŠ” --casesλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

μž‘μ—…μž₯ λ£¨νŠΈμ—μ„œ go run ./cmd/workbench --help둜 ν•„μš”ν•œ λͺ…령을 κ³ λ¦…λ‹ˆλ‹€. go run ./cmd/workbench help assemble은 쑰립 μ˜΅μ…˜μ„ 보여주고 정상 μ’…λ£Œν•©λ‹ˆλ‹€. PR51이 원본 전체 CIλ₯Ό 톡과해 main 38289940에 λ°˜μ˜λμŠ΅λ‹ˆλ‹€.

곡개 μž‘μ—…μž₯의 λ£¨νŠΈμ—μ„œ μ‹€ν–‰ν•©λ‹ˆλ‹€. μ˜ˆμ œλŠ” μˆ«μžΒ·μ‚¬μš© μ—¬λΆ€Β·λ¬Έμž₯을 λ°›μ•„ μ„Έ ν•„λ“œλ₯Ό λ§Œλ“­λ‹ˆλ‹€. 쑰건식, μ§€μ—­ λ³€μˆ˜, λŒ€μž…μ‹κ³Ό ν•„λ“œ λŒ€μ•ˆμ€ Gooo μ†ŒμŠ€μ— μ„ μ–Έν•©λ‹ˆλ‹€. κΈ°μ‘΄ μž‘μ€ 자체 λͺ¨λΈμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

go run ./cmd/workbench assemble \
  --source examples/model-assembly/source.gooo --entry Describe \
  --cases examples/model-assembly/cases.json \
  --model models/graph-chooser-20261008/all-data-demonstration/qat_ternary/model.json \
  --out out/my-assembly

Gooo κ·œμΉ™μ΄ 사전 확인을 읽어 λͺ¨λΈ λ˜λŠ” κ³ μ • μˆœμ„œλ‘œ μ΄μ–΄κ°‘λ‹ˆλ‹€. --model을 μƒλž΅ν•˜λ©΄ μ†ŒμŠ€μ˜ μ •ν•΄μ§„ μˆœμ„œλ‘œ μ‘°λ¦½ν•©λ‹ˆλ‹€. λ‹€λ₯Έ 컴파일러 μœ„μΉ˜λŠ” --compiler /path/to/gooo둜 μ§€μ •ν•©λ‹ˆλ‹€. 좜λ ₯ ν΄λ”λŠ” 맀번 μƒˆ 경둜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

κ²°κ³Όμ—μ„œ λ‹€μŒ μž‘μ—… μ°ΎκΈ°

ν„°λ―Έλ„μ—λŠ” 선택 이유, 쑰립용 ν•„λ“œΒ·μ‹€μ œ 호좜 κ²°κ³Ό, 생성 μ½”λ“œμ™€ 후속 기둝 μœ„μΉ˜κ°€ λ‚˜μ˜΅λ‹ˆλ‹€.

파일 μš©λ„
report.json 쑰립과 호좜의 개수, 경둜 선택, 후속 μ œμ•ˆ
next-context.json 짧은 κ΄€μΈ‘κ³Ό 원본 μ§€λ¬Έ, λΆˆμΌμΉ˜κ°€ μžˆλŠ” JSON μœ„μΉ˜
assembly.json, replay.json μ‹€μ œ 쑰립·호좜과 같은 ν”„λ‘œκ·Έλž¨μ˜ μ €μž₯ μž¬μƒ
composition/generated.go κ³ λ₯Έ Go ν”„λ‘œκ·Έλž¨

μ•„λž˜ μž‘μ—…μž₯ 링크가 κ°€λ¦¬ν‚€λŠ” μ›λž˜ 곡개 μ„€μΉ˜ μ κ²€μ—μ„œλŠ” 호좜 4/4Β·ν•„λ“œ 12/12λ₯Ό ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. 쑰립 좔둠은 1회, μ €μž₯ μž¬μƒμ˜ μƒˆ 좔둠은 0νšŒμ˜€μŠ΅λ‹ˆλ‹€. Gooo 후속 κ·œμΉ™μ€ 정닡을 뢙이지 μ•Šμ€ μ‹€μ œ μž…λ ₯ 0/0으둜 μ‹€ν–‰ν•˜κ³ , λ‹€λ₯Έ μž…λ ₯을 κ΄€μΈ‘ν•˜λ„λ‘ μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€. 후속 μ†ŒμŠ€ λ³€κ²½κ³Ό λ‹€μŒ λͺ¨λΈ ν˜ΈμΆœμ€ 별도 μ‹€ν–‰ λ‹¨κ³„μž…λ‹ˆλ‹€.

예제 μ„€λͺ…κ³Ό 원본 κ²°κ³Ό 읽기. μž‘μ—…μž₯의 곡개판 μ—°κ²° PR50은 CI와 μ‚¬μš© μ•ˆλ‚΄λ₯Ό 같은 곡개 μ†ŒμŠ€λ‘œ λ§žμ·„μŠ΅λ‹ˆλ‹€. 원본 전체 CIλ₯Ό 톡과해 main에 λ³‘ν•©ν–ˆμŠ΅λ‹ˆλ‹€.

μ΄μ–΄μ„œ μ“°κΈ°

μ—¬λŸ¬ λ³Έλ¬Έκ³Ό 보쑰 ν•¨μˆ˜, μΆ”κ°€ 루트 μž…λ ₯을 ν•¨κ»˜ 닀루렀면 assemble --graph --compiler /path/to/gooo둜 μ‹œμž‘ν•©λ‹ˆλ‹€. μ•„λž˜ 링크의 μ›λž˜ 관츑은 개발 μ†ŒμŠ€ a15b4134에 μ†ν•©λ‹ˆλ‹€. 좜λ ₯ 폴더λ₯Ό κ·ΈλŒ€λ‘œ construct --assembly에 λ„˜κ²¨ μ›λž˜ μ‹€νŒ¨ 행을 λ‹€μŒ 쑰립에 λ„£μŠ΅λ‹ˆλ‹€. 두 λͺ…λ Ήκ³Ό κ²°κ³Ό 읽기.

루트 쑰립 ν™œλ™ 뒀에 값을 λ°›μ•„ μ‹€ν–‰ν•˜λŠ” ν™œλ™μ΄ 있으면 λ§ˆμ§€λ§‰ 이름을 --entry, 루트 쑰립 이름을 --assembly-activity둜 μ§€μ •ν•©λ‹ˆλ‹€. 두 ν™œλ™κ³Ό 순수 보쑰 ν•¨μˆ˜ μ˜ˆμ œμ—μ„œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

호좜 κΈ°λŒ€κ°’μ΄ 일뢀 λ‹€λ₯΄λ©΄ μ €μž₯ν•œ 폴더 ν•˜λ‚˜λ‘œ λ‹€μŒ 쑰립을 μ§„ν–‰ν•©λ‹ˆλ‹€.

go run ./cmd/workbench construct --assembly out/my-assembly --out out/my-assembly-next

λͺ¨λΈμ„ μƒλž΅ν•˜λ©΄ κ³ μ • μˆœμ„œλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€. μ›λž˜ μ‹€νŒ¨ 행을 κ·ΈλŒ€λ‘œ 선택 쑰건에 λ”ν•˜κ³  λ°˜λ‘€ 쀀비와 μ‹€μ œ μ‚¬μš©μ„ κΈ°λ‘ν•©λ‹ˆλ‹€. 이미 μΆ©μ‘±ν•œ κ²°κ³ΌλŠ” μƒˆ 쑰립을 μ‹œμž‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. main 83cbe449에 λ³‘ν•©Β·μ„€μΉ˜ν•œ μƒˆ μ˜ˆμ œμ™€ 평가 λ²”μœ„μ—μ„œ 별도 μ΅œμ’… μž…λ ₯κ³Ό 자체 λͺ¨λΈμ„ μ—°κ²°ν•˜λŠ” 방법을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

이 예제의 μˆ˜μΉ˜λŠ” λ„€ μž…λ ₯의 κ΄€μΈ‘μž…λ‹ˆλ‹€. 쑰립용 사둀, μƒˆ μž…λ ₯κ³Ό μ €μž₯ μž¬μƒμ„ λ‚˜λˆ  μ½μŠ΅λ‹ˆλ‹€. ν˜„μž¬ μƒνƒœμ—μ„œ κ³΅κ°œνŒΒ·λ³‘ν•©Β·CI의 λ²”μœ„λ₯Ό ν™•μΈν•©λ‹ˆλ‹€. 이전 316μ€„μ˜ μ•ˆλ‚΄λŠ” μ‹œμž‘ μ•ˆλ‚΄ 이λ ₯에 원문 κ·ΈλŒ€λ‘œ λ³΄κ΄€ν–ˆμŠ΅λ‹ˆλ‹€.