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

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

2022-10-19 last update

6 minutes reading javascript opensource webdev node


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