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๊ฐ€ ์ •ํ•œ ์„ ํƒ์ง€์™€ ๊ฒ€์‚ฌ ๊ธฐ์ค€์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ๋œ ์˜ˆ์‚ฐ์—์„œ๋Š” ์„ ํƒ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹คํŒจ์™€ ๋ฏธ๊ด€์ธก๋„ ํ•จ๊ป˜ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋•Œ๋Š” ๋ชจ๋ธ ํŒŒ์ผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ยท ํ˜„์žฌ ์ƒํƒœ ยท ์–ธ์–ด ๋ฐฉํ–ฅ๊ณผ ์—ฐ๊ตฌ ๊ณ„ํš