ColorID: ๐ŸŒˆ JavaScript์˜ ๊ณ ์œ ํ•œ 4์ƒ‰ ID ๋ฌธ์ž์—ด ์ƒ์„ฑ๊ธฐ

3295 ๋‹จ์–ด javascriptopensourcewebdevnode


์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ‰์ƒ - JavaScript์˜ ๊ณ ์œ ํ•œ 4์ƒ‰ ID ๋ฌธ์ž์—ด ์ƒ์„ฑ๊ธฐ
ColorID์˜ ์„ฑ๋Šฅ์€ UUID ๋ฐ NanoID๋ณด๋‹ค ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. (ColorID์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‹ค์ œ๋กœ UUID.V4์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.)

์†Œ์…œ ๋„คํŠธ์›Œํฌ์—์„œ ID๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ColorID๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ฐ”ํƒ€, NFT ๋“ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฐœ์ธํ™”๋œ ์†Œ์…œ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ColorID๋Š” 12๊ฐœ์˜ ๋ถ€ํ˜ธ ์—†๋Š” 8๋น„ํŠธ ์ˆซ์ž(u8)์—์„œ RGB ์ฑ„๋„์˜ 4๊ฐ€์ง€ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฏ€๋กœ ColorID์˜ ์ด๋ก ์  ํ•ฉ๊ณ„๋Š” (2^8)^12 = 2^96 โ‰ˆ 7*10^28 ์ž…๋‹ˆ๋‹ค. ColorID๊ฐ€ 1์ดˆ๋งˆ๋‹ค ์ „ ์„ธ๊ณ„ 78์–ต ๋ช…์˜ ์ธ๊ตฌ์— ๋Œ€ํ•ด ์ƒ์„ฑ๋œ๋‹ค๋ฉด ColorIDs๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ 3000์–ต ๋…„์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ColorID ํ•˜๋“œ์›จ์–ด ๋žœ๋ค ์ƒ์„ฑ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ „์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4์ƒ‰ ์ •๋ฆฌ ๋•Œ๋ฌธ์— ์ธ์ ‘ํ•œ ๋‘ ์˜์—ญ์ด ๊ฐ™์€ ์ƒ‰์„ ๊ฐ€์ง€์ง€ ์•Š๋„๋ก ์•„๋ฐ”ํƒ€๋‚˜ NFT์˜ ์˜์—ญ์„ ์ƒ‰์น ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ 4์ƒ‰์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค!

์„ค์น˜




$ npm i colorid.js


์šฉ๋ฒ•




import colorid from "colorid.js";

colorid(); // #5B34F9-#34F9DF-#F9DF4E-#DF4EB5

#5B34F9-#34F9DF-#F9DF4E-#DF4EB5


์„ฑ๋Šฅ




crypto.randomUUID    8,829,532 ops/sec
colorid              3,252,649 ops/sec
nanoid               2,925,204 ops/sec
uuid v4                910,855 ops/sec


๋ฒค์น˜๋งˆํฌ ๊ตฌ์„ฑ: Ubuntu, Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz, Node.js 18.9.0

(runs: 3045998209)

ํŠนํ—ˆ



MIT

๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋œ ColorID


  • Rust
  • ์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ