๋กœ์ผ“๐Ÿพ
article thumbnail
์ด ๊ธ€์€ koreanhole ๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค.

Intro

์ตœ๊ทผ UOS๊ณต์ง€์‚ฌํ•ญ ์•ฑ์˜ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด Firebase์˜ Firestore๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ Nestjs๋กœ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.

UOS๊ณต์ง€์‚ฌํ•ญ์˜ ์„œ๋ฒ„์—๋Š” ์ด 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ( department, notice, user )์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ๋ชจ๋ธ์˜ ๋ ˆ์ฝ”๋“œ ๋งˆ๋‹ค ๊ณ ์œ ์˜ id๊ฐ’์„ ๋ฐœ๊ธ‰ํ–ˆ๋Š”๋ฐ ๋ชจ๋‘ uuid(v4)๋กœ ๋ฐœ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

uuid๋ฅผ ๋งˆ๊ตฌ์žก์ด๋กœ ๋ฐœ๊ธ‰ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜น์‹œ ๋‚˜์ค‘์— ๊ฒน์น˜๋Š” uuid๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ?

 


UUID ์†Œ๊ฐœ

  • uuid๋Š” ๋ฒ”์šฉ๊ณ ์œ ์‹๋ณ„์ž(Universal Unique IDentifier)๋ผ๊ณ  ํ•œ๋‹ค.
  • ๋„คํŠธ์›Œํฌ์ƒ์— ์กด์žฌํ•˜๋Š” ๊ฐœ์ฒด๋“ค์„ ์‹๋ณ„ํ•˜๊ณ  ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ฃผ์ฒด๊ฐ€ ์Šค์Šค๋กœ ์ด๋ฆ„์„ ์ง“๋„๋ก ํ•˜๋ฉฐ ๊ณ ์œ ์„ฑ์„ ์ถฉ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ด 36๊ฐœ์˜ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.(32๊ฐœ์˜ ๋ฌธ์ž์™€ 4๊ฐœ์˜ ํ•˜์ดํ”ˆ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ด 5๊ฐœ์˜ ๊ทธ๋ฃน)
    • ์˜ˆ์‹œ: 550e8400-e29b-41d4-a716-446655440000
      • a~f๊นŒ์ง€์˜ ์•ŒํŒŒ๋ฒณ ๊ฐ’๋“ค์ด ๋Œ€๋ฌธ์ž์ธ์ง€ ์†Œ๋ฌธ์ž์ธ์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.(16์ง„์ˆ˜)
    • 128๋น„ํŠธ์˜ ๊ฐ’์ด๋‹ค.
  • ์ด 340,282,366,920,938,463,463,374,607,431,768,211,456๊ฐœ์˜ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ UUID๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค...

UUID(v4)๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •

  1. ๋žœ๋คํ•œ 16๋ฐ”์ดํŠธ(128๋น„ํŠธ)๋ฅผ ๋งŒ๋“ ๋‹ค.
  2. ํŠน์ • ๋น„ํŠธ๋ฅผ RFC 4122์˜ section 4.4์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.
    • ์˜ˆ์‹œ uuid: 550e8400-e29b-41d4-a716-446655440000
      • ์œ„์—์„œ ๋ฐ‘์ค„ ์นœ 4์˜ ์œ„์น˜๋Š” ํ•ญ์ƒ '4'๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
      • a๊ฐ€ ์œ„์น˜ํ•œ ์ž๋ฆฌ๋Š” ํ•ญ์ƒ '8', '9', 'a', 'b' ๋ฌธ์ž ์ค‘ ํ•˜๋‚˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

UUID v4๋Š” ์ค‘๋ณต๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†์„๊นŒ?

uuid v4๋Š” ์ƒ์„ฑ ์›๋ฆฌ์ƒ ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹ค๋งŒ ๊ทธ ์ค‘๋ณต๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ํฌ๋ฐ•ํ•˜๋‹ค. ์ด 340,282,366,920,938,463,463,374,607,431,768,211,456 ๊ฐœ์˜ uuid๊ฐ€ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•œ๋ฐ ์ด ์ค‘ ์ค‘๋ณต๋˜๋Š” uuid๊ฐ€ ์ƒ์„ฑ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์–ผํ• ๋ด๋„ ํฌ๋ฐ•ํ•ด๋ณด์ธ๋‹ค.

๊ทธ๋ž˜๋„ ๋‚˜์˜ uuid๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜์ง€?

 

์ธ๊ฐ„์ด ๋งค๋…„ ํ•˜๋Š˜์—์„œ ๋–จ์–ด์ง€๋Š” ์šด์„์— ๋งž์„ ํ™•๋ฅ ์ด 0.00000000006 ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด ํ™•๋ฅ ์€ ์ˆ˜์‹ญ์กฐ์˜ uuid(v4)๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋‹จ ํ•˜๋‚˜์˜ ์ค‘๋ณต๋œ uuid๊ฐ€ ์ƒ์„ฑ๋  ํ™•๋ฅ ๊ณผ ๊ฐ™๋‹ค.

๋˜ํ•œ, ๋งค ์ดˆ 10์–ต๊ฐœ์˜ uuid๋ฅผ 100๋…„์— ๊ฑธ์ณ์„œ ์ƒ์„ฑํ•  ๋•Œ ๋‹จ ํ•˜๋‚˜์˜ uuid๊ฐ€ ์ค‘๋ณต๋  ํ™•๋ฅ ์€ 50%์ด๋‹ค.

UOS๊ณต์ง€์‚ฌํ•ญ์˜ ์„œ๋ฒ„์—๋Š” ์•ฝ 3~4๋งŒ๊ฐœ์˜ ๊ณต์ง€์‚ฌํ•ญ์ด ์ €์žฅ๋  ์˜ˆ์ •์ธ๋ฐ ์ด ์ค‘ uuid์˜ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•  ํ™•๋ฅ ์€ ๋งค์šฐ ์ ์–ด๋ณด์ธ๋‹ค.

๊ทธ๋ž˜๋„... ํ˜น์‹œ..?

uuid v4๋Š” ๊ฑฐ์˜ ๋žœ๋คํ•œ uuid๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ž˜๋„..? ํ˜น์‹œ..? uuid๊ฐ€ ๊ฒน์น ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฑฑ์ •์ด ์žˆ๋‹ค๋ฉด uuid v1์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

uuid v1์€ ๋„คํŠธ์›Œํฌ ์นด๋“œ์˜ MAC์ฃผ์†Œ(48๋น„ํŠธ)์™€ ํ˜„์žฌ ์‹œ๊ฐ(60๋น„ํŠธ)์„ ๊ธฐ๋ฐ˜์œผ๋กœ uuid๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ํ˜„์žฌ ์‹œ๊ฐ์€ 1582๋…„ 10์›” 15์ผ๊ณผ ํ˜„์žฌ ์‹œ๊ฐ์˜ nanosecond์˜ ์ฐจ์ด๋ฅผ ๋งํ•œ๋‹ค. 3603๋…„๋„๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ uuid v1์„ ์‚ฌ์šฉํ•˜์—ฌ uuid๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜คํžˆ๋ ค uuid v4์— ๋น„ํ•ด ์ค‘๋ณต ๊ฐ€๋Šฅ์„ฑ์ด ํ›จ์”ฌ ๋‚ฎ์€ uuid๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ uuid v1์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ uuid๊ฐ’์„ ํ†ตํ•ด MAC์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ MAC์ฃผ์†Œ์™€ ์ƒ์„ฑ ์‹œ๊ฐ„์ด ์œ ์ถ” ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— uuid ์—ญ์‹œ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.


๊ฒฐ๋ก 

uuid v4๋Š” ์ถฉ๋ถ„ํžˆ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ผํ•œ uuid๋ฅผ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋ฉฐ uuid๊ฐ€ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ๋Š” ํ†ต๊ณ„์  ๊ฐ€๋Šฅ์„ฑ ์—ญ์‹œ ๊ทนํžˆ ํฌ๋ฐ•ํ•˜๊ธฐ์— uuid๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ์–ด์ฉŒ์ง€ ํ•˜๋Š” ๊ฑฑ์ •์€ ์•ˆํ•ด๋„ ๋œ๋‹ค.

 

uuid v1์€ ํ˜„์žฌ ์‹œ๊ฐ์„ ๊ธฐ๋ฐ˜์œผ๋กœ uuid๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ uuid๊ฐ€ ์ƒ์„ฑ๋œ ์‹œ๊ฐ๊ณผ MAC์ฃผ์†Œ๋กœ uuid๋ฅผ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค.

profile on loading

Loading...