UUID 생성기

다음

UUID는 중앙 기관과 조율하지 않고도 전역적으로 고유한 식별자를 제공합니다. 이 생성기는 RFC 4122를 준수하는 v1(타임스탬프 + MAC), v4(무작위), v7(타임스탬프 접두, 정렬 가능) 값을 만듭니다. 버전을 고르고 1개 또는 1000개를 요청한 뒤 목록을 시드 데이터, API 키 생성, 단위 테스트에 복사하세요.

UUID를 생성하는 방법

  1. 1

    버전 선택

    일반 무작위에는 v4, 정렬 순서가 중요하면 v7, 타임스탬프 정보가 필요하면 v1.

  2. 2

    수량 선택

    한 번에 UUID 하나 또는 최대 10,000개 배치.

  3. 3

    생성

    값은 암호학적 무작위성을 위해 브라우저의 crypto API를 사용합니다.

  4. 4

    복사 또는 다운로드

    줄바꿈 목록, JSON 배열, CSV로 가져가세요.

어떤 UUID 버전을 써야 할까?

버전 구조 가장 적합한 용도
v1 타임스탬프 + 클록 + MAC 주소 시간 순서가 필요한 로그 ID
v4 122비트 무작위 일반 고유 ID, 테스트 픽스처
v7 Unix 타임스탬프 ms + 무작위(정렬 가능) 데이터베이스 기본 키

v7이 기본값이 되어가는 이유

v4는 무작위라서 데이터베이스 기본 키로는 형편없습니다: 삽입이 B-트리 전역에 흩어져 쓰기 처리량을 해칩니다. v7(2024년 RFC 9562에서 확정)은 UUID에 48비트 밀리초 타임스탬프를 접두로 붙여 새 행이 인덱스 끝에 안착합니다. 여전히 고유성과 무조율을 얻으면서, 생성 시간 기준의 대략적인 정렬 순서도 덤으로 얻습니다.

형식 규칙

UUID는 128비트로, 8-4-4-4-12 패턴의 32개 16진수 자릿수로 렌더링됩니다:

018f5b9c-7d4a-7a1b-8c0e-2e1b3c4d5e6f
         ^^                ^
         버전 니블          변형 비트
  • 버전 니블은 13번째 문자입니다(018f5b9c-7d4a- 다음). v4는 4, v7은 7 등입니다.
  • 변형 비트는 17번째 문자의 첫 두 비트입니다. RFC 4122 UUID는 10(상위 니블 8/9/a/b)입니다.

충돌 확률

v4의 경우 중복 생성 확률은 무시할 만큼 작습니다: 충돌 확률 50%에 도달하려면 270경(2.7 × 10^18) 개의 UUID를 생성해야 합니다. 대부분의 데이터베이스가 평생 볼 수보다 많습니다. v7은 무작위 꼬리를 공유하므로 같은 밀리초 안에서 충돌 확률이 동등합니다.

자주 묻는 질문

역사적으로는 그렇습니다. 생성 호스트의 MAC 주소를 담았기 때문입니다. 최신 생성기(이 도구 포함)는 무작위 48비트 노드 ID로 대체하므로 v1은 더 이상 하드웨어를 드러내지 않습니다.

CSPRNG로 생성하면(이 도구는 crypto.getRandomValues로 사용) v4는 세션 토큰으로 쓸 만큼 예측 불가능합니다. 하지만 UUID 자체는 비밀이 아닙니다, 비밀이 필요하면 비밀로 명명하세요.

예, URL에 안전합니다(16진수와 하이픈뿐). 더 짧게 표시하려면 원시 128비트를 base-32나 base-62로 인코딩하거나, 26자이고 v7처럼 정렬 가능한 ULID를 사용하세요.

아니요. 생성은 브라우저에서 일어나며 값은 절대 서버에 닿지 않습니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다