UUID 생성기

브라우저에서 UUID v4(무작위) 식별자를 대량으로 생성합니다. 표준・대문자・하이픈 없음・중괄호・URN 등 다양한 표시 형식을 지원합니다.

UUID 버전 한눈에 보기

버전 생성 방식 설명
UUID v1 타임스탬프 + MAC 주소 생성 시각과 네트워크 카드의 MAC 주소로부터 생성됩니다. 생성한 장치가 드러날 수 있어 개인정보 문제가 있으며, 현재는 신규 시스템에서 거의 채택되지 않습니다.
UUID v3 네임스페이스 + MD5 해시 네임스페이스와 이름 문자열을 MD5로 해시하여 생성합니다. 결정적(deterministic)이라 같은 입력에서는 항상 같은 UUID가 나옵니다. MD5의 충돌 취약점 때문에 신규 용도에는 v5가 권장됩니다.
UUID v4 완전 무작위 암호학적으로 안전한 난수로부터 생성됩니다. 출처 정보를 포함하지 않아 안전하고 구현도 간단해 가장 널리 사용되는 방식입니다. 이 도구가 생성하는 형식입니다.
UUID v5 네임스페이스 + SHA-1 해시 v3과 같은 네임스페이스 방식이지만 SHA-1을 사용합니다. 결정적 생성이 필요한 경우(같은 데이터에서 항상 같은 ID를 재현하고 싶은 경우)에 권장됩니다.
UUID v6 재배열 타임스탬프 + 무작위 2024년 RFC 9562로 표준화되었습니다. v1의 타임스탬프 필드 순서를 바꿔 바이트열의 사전순과 시간순이 일치하도록 하여 데이터베이스 인덱스 효율을 높였습니다.
UUID v7 Unix 타임스탬프 + 무작위 2024년 RFC 9562로 표준화되었습니다. 밀리초 단위의 Unix 타임스탬프로 시작해 생성 순서대로 정렬할 수 있습니다. 신규 개발에서 v4의 대안으로 채택이 확대되고 있습니다.

  • 생성된 UUID는 브라우저 내 Web Crypto API로 처리되며, toolbase.cc 서버로 전송되지 않습니다.
  • 데이터베이스 기본 키나 API 요청 ID처럼 고유성은 필요하지만 순차적이고 예측 가능한 ID는 원치 않을 때 UUID v4가 널리 사용됩니다.
  • UUID v4는 128비트 중 122비트가 무작위이므로 충돌 확률이 천문학적으로 낮습니다(10억 개를 생성해도 충돌 확률이 약 50%에 도달하려면 약 2.7×10¹⁸개가 필요합니다).
  • "하이픈 없음" 형식은 URL 경로 세그먼트나 파일명으로 쓰기 편리합니다. "중괄호 포함" 형식은 Windows COM/레지스트리에서 쓰이는 GUID 표기와 같습니다.
  • 생성 개수를 늘린 뒤 "전체 복사"를 사용하면 테스트 데이터나 시드 데이터를 한 번에 대량으로 만들 수 있습니다.

자주 묻는 질문

이론적으로 0은 아니지만, UUID v4는 122비트의 무작위성을 가지므로 실무적으로는 무시할 수 있는 수준입니다. 초당 10억 개의 UUID를 100년간 계속 생성해도 중복이 한 번 발생할 확률은 약 50%에 불과합니다.

네, 기본적으로 같은 개념입니다. GUID(Globally Unique Identifier)는 마이크로소프트가 자사 구현에 사용한 명칭으로, UUID와 호환되는 128비트 식별자를 가리킵니다. 중괄호 형식 {xxxxxxxx-xxxx-...}은 Windows COM/레지스트리에서 흔히 쓰이는 GUID 표기입니다.

UUID v4는 무작위이기 때문에 연속된 정수(AUTO_INCREMENT)에 비해 인덱스 크기가 커지고 삽입 성능이 떨어지는 경우가 있습니다. 삽입 순서대로 정렬이 필요하다면 시간 정보를 포함한 UUID v7이나 대안으로 ULID 도입을 검토할 가치가 있습니다.

고유성만 필요하다면 UUID v4가 가장 간단하고 안전합니다. 같은 입력에서 항상 같은 ID를 재현하고 싶다면 v5, 생성 순서 정렬이나 DB 삽입 효율을 중시하는 신규 개발이라면 v7이 유력한 선택입니다. v1・v3는 현재 신규 채택이 줄고 있습니다.
ツールくん

여담 ― 왜 128비트나 쓰는가

UUID(Universally Unique Identifier)는 1980년대 Apollo Computer가 분산 시스템을 위해 고안했고, 이후 OSF(Open Software Foundation)가 DCE(Distributed Computing Environment)의 일부로 표준화했습니다. 현재 규격은 IETF RFC 4122(2005년)에 있으며, 2024년에는 확장판인 RFC 9562가 공개되었습니다.

128비트는 과해 보일 수 있지만, 이 길이야말로 여러 서버나 기기가 서로 전혀 통신하지 않고도 각자 독립적으로 ID를 발급하면서도 실제로는 충돌하지 않도록 보장하기 위한 설계입니다. 중앙 ID 발급 서버를 두고 순번을 관리하는 방식은 그 서버가 단일 장애점이 되거나 발급마다 통신이 필요해지는 비용이 발생합니다. UUID는 이러한 조정 비용을 완전히 없애는 대신, 충돌 확률을 무시할 수 있는 수준까지 낮출 만큼 충분한 무작위성을 사용합니다.

반면 UUID v4는 무작위이기 때문에 데이터베이스의 B-Tree 계열 인덱스에 삽입할 때 삽입 위치가 흩어져 페이지 분할이 자주 발생해 성능이 떨어지는 약점이 있습니다. 이 문제를 해결하기 위해 고안된 것이 시간순 정렬이 가능한 UUID v7로, 맨 앞에 Unix 타임스탬프를 두어 무작위성을 유지하면서도 삽입 지역성을 확보했습니다.