๐ŸŽฒULIDยทNanoID ๊ณ ์œ  ์‹๋ณ„์ž ์ƒ์„ฑ๊ธฐ

์ •๋ ฌ ๊ฐ€๋Šฅํ•œ ๊ณ ์œ  ID ์ƒ์„ฑ

๊ด€๋ จ๋œ ๋„๊ตฌ

๋„๊ตฌ ์„ค๋ช…

ULID ์™€ NanoID ๋ฅผ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ULID ๋Š” 26์ž ๊ณ ์ •์ด๊ณ , NanoID ๋Š” ๊ธธ์ด์™€ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ๊ณจ๋ผ์„œ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ๋ฌด์ž‘์œ„ ๋น„ํŠธ์™€ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ ์ˆ˜, 50% ํ™•๋ฅ ๋กœ ์ถฉ๋Œ์ด ์ƒ๊ธฐ๋Š” ๊ฐœ์ˆ˜๋ฅผ ํ•จ๊ป˜ ๊ณ„์‚ฐํ•ด ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.

ULID ๋Š” 128๋น„ํŠธ๋ฅผ 48๋น„ํŠธ ํƒ€์ž„์Šคํƒฌํ”„์™€ 80๋น„ํŠธ ๋‚œ์ˆ˜๋กœ ๋‚˜๋ˆ  ์“ฐ๊ณ , ๊ทธ 128๋น„ํŠธ๋ฅผ Crockford base32 ๋กœ ์ ์–ด 26์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์•ž 10์ž๊ฐ€ ๋ฐ€๋ฆฌ์ดˆ ํƒ€์ž„์Šคํƒฌํ”„, ๋’ค 16์ž๊ฐ€ ๋‚œ์ˆ˜์ž…๋‹ˆ๋‹ค. ์•ŒํŒŒ๋ฒณ์ด ASCII ์ˆœ์„œ๋Œ€๋กœ๋ผ์„œ ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ ์ •๋ ฌํ•˜๋ฉด ์‹œ๊ฐ„์ˆœ์ด ๋˜์ง€๋งŒ, ๊ฐ™์€ ๋ฐ€๋ฆฌ์ดˆ ์•ˆ์˜ ์ˆœ์„œ๋Š” ๊ทœ๊ฒฉ์ด ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. NanoID ๋Š” ๊ธฐ๋ณธ 21์ž์— 64์ž ์•ŒํŒŒ๋ฒณ์„ ์จ์„œ 126๋น„ํŠธ, ์ฆ‰ UUID ๋ฒ„์ „ 4์˜ 122๋น„ํŠธ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. 2026๋…„ 10์›” ๊ธฐ์ค€ ๊ทœ๊ฒฉ์ž…๋‹ˆ๋‹ค.

๋ฌด์ž‘์œ„ ๊ฐ’์€ ๋ชจ๋‘ crypto.getRandomValues ๋กœ ๋งŒ๋“ค๊ณ  Math.random ์€ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž ์ง‘ํ•ฉ ํฌ๊ธฐ๊ฐ€ 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ฉด ๋ฒ”์œ„๋ฅผ ๋„˜๋Š” ์ถ”์ถœ๊ฐ’์„ ๋ฒ„๋ ค ์น˜์šฐ์นจ์„ ์—†์•ฑ๋‹ˆ๋‹ค. ์ถฉ๋Œ ๊ฐœ์ˆ˜๋Š” ์ƒ์ผ ๋ฌธ์ œ ๊ทผ์‚ฌ์‹์ด๋ผ ๋ณด์žฅ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋งŒ๋“ค์–ด์ง„ ID ๋Š” ๋ธŒ๋ผ์šฐ์ € ์•ˆ์—์„œ๋งŒ ์ƒ๊ธฐ๊ณ  ์ €์žฅ๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋ณด์•ˆ ํ† ํฐ์ด๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  ์“ฐ์ง€ ๋งˆ์„ธ์š”.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

ULID ๊ฐ€ ์‹œ๊ฐ„์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค๋Š” ๋ง์€ ๋ฌด์Šจ ๋œป์ธ๊ฐ€์š”?

์•ž 10์ž๊ฐ€ ๋ฐ€๋ฆฌ์ดˆ ํƒ€์ž„์Šคํƒฌํ”„์ด๊ณ  Crockford base32 ์•ŒํŒŒ๋ฒณ์ด ASCII ์˜ค๋ฆ„์ฐจ์ˆœ์ด๋ผ, ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ์ •๋ ฌํ•˜๋ฉด ๋งŒ๋“  ์‹œ๊ฐ ์ˆœ์„œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฐ™์€ ๋ฐ€๋ฆฌ์ดˆ์— ๋งŒ๋“  ID ๋“ค ์‚ฌ์ด์˜ ์ˆœ์„œ๋Š” ๊ทœ๊ฒฉ์ด ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

NanoID ๊ธธ์ด๋ฅผ ์ค„์ด๋ฉด ์–ผ๋งˆ๋‚˜ ์œ„ํ—˜ํ•ด์ง€๋‚˜์š”?

๋ฌด์ž‘์œ„ ๋น„ํŠธ๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ ํฌ๊ธฐ์˜ ๋กœ๊ทธ2 ๊ฐ’์— ๊ธธ์ด๋ฅผ ๊ณฑํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ 64์ž์—์„œ 21์ž๋Š” 126๋น„ํŠธ์ง€๋งŒ 10์ž๋กœ ์ค„์ด๋ฉด 60๋น„ํŠธ๊ฐ€ ๋˜์–ด 50% ์ถฉ๋Œ ๊ฐœ์ˆ˜๊ฐ€ ์ˆ˜์‹ญ์–ต ๊ฐœ๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์˜ ๊ทธ ๊ฐœ์ˆ˜๋ฅผ ์“ฐ๋ ค๋Š” ๊ทœ๋ชจ์™€ ๋น„๊ตํ•˜์„ธ์š”.

์ด ๋„๊ตฌ๊ฐ€ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

ID ๋ฅผ ํ•ด์„ํ•ด ์ชผ๊ฐœ๊ฑฐ๋‚˜ UUID ๋ฅผ ๋งŒ๋“ค์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ๊ณผ ์กฐํ•ฉ ์ˆ˜ ๊ณ„์‚ฐ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.