UUID(Universally Unique Identifier)는 네트워크에서 고유성을 보장하기 위해 사용되는 128비트 숫자입니다. UUID는 주로 분산 시스템에서 객체나 엔티티를 식별하는 데 사용됩니다. UUID는 매우 큰 숫자 공간을 가지기 때문에 고유성을 거의 보장할 수 있습니다.
UUID는 여러 가지 표준 형식으로 생성될 수 있으며, 그 중 가장 일반적으로 사용되는 것은 RFC 4122에 정의된 형식입니다. RFC 4122는 UUID를 생성하는 5가지 방법을 정의하고 있으며, 각 방법은 다음과 같습니다:
1. UUID1 (시간 기반 UUID): 현재 시간과 랜덤 값 및 네트워크 카드의 MAC 주소를 기반으로 생성됩니다.
2. UUID2 (DCE 보안 UUID): 현재 시간과 POSIX UID/GID를 기반으로 생성됩니다.
3. UUID3 (이름 기반 UUID): 이름과 네임스페이스를 기반으로 MD5 해시를 사용하여 생성됩니다.
4. UUID4 (난수 기반 UUID): 난수를 기반으로 생성됩니다.
5. UUID5 (이름 기반 UUID): 이름과 네임스페이스를 기반으로 SHA-1 해시를 사용하여 생성됩니다.
파이썬에서는 uuid 모듈을 사용하여 쉽게 UUID를 생성할 수 있습니다. 예를 들어:
import uuid
# UUID1 생성 (시간 기반)
uuid1 = uuid.uuid1()
print("UUID1:", uuid1)
# UUID3 생성 (이름 기반, MD5)
namespace = uuid.NAMESPACE_DNS
name = 'example.com'
uuid3 = uuid.uuid3(namespace, name)
print("UUID3:", uuid3)
# UUID4 생성 (난수 기반)
uuid4 = uuid.uuid4()
print("UUID4:", uuid4)
# UUID5 생성 (이름 기반, SHA-1)
uuid5 = uuid.uuid5(namespace, name)
print("UUID5:", uuid5)
이와 같이, 각 UUID는 특정한 생성 방법에 따라 고유한 식별자를 제공하며, 이를 통해 네트워크 상에서 객체나 엔티티를 충돌 없이 식별할 수 있습니다.