본문 바로가기

Python

[python] 파이썬 고유식별자 UUID(Universally unique identifier) 생성하기

반응형

 

UUID란 뭘까? 

파이썬으로 UUID를 어떻게 만들 수 있을까?

 

 

UUID란?

범용 고유 식별자 (Universally unique identifier, UUID)는 식별자 표준으로, 개방 소프트웨어 재단(OSF)에서 분산 컴퓨팅 환경에 사용하기 위해 만든 표준이다. 아래와 같이 5가지 버전이 있다.

 

버전 1 (MAC 주소)
버전 2 (DCE 보안)
버전 3 (MD5 해시)
버전 4 (랜덤)
버전 5 (SHA-1 해시)

 

 

UUID 생성하기

import uuid

url = "https://devpouch.tistory.com"

uuid1 = uuid.uuid1()
uuid3 = uuid.uuid3(uuid.NAMESPACE_URL,url)
uuid4 = uuid.uuid4()
uuid5 = uuid.uuid5(uuid.NAMESPACE_URL,url)


print(uuid1)  # 93a3521f-8b69-11ed-b901-00d861381196
print(uuid3)  # b376caea-8dd1-3247-8cf8-f97e4170948a
print(uuid4)  # 767f12ad-c52c-4d6d-851b-cfc70b8c16c7
print(uuid5)  # 333e4631-c125-58eb-afb3-a0f0a425a834

파이썬에서 uuid는 해당 모듈을 임포트하여 사용할 수 있다. 

uuid2 같은 경우는 현재 거의 쓰이지 않아서, 제공하지 않는 것으로 추정된다. (출처)

 

 

각각의 버전별 설명은 아래와 같다.  공식 문서를 참고하였다.

함수명 설명
uuid.uuid1(node=None, clock_seq=None) 호스트 ID, 현재 시간, 시컨스 넘버를 기준으로 생성함
uuid.uuid3(namespace, name) 이름 공간 식별자(UUID) 및 이름(문자열)의 MD5 해시를 기반으로 UUID 생성.
uuid.uuid4() 랜덤
uuid.uuid5(namespace, name) 이름 공간 식별자(UUID) 및 이름(문자열)의 SHA-1 해시를 기반으로 UUID 생성.

 

UUID 표준에 따라 이름을 부여하면 고유성을 완벽하게 보장할 수는 없지만 실제로 중복될 가능성은 거의 없기 때문에 실무에서도 자주 사용된다.

 

 

 

반응형