기술 정리 & CS/기타 지식

[UUID] UUID 란? (with. Python, JS)

yubi5050 2022. 7. 22. 10:20

 

📌 UUID 란?

UUID (Universally Unique IDentifier)로 범용 고유 식별자를 의미한다. 

 

주로 분산 시스템 환경에서 각기 다른 시스템(저장소)들이 가지는 기본 key번호가 충돌 날 수 있으니, 유일성을 보장하기 위해 UUID가 등장하였다.

 

UUID는 32자리 ( 8 - 4 - 4 - 4 -12 )의 16진수로 표현되며, 하이푼을 넣어 5개의 그룹으로 구분 되며, 경우의 수가 어마무시해, 중복될 확률이 매우매우 낮다

# 예시 코드
ex) 37f9e500-13ab-599a-3c1a-4412f50900ab

 

📌 UUID 버전 종류

UUID v1 : 타임스탬프 (시간) 기준

UUID v3 : MD5 해시 기준

UUID v4 : 랜덤값 기반

UUID v5 : SHA-1 해시 기준

 

일반적으로 v1, v4 를 많이 사용

 

 

📌 Python UUID 사용 방법

# pip install uuid
import uuid

name = 'https://yubi5050.tistory.com/'
print(uuid.uuid1()) # 시간 기준 UUID 생성
print(uuid.uuid3(uuid.NAMESPACE_URL, name)) # 네임스페이스와 이름간의 MD5 해시에서 UUID 생성
print(uuid.uuid4()) # 랜덤 uuid 생성
print(uuid.uuid5(uuid.NAMESPACE_URL, name)) # 네임스페이스와 이름간의 SHA-1 해시에서 UUID 생성

 

📌 Javascript UUID 사용 방법

// uuid v4 생성
function uuidv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}