File Labels 33 KO - teamswyg/laya-tools GitHub Wiki

๊ฒ€์ƒ‰ ์ž…๋ ฅ๊ณผ ๋ถ„๋ฆฌํ•œ ์ˆ˜์ • ์ „ ํŒŒ์ผ ์ •๋‹ต

์‹คํ—˜ 28์—์„œ ๊ณ ์ •ํ•œ ๋‘ Parquet ์›์ฒœ์—์„œ instance_id์™€ patch๋งŒ ๋ณ„๋„ ์ถ”์ถœํ–ˆ๋‹ค. ์‚ฌ์ „ ๊ณ„ํš์— ๋”ฐ๋ผ ์ •๋‹ต์€ ํ‰๊ฐ€ ์ „์šฉ์ด๋ฉฐ, ์š”์ฒญยทํ›„๋ณด ์ƒ์„ฑยทํžŒํŠธ ํŠน์ง•ยทํ•™์Šต์— ๋„ฃ์ง€ ์•Š๋Š”๋‹ค. ํŒŒ์ผ ๋ชฉ๋ก ์ˆ˜์ง‘์€ ํŒจ์น˜๋ฅผ ์ฝ์ง€ ์•Š๋Š”๋‹ค.

์ „์ฒด 2,400๊ฐœ ์„ ํƒ ์ž‘์—… ๊ฒฐ๊ณผ
ํŒŒ์‹ฑ ์‹คํŒจ / ๋ฏธ์ง€์› ๋ธ”๋ก 0 / 0
๊ธฐ์กด ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” ์ž‘์—… 2,398
๊ธฐ์กด ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ์—†๋Š” ์ž‘์—… 2
๊ธฐ์กด ๊ฒฝ๋กœ ํ•ฉ๊ณ„ / ์ž‘์—…๋‹น ์ตœ๋Œ€ 3,912 / 30
์ƒˆ ํŒŒ์ผ ๋ธ”๋ก / ์ค‘๋ณต ๊ฒฝ๋กœ 64 / 0

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

Go ํŒŒ์„œ๋Š” hunk ์ด์ „์˜ ์ด์ „ ํŒŒ์ผ ํ—ค๋”, ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ํ•ด์„์ด ๋ช…ํ™•ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ/๋ชจ๋“œ ๋ณ€๊ฒฝ ํ—ค๋”์—์„œ ๊ฒฝ๋กœ๋ฅผ ์ฝ๋Š”๋‹ค. /dev/null์€ ์ƒˆ ํŒŒ์ผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๋ณธ๋ฌธ ์† ๊ฐ€์งœ ํ—ค๋”๋Š” ๋ผ๋ฒจ๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ณต๋ฐฑยท๋”ฐ์˜ดํ‘œยทGit์˜ ์ด์Šค์ผ€์ดํ”„ ๊ฒฝ๋กœ์™€ ํ•œ๊ธ€์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ชจํ˜ธํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ธกํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ๊ฒฝ๋กœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์„œ์ด๋ฉฐ ํŒจ์น˜๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ์ „์ฒด Git ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ๊ธฐ๋Š” ์•„๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ํŒŒ์ผ๋„ ์ •๋‹ต ๊ด€๋ จ ํŒŒ์ผ์˜ ์™„์ „ํ•œ ๋ชฉ๋ก์ด๋‚˜ ์ž‘์—… ๋‚œ์ด๋„ยทํ•ด๊ฒฐ ์„ฑ๊ณตยท๋ถ„ํ•  ๊ฐ€๋Šฅ์„ฑ์˜ ์ •๋‹ต์€ ์•„๋‹ˆ๋‹ค.

์›๋ฌธ ํŒจ์น˜ ์ตœ๋Œ€ 2MiB, ์ƒ๋Œ€ ๊ฒฝ๋กœ ์ตœ๋Œ€ 4,096๋ฐ”์ดํŠธ๋ฅผ ์ ์šฉํ•œ๋‹ค. ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ํŒจ์น˜๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋ณ„๋„ ๋ณต์‚ฌํ•ด ์งง์€ ๋ฌธ์ž์—ด ๋•Œ๋ฌธ์— ์ „์ฒด ํŒจ์น˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. ์ฝ๊ธฐ ๋‹จ๊ณ„์—์„œ projection SHA-256, ํ•„๋“œ ํ—ˆ์šฉ ๋ชฉ๋ก, ID ์ค‘๋ณตยทํ–‰ ์ˆ˜๋ฅผ ํ™•์ธํ•œ๋‹ค. ์‹คํŒจ ํ–‰๋„ ๋ณด์กดํ•œ๋‹ค.

Parquet ๋ณ€ํ™˜์€ ๊ธฐ์กด PyArrow๋ฅผ ์“ฐ๋Š” ๊ด€๋ฆฌ์šฉ ๋„๊ตฌ๋ฟ์ด๋ฉฐ Go ์‹คํ–‰ ๊ฒฝ๋กœ์—๋Š” Python์ด ํ•„์š” ์—†๋‹ค. ๋ณ€ํ™˜๊ธฐ๋Š” ์›์ฒœ ํ•ด์‹œยทํ–‰ ์ˆ˜ยท์—ด ํƒ€์ž…์„ ํ™•์ธํ•˜๊ณ  0600 ์ƒˆ ํŒŒ์ผ๋งŒ ์ƒ์„ฑํ•œ๋‹ค. ์งˆ๋ฌธ์ด๋‚˜ ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด projection์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค. ์›๋ฌธ๊ณผ labels.json์€ ๋กœ์ปฌ์—๋งŒ ๋ณด๊ด€ํ•œ๋‹ค.

go run ./cmd/riido-filelabels --out .cache/file-labels-new

๊ณ ์ •๋œ ์š”์ฒญ projection๊ณผ ๋ณ„๋„ ํŒจ์น˜ projection์ด ํ•„์š”ํ•˜๋‹ค. ์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ณต๊ฐœ ๊ฐ€๋Šฅํ•œ results.json๊ณผ ๋น„๊ณต๊ฐœ labels.json์„ ๊ตฌ๋ถ„ํ•ด ์“ด๋‹ค. ๋‘ ์ถœ๋ ฅ ๋ชจ๋‘ ์žฌ์‹คํ–‰์—์„œ ๋ฐ”์ดํŠธ ์ผ์น˜ํ–ˆ๋‹ค. ํŒจ์น˜ ํ—ค๋”/๋ณธ๋ฌธ ๋ถ„๋ฆฌ, ์ƒˆ ํŒŒ์ผยท์ด๋ฆ„ ๋ณ€๊ฒฝยท๋ฐ”์ด๋„ˆ๋ฆฌยทํ•œ๊ธ€ยท์ค‘๋ณตยท์ž˜๋ชป๋œ ๊ฒฝ๋กœ์™€ schema/hash ๊ฒ€์‚ฌ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ๋‹ค. ๊ด€๋ฆฌ์šฉ ๋ณ€ํ™˜๊ธฐ์˜ ํ•„๋“œ ๊ฒฉ๋ฆฌยท๊ถŒํ•œยท๋ฎ์–ด์“ฐ๊ธฐ ๋ฐฉ์ง€ ํ…Œ์ŠคํŠธ๋„ ํ†ต๊ณผํ–ˆ๋‹ค. ์ด ๊ด€๋ฆฌ์šฉ ํ…Œ์ŠคํŠธ๋Š” ๋กœ์ปฌ PyArrow ํ™˜๊ฒฝ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ฉฐ CI์— ์ƒˆ PyArrow ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜๋‹ค.

์•„์ง ์‹ค์ œ ํŒŒ์ผ ํ›„๋ณด์™€ ์ •๋‹ต์„ ๋Œ€์กฐํ•˜๊ฑฐ๋‚˜ ์ˆœ์œ„๋ฅผ ํ‰๊ฐ€ํ•˜์ง€ ์•Š์•˜๋‹ค. ์›์ฒœ ๋ชฉ๋ก์€ ๋ชจ๋‘ ํ™•๋ณดํ–ˆ์œผ๋ฉฐ ์‚ฌ์ „ ๊ณ ์ •ํ•œ ํ›„์† ํ‰๊ฐ€ ๊ทœ์น™์— ๋”ฐ๋ผ ๋น„๊ตํ•  ์˜ˆ์ •์ด๋‹ค. ๊ธฐ์กด ์˜ˆ๋น„ ํ‰๊ฐ€์…‹๊ณผ ๋ชจ๋ธ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜๋‹ค.