κ³ μ μλ³μμ κΈλ‘λ² νμ€, UUID v4 μλ²½ κ°μ΄λ
**UUID(Universally Unique Identifier)**λ λΆμ° μ»΄ν¨ν νκ²½μμ μ 보λ₯Ό μλ³νκΈ° μν΄ μ¬μ©λλ 128λΉνΈ μ«μλ‘, μ€μ κ΄λ¦¬ 기ꡬ μμ΄λ μ μΈκ³μμ μ μΌν κ°μ 보μ₯νλλ‘ μ€κ³λμμ΅λλ€. κ·Έμ€μμλ **λ²μ 4(v4)**λ μ΄λ¦μ΄λ μκ° κ°μ λΆκ° μ 보 μμ΄ μ€μ§ 무μμ λμ(Random Number)λ§μ κΈ°λ°μΌλ‘ μμ±λ©λλ€. μ΄λ μλ³μλ‘λΆν° μμ± μκ°μ΄λ κΈ°κΈ° μ 보λ₯Ό μ μΆν μ μκ² νμ¬ λ³΄μκ³Ό κ°μΈμ 보 λ³΄νΈ μΈ‘λ©΄μμ ν° μ₯μ μ κ°μ§λλ€.
λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€κ³ν λ μμ°¨μ μΈ μ«μ(`Auto Increment`) λμ UUIDλ₯Ό μ¬μ©νλ μ¬λ‘κ° λκ³ μμ΅λλ€. μμ°¨μ IDλ λ€μ λ°μ΄ν°μ κ°μ μμΈ‘νκΈ° μ¬μ 보μ μ·¨μ½μ μ΄ λ μ μκ³ , μ¬λ¬ λ°μ΄ν°λ² μ΄μ€ μλ²λ₯Ό ν΅ν©ν λ μΆ©λμ΄ λ°μν μνμ΄ ν½λλ€. λ°λ©΄ UUID v4λ λ 립μ μΈ μ¬λ¬ μμ€ν μμ λμμ λ°μ΄ν°λ₯Ό μμ±ν΄λ μΆ©λ νλ₯ μ΄ μ¬μ€μ '0'μ μλ ΄νλ―λ‘, λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²(MSA)λ μ€νλΌμΈ μ°μ λͺ¨λ°μΌ μ±μμ λ°μ΄ν° λκΈ°ν μ νμμ μΈ λκ΅¬λ‘ μ리 μ‘μμ΅λλ€.
μ¬νμ°λμ UUID μμ±κΈ°λ RFC 4122 νμ€μ μλ²½ν μ€μνλ©°, λΈλΌμ°μ μ μνΈνμ μΌλ‘ μμ ν λμ μμ±κΈ°(`crypto.getRandomValues`)λ₯Ό μ¬μ©νμ¬ λμ μ λ’°λμ μλ³μλ₯Ό μ 곡ν©λλ€. ν μ€νΈμ© λλ―Έ λ°μ΄ν°κ° νμν λλ, μλ‘μ΄ νλ‘μ νΈμ μ€μ νμΌμ κ³ μ ν€λ₯Ό λ£μ΄μΌ ν λ 볡μ‘ν λͺ λ Ήμ΄λ λΌμ΄λΈλ¬λ¦¬ μ€μΉ μμ΄ μ¦μ νμ©ν΄ 보μΈμ. λλ μμ± κΈ°λ₯μ ν΅ν΄ μμ κ°μ IDλ₯Ό ν λ²μ ν보νκ³ ν΄λ¦½λ³΄λμ 볡μ¬ν μ μμ΄ μμ μκ°μ νκΈ°μ μΌλ‘ λ¨μΆν΄ λ립λλ€.
μμ£Ό 묻λ μ§λ¬Έ (FAQ)
A: 8-4-4-4-12 ννμ νμ΄νμ ν¬ν¨νμ¬ μ΄ 36μ리μ λ¬Έμμ΄λ‘ ννλ©λλ€.
A: λ€, UUIDλ νμ€ κ·κ²©μΌ λΏμ΄λ©° μμ±λ κ°μ λν μ΄λ ν μ μκΆμ΄λ λΉμ©λ λ°μνμ§ μμ΅λλ€.
A: λ³Έ λꡬλ νλ λΈλΌμ°μ μ 보μ λμ μμ§μ μ¬μ©νλ―λ‘, νλ‘λμ νκ²½μ κΈ°λ³Έ μλ³μλ‘ μ¬μ©νκΈ°μ μΆ©λΆν μνΈλ‘νΌλ₯Ό κ°μ§λλ€.