Public Behavior Usage 57 KO - teamswyg/laya-tools GitHub Wiki

๊ณต๊ฐœ ๋™์ž‘ ๊ฒ€์ฆ ๋„๊ตฌ ์‚ฌ์šฉ๋ฒ•57

riido-publicaudit์€ ์œ ์ง€๋ณด์ˆ˜์ž๊ฐ€ ์ž‘์€ ๊ณต๊ฐœ ๋™์ž‘์˜ ์ •๋‹ต ๊ทผ๊ฑฐ๋ฅผ ๋ชจ์œผ๋Š” Go ๋„๊ตฌ๋‹ค. ์‚ฌ๋žŒ์ด๋“  ์—์ด์ „ํŠธ๋“  ๊ฒฐ๊ณผ์˜ ์ž…๋ ฅยท์˜ค๋ฅ˜ยท์›์ฒœ revision์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋ธ ์„ ํƒ์ด๋‚˜ ์‹ค์ œ ์ฝ”๋“œ ์ˆ˜์ • ์Šน์ธ์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๊ธฐ์กด riidolaya/riido-shortclaim์„ ๊ณ„์† ์‚ฌ์šฉํ•œ๋‹ค.

๊ณต๊ฐœ ๊ฒฐ๊ณผ ํ™•์ธ

Go1.27.1์—์„œ ์ €์žฅ์†Œ ๋ฃจํŠธ์˜ ์•„๋ž˜ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. Linux์™€ macOS ๋ชจ๋‘ ์‹ค์ œ API๋ฅผ ์žฌ์ƒํ•ด ๋ณด์กด๋œ ๊ฒฐ๊ณผยท์›์ฒœยท๊ธฐ๋Œ€๊ฐ’์„ ๋Œ€์กฐํ•œ๋‹ค. ์—ญ์‚ฌ์  Darwin binary๋ฅผ ๋‹ค๋ฅธ OS์—์„œ ์‹คํ–‰ํ–ˆ๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋ฉฐ ์ƒˆ ๊ณต์‹ ํ‘œ๋ณธ์„ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

go test ./cmd/riido-publicaudit -run TestPublishedFiniteAuditReplay -count=1

์ž…๋ ฅ์˜ raw UTF-8์™€ hex๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ์›๋ณธ ๊ฒฐ๊ณผ๋Š” ๊ทœ๋ฒ”ยท๊ธฐ์ˆ ์  APIยท๋” ๊ฐ•ํ•œ ์ •์ฑ…์„ ๋ถ„๋ฆฌํ•œ๋‹ค. source_read_hypothesis๋Š” ์‚ฌ์ „ ์†Œ์Šค ์ฝ๊ธฐ ์˜ˆ์ƒ์ด๋ฉฐ ์ˆ˜๋ฝ ๊ธฐ์ค€์ด ์•„๋‹ˆ๋‹ค. ํŒŒ์ƒ ์ •๋‹ต์ด๋‚˜ hidden source ID๋ฅผ ๋ชจ๋ธ ๋ฌธ๊ตฌ์— ์ฑ„์šฐ๋Š” ๊ธฐ๋Šฅ์€ ์—†๋‹ค.

๊ณต์‹ ์ˆ˜์ง‘ ๋ช…๋ น์˜ ๊ฒฝ๊ณ„

์›๋ž˜ ์ˆ˜์ง‘์€ ์•„๋ž˜ ์ˆœ์„œ๋กœ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. binary๋Š” Go1.27.1 Darwin/arm64, CGO0์—์„œ recipe์˜ ์„ธ build flag๋กœ ๋งŒ๋“ค์–ด ์‹คํ–‰ ๊ณ„ํš์˜ SHA์™€ ๋งž์ท„๋‹ค. ๊ฒฐ๊ณผ ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š์œผ๋ฉฐ ์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋„ ๊ธฐ์กด์— ์žˆ์œผ๋ฉด ๊ฑฐ์ ˆํ•œ๋‹ค. fresh output์€ ์ „์—ญ ์‹คํ–‰ ํšŸ์ˆ˜ ์ œํ•œ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๊ณต์‹1ํšŒ ๊ธฐ๋ก์€ ์™ธ๋ถ€ ์‹คํ—˜ ์žฅ๋ถ€๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

CGO_ENABLED=0 go build -trimpath -buildvcs=false -p=1 -o ./riido-publicaudit ./cmd/riido-publicaudit
./riido-publicaudit plan --repo . --source-commit 9e99914f6d1e35aa9d97413f80fc6e03768e97ce --out NEW_PLAN_FILE
./riido-publicaudit audit --repo . --input-commit 1462c705087f24666049f8bd31d317490c05dbeb --out NEW_RESULT_DIRECTORY

audit์€ ์ €์žฅ์†Œ์˜ ๊ณ ์ •๋œ execution-plan-57.json๊ณผ probes-57.json์„ ์ฝ๋Š”๋‹ค. plan์˜ ์ƒˆ ์ถœ๋ ฅ๋งŒ์œผ๋กœ ์ด๋ฅผ ์ž๋™ ๊ต์ฒดํ•˜์ง€ ์•Š๋Š”๋‹ค. ์›๋ž˜ frozen commit๋“ค์ด ๋กœ์ปฌ Git์— ์žˆ์–ด์•ผ ํ•˜๊ณ , main์˜ squash history๋งŒ ๊ฐ€์ ธ์˜จ checkout์€ ํ•ด๋‹น ๊ณต๊ฐœ commit๋„ ๋ณ„๋„๋กœ fetchํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค๋ฅธ OS/toolchain/binary์˜ ์žฌ์ˆ˜์ง‘์€ ์ƒˆ ๊ณ„ํšยท์ž…๋ ฅ freeze๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ณ„๋„ ์‹คํ—˜์ด๋ฉฐ ์œ„ ์—ญ์‚ฌ์  ์ˆ˜์ง‘์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋Š”๋‹ค.

์ง€์› ์—ฐ์‚ฐ์€ strict_parse, compare, glob_match, glob_validate๋ฟ์ด๋‹ค. ์›๋ณธ ์ฝ”๋“œ ๋ฌธ์ž์—ด์˜ ์ž„์˜ ์‹คํ–‰์ด๋‚˜ ํŒŒ์ผ์‹œ์Šคํ…œ glob์€ ์—†๋‹ค. ์ž˜๋ชป๋œ UTF-8/๊ณผํ•œ ๊ธธ์ด/๋ฏธ๋“ฑ๋ก ํŒŒ์ผ/๋ณ€์กฐ/duplicate JSON key/extra field/๋ˆ„๋ฝ๋œ ์ž…๋ ฅ freeze๋Š” ๊ด€์ธก ์ „์— ๊ฑฐ์ ˆํ•œ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์•Œ๋ ค์ง„ ์˜ค๋ฅ˜๋Š” ๊ด€์ธกํ•˜๊ณ  panicยท๋ฏธ๋ถ„๋ฅ˜ ์˜ค๋ฅ˜๋Š” unknown์œผ๋กœ ๋‚จ๊ธด๋‹ค.

๊ธฐ๋Œ€๊ฐ’ ๋ถˆ์ผ์น˜๋Š” ์œ ํšจํ•œ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ์ด๋ฏ€๋กœ ๊ทธ ์ž์ฒด๋กœ exit ์‹คํŒจ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค. ๋ถˆ์™„์ „/unknown ๊ด€์ธก์ด๋‚˜ ์ €์žฅ ์‹คํŒจ๋Š” nonzero๋‹ค. ์ €์žฅ ์‹คํŒจ ์ง„๋‹จ์€ ์ด๋ฏธ ์‹œ์ž‘ํ•œ ๊ด€์ธก ์ˆ˜๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ ๊ณต์‹ ์žฌ์‹œ๋„๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฒˆ ๋„๊ตฌ๋Š” CPU/RSS/GPU/์ง€์—ฐ ์ธก์ •๊ธฐ๊ฐ€ ์•„๋‹ˆ๋‹ค.