Source Inventory Usage 60 KO - teamswyg/laya-tools GitHub Wiki

60๋‹จ๊ณ„ ์†Œ์Šค ์ฐธ์กฐ ์‹คํ–‰๊ธฐ ์‚ฌ์šฉ๋ฒ•

riido-sourceinventory๋Š” ์ €์žฅ๋œ ์†Œ์Šค ์ •์˜ 60๊ฐœ์™€ ์ž‘์„ฑ ๊ตฌ์„ฑ ์š”์†Œ ๊ด€๊ณ„ 204๊ฐœ๋ฅผ ์›๋ณธ Go ์„ ์–ธ์— ์—ฐ๊ฒฐํ•˜๋Š” ์œ ์ง€๋ณด์ˆ˜์šฉ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด๋‚˜ ํ›„๋ณด ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ๋ฌธ์žฅ์ด ๊ตฌํ˜„์„ ์ž˜ ์„ค๋ช…ํ•˜๋Š”์ง€๋Š” ๋ณ„๋„์˜ ๋‚ด์šฉ ๊ฒ€ํ† ์—์„œ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ์ „ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ

์›๋ณธ ์ž…๋ ฅ์€ Go ์†Œ์Šค 4๊ฐœ์™€ results-56b.json์ด๋ฉฐ ์ „์ฒด SHAยท๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๊ธฐ์— ๋“ค์–ด๊ฐ„ Go ํŒŒ์ผ 5๊ฐœ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ์— ํ•จ๊ป˜ ํฌํ•จํ•ด ํ˜„์žฌ ํŒŒ์ผยทGit ํŒŒ์ผ๊ณผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ง€์› ํŒŒ์ผ 16๊ฐœ์—๋Š” ์ด ์‚ฌ์šฉ๋ฒ•, ๋นŒ๋“œ ๋ฐฉ๋ฒ•, ํ…Œ์ŠคํŠธ, ์„ค๋ช… ๊ฒ€ํ†  ๊ทœ์น™์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์€ ์˜๋ฏธ๋ก ์  ์˜์กด์„ฑ ์ „์ฒด๋ฅผ ์ฆ๋ช…ํ•˜๋Š” ๋ชฉ๋ก์ด ์•„๋‹™๋‹ˆ๋‹ค.

Go 1.27.1, CGO_ENABLED=0, -trimpath, -buildvcs=false, -p=1๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฐ”์ด๋„ˆ๋ฆฌ SHAยทํฌ๊ธฐยทํ”Œ๋žซํผยท๋นŒ๋“œ ์ •๋ณด๋ฅผ ๊ณ„ํš์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์ž…๋ ฅ ๊ฒฝ๋กœ๋Š” ๊ณต๊ฐœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. GOMAXPROCS=1๊ณผ Go ํž™ soft limit 256MiB๋Š” ์„ค์ •์ด๋ฉฐ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌยท์†๋„ ์ธก์ •๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ค€๋น„ โ†’ ์ž…๋ ฅ ๊ณ ์ • โ†’ ์‹คํ–‰

๋‹ค์Œ ์˜ˆ์‹œ๋Š” ์ €์žฅ์†Œ ๋ฃจํŠธ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. <...>์—๋Š” ํ•ด๋‹น ์‹คํ—˜์˜ ์‹ค์ œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์†Œ์Šค ์ปค๋ฐ‹์€ ์ค€๋น„์™€ ์‹คํ–‰ ์‚ฌ์ด์— ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CGO_ENABLED=0 go build -trimpath -buildvcs=false -p=1 -o .cache/riido-sourceinventory-60 ./cmd/riido-sourceinventory
.cache/riido-sourceinventory-60 prepare --source-commit <source-freeze-commit> --out .cache/new-plan-60.json

prepare๋Š” ์›๋ณธ ASTยท๋ ˆ์ง€์ŠคํŠธ๋ฆฌยท์„œ์‹ํ™”ยทinventory๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ž…๋ ฅยท์‹คํ–‰ ํŒŒ์ผยท์ง€์› ํŒŒ์ผ์˜ ๋ฐ”์ดํŠธ์™€ Git ๊ธฐ๋ก๋งŒ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. Git blob ๊ฒ€์ฆ์€ 26๊ฐœ์ž…๋‹ˆ๋‹ค. ์ƒˆ ๊ณ„ํš ํŒŒ์ผ์„ ๊ฒ€ํ† ํ•ด execution-plan-60.json์œผ๋กœ ๊ธฐ๋กํ•œ ๋ณ„๋„ ์ž…๋ ฅ ์ปค๋ฐ‹์„ ๋งŒ๋“  ํ›„ ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

.cache/riido-sourceinventory-60 inventory --input-commit <input-freeze-commit> --out .cache/new-run-60/results.json

inventory๋Š” ์ž…๋ ฅยท๊ณ„ํšยท๋ฐ”์ด๋„ˆ๋ฆฌ์™€ Git blob 27๊ฐœ๋ฅผ ๋‹ค์‹œ ๊ฒ€์ฆํ•˜๊ณ , ์ €์žฅ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ํ•„์š”ํ•œ ๋ฌธ์ž์—ด๋งŒ ์ฝ์Šต๋‹ˆ๋‹ค. ํฐ ์ •์ˆ˜ยท์ •๋‹ต ํ”Œ๋ž˜๊ทธยท๋žญํ‚นยทํ•™์Šต ์—ญํ• ์„ ๊ณ„์‚ฐ์ด๋‚˜ ํŠน์ง•์œผ๋กœ ์˜ฎ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ ์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ๊ฒฐ๊ณผ ํŒŒ์ผ์„ ๋จผ์ € ํ™•๋ณดํ•˜๊ณ  ์›๋ณธ ์—ฐ๊ฒฐ์„ 1ํšŒ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์žฌ์‹œ๋„๋Š” 0ํšŒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์ถœ๋ ฅ ๊ฒฝ๋กœ๋‚˜ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋Š” ์‹คํ–‰ ์ „์— ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ์ฝ๋Š” ๋ฒ•

์„ฑ๊ณต ๋ฒ”์œ„๋Š” ํŒŒ์ผ 4๊ฐœ, ์›๋ž˜ ์ˆœ์„œ์˜ ๋ฃจํŠธ 60๊ฐœ, ๊ตฌ์„ฑ ์š”์†Œ ๊ด€๊ณ„ 204๊ฐœ์™€ ๊ฐ ๊ธฐ์กด ํ•ด์‹œ ์ผ์น˜์ž…๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์˜ˆ์ƒํ•œ ํŒŒ์‹ฑ 4ยท์„œ์‹ํ™” 264ยท์ •๊ทœํ™” 112ยท๋ฌถ์Œ 24์™€ ์‹ค์ œ ๋ฐ˜ํ™˜ ์นด์šดํ„ฐ๋„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Œ€๊ฐ’์„ ์‹ค์ œ ์นด์šดํ„ฐ์— ์ฑ„์šฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ ์–ธ ๊ตฌ๊ฐ„์˜ ์›๋ณธ ํ•ด์‹œ๋Š” ๊ด€๊ณ„๋งˆ๋‹ค ๊ณ„์‚ฐํ•˜๋ฉฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ๊ฐ„ ์ˆ˜๋ฅผ ๋ฌผ๋ฆฌ์ ์ธ ํ˜ธ์ถœ ์ˆ˜๋กœ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ค‘๊ฐ„ ์‹คํŒจ๋Š” ๋ฐ˜ํ™˜๋œ ๋ถ€๋ถ„ ๊ฒฐ๊ณผยท์‹ค์ œ ์ž‘์—… ํšŸ์ˆ˜ยท๊ณ ์ • ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ทธ๋Œ€๋กœ ์‹คํŒจ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ์„ฑ๊ณต ๋ณด๊ณ ์„œ๋„ ๋ถ€๋ถ„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์กดํ•˜๋ฉฐ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํŒจ๋‹‰์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ๋‚ด๋ถ€ ์นด์šดํ„ฐ๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค๊ณ  ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋””์Šคํฌ ์“ฐ๊ธฐ ์‹คํŒจ๋‚˜ ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ข…๋ฃŒ์—์„œ๋Š” ๊ฒฐ๊ณผ ํŒŒ์ผ์ด ์™„์„ฑ๋œ๋‹ค๊ณ  ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์‹œ์Šคํ…œ์„ ๋ง‰๋Š” ์ „์—ญ lock์€ ์—†์œผ๋ฉฐ ์žฌ์‹œ๋„ ํšŸ์ˆ˜๋Š” ์‹คํ—˜ ๊ณ„ํš๊ณผ ๊ธฐ๋ก์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์˜ metadata_rebound_content_review_pending์€ ๋ฐ”์ดํŠธ ์—ฐ๊ฒฐ ์„ฑ๊ณต์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ๋ฐ”์ธ๋”ฉยท์™„์ „ํ•œ ์˜์กด์„ฑ ํƒ์ƒ‰ยท์„ค๋ช… ์Šน์ธยท๋ชจ๋ธ ํ’ˆ์งˆยท๋น„์šฉ ์ ˆ๊ฐ์„ ๋œปํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. content_review=pending, training_ready=false๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœ์—๋Š” ์•ˆ์ „ํ•œ ๊ฒฐ๊ณผ JSON๊ณผ ํ•œ๊ธ€ยท์˜๋ฌธ ์„ค๋ช…๋งŒ ์‚ฌ์šฉํ•˜๋ฉฐ ๋กœ์ปฌ ๋ฐ”์ด๋„ˆ๋ฆฌยท๊ฒฝ๋กœยท๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋Š” Git์— ์˜ฌ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ํ›„ ๊ฒ€์ฆ ๋ฒ”์œ„

์ตœ์ดˆ ๊ณต์‹ ์‹คํ–‰ ๊ณ„ํš์€ ์›๋ณธ inventory 1ํšŒ/์žฌ์‹œ๋„ 0ํšŒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด CI๊ฐ€ ํ•ฉ์„ฑ ์ œ์–ด์™€ ๊ณผ๊ฑฐ ๋‹จ๊ณ„์˜ ๊ณ ์ • ๊ฒ€์ฆ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ํšŒ๊ท€ ๊ฒ€์ฆ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ์ด ์ตœ์ดˆ ์‹คํ–‰ ํšŸ์ˆ˜์— ์†Œ๊ธ‰ํ•ด ์„ž์ง€ ์•Š๊ณ  ๋ณ„๋„๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ ๊ฒฐ๊ณผ๋Š” ์›๋ณธ ์„ ์–ธ์˜ ์›๋ฌธ SHAยท๋ฐ”์ดํŠธ ๊ตฌ๊ฐ„๊ณผ ๊ธฐ์กด ๋ฃจํŠธยท๊ตฌ์„ฑ ์š”์†Œ ์ˆœ์„œยท์„œ์‹ํ™”ยท์ •๊ทœํ™”ยท๋ฌถ์Œ ํ•ด์‹œ, ์‹ค์ œ ์นด์šดํ„ฐ๋ฅผ ๋‹ค์‹œ ๋น„๊ตํ•˜๋Š” ๋Œ€์ƒ์œผ๋กœ ์‚ผ์Šต๋‹ˆ๋‹ค. ์„ ์–ธ ์—ฐ๊ฒฐ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๊ฐ€ ์˜๋ฏธ ํŒ๋‹จ์˜ ์ •๋‹ต ์—ญํ• ์„ ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ