본문으로 건너뛰기

무작위 UUID v4 생성하기

버전 4 UUID는 128비트 값이며 그중 122비트가 암호학적으로 안전한 난수원에서 나옵니다. 나머지 6비트는 버전과 RFC 변형을 나타내므로 모든 UUID v4는 세 번째 그룹이 4로 시작합니다.

계산 예시

입력한 무작위 바이트
9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
결과
9d417c02-e85b-43f6-aa7e-c19406d3b85f
생성한 UUID 수중복이 하나 이상 생길 확률
10⁶≈ 9.4 × 10⁻²⁶
10⁹≈ 9.4 × 10⁻²⁰
10¹²≈ 9.4 × 10⁻¹⁴
10¹⁵≈ 9.4 × 10⁻⁸

중복 확률이 50%가 되는 UUID 수: ≈ 2.71 × 10¹⁸

작동 방식

  • 생성기는 16바이트를 안전한 무작위 데이터로 채운 다음 바이트 6의 상위 니블을 4(버전)로, 바이트 8의 상위 2비트를 10(변형)으로 설정합니다. 그래서 세 번째 그룹은 4로, 네 번째 그룹은 8, 9, a, b 중 하나로 시작합니다.
  • 가능한 값이 2¹²²개이므로 생일 문제 근사식 p ≈ 1 − e^(−n²/2¹²³)로 무작위 UUID n개에 중복이 하나 이상 있을 확률을 구할 수 있습니다.
  • UUID v4에는 타임스탬프나 하드웨어 정보가 들어 있지 않습니다. 식별자로 사용하고, 비밀번호나 인증용 비밀 값으로는 사용하지 마세요.
UUID 버전

한 번에 1-100개의 UUID 생성

UUID 정보

UUID v1: 타임스탬프와 UUID를 생성하는 컴퓨터의 MAC 주소를 포함하는 시간 기반 UUID. UUID가 생성된 시간을 알아야 할 때 유용합니다.

UUID v4: 무작위로 생성된 UUID. 가장 일반적으로 사용되는 버전이며 정보 유출을 최소화하면서 우수한 고유성을 제공합니다.

UUID v5: SHA-1 해싱을 사용하는 이름 기반 UUID. 동일한 네임스페이스와 이름이 주어지면 항상 동일한 UUID를 얻습니다. 결정론적 UUID 생성에 유용합니다.

다른 UUID 가이드