UUID 생성기

UUID v4ㆍv7ㆍNIL을 원하는 개수만큼 한 번에 생성합니다. 다양한 포맷, 복사, 파일 다운로드를 지원합니다.

생성 결과

위에서 옵션을 선택하고 생성하기를 눌러주세요.

UUID 검사기

UUID를 붙여넣으면 버전ㆍ변형ㆍ생성 시각(v7) 등을 확인할 수 있습니다.

UUID란?

UUID(Universally Unique Identifier)는 128비트의 고유 식별자로, RFC 4122 / RFC 9562에 정의되어 있습니다. 중앙 발급기관 없이도 충돌 가능성이 사실상 0에 가깝게 식별자를 생성할 수 있어 데이터베이스 기본 키, 분산 시스템, 파일 식별자 등에 널리 사용됩니다.

버전별 차이

v7을 권장하는 이유

UUID v4는 완전 무작위라 데이터베이스 B-tree 인덱스에 삽입할 때 단편화가 발생하기 쉽습니다. v7은 시간 순으로 단조 증가하므로 인덱스 끝에 추가되어 INSERT 성능이 좋고, 생성 시각을 UUID 자체에서 추출할 수 있습니다.

UUID를 JSON 페이로드에 담아 처리한다면 JSON 포매터ㆍ변환기를, 구조화 데이터의 @id 값으로 활용한다면 JSON-LD 생성기도 함께 참고하세요.

UUID 사용 시 흔한 오해와 함정

UUID는 거의 무한히 생성 가능하지만 잘못 쓰면 데이터베이스 성능을 갉아먹거나 보안 문제를 일으킬 수 있습니다.

"v4 UUID는 절대 충돌하지 않는다"는 오해

v4는 122비트 무작위라 충돌 확률이 사실상 0이지만 수학적으로는 0이 아닙니다. 대규모 시스템에서는 그래도 DB의 UNIQUE 제약을 함께 두는 것이 안전합니다. 또한 약한 난수 생성기(예: Math.random())를 쓰면 예측이 가능해져 보안 토큰으로는 부적절합니다. 암호학적 안전 난수(crypto.getRandomValuescrypto.randomUUID)를 사용해야 합니다.

UUID를 DB 기본 키로 쓸 때 흔한 함정

버전 선택 가이드

케이스권장 버전이유
일반 식별자(API 토큰ㆍ세션ㆍ임시 ID)v4예측 불가, 충돌 무시 가능
DB 기본 키, 시간순 정렬 필요v7인덱스 친화적, 생성 시각 추출 가능
네임스페이스 기반 결정적 IDv5(SHA-1)같은 입력 → 같은 UUID. 멱등 키에 유용
빈값 표현NIL모두 0인 특수값. NULL과 구분된 "값 없음"

흔한 실수

자주 묻는 질문

UUID는 정말 충돌하지 않나요?

v4 기준 1초에 10억 개씩 생성해도 약 85년이 지나야 충돌 확률이 50%에 도달합니다. 일반적인 애플리케이션에서는 충돌을 신경 쓰지 않아도 됩니다.

안전한 난수가 사용되나요?

이 페이지는 브라우저의 crypto.getRandomValues()(암호학적으로 안전한 난수 생성기)를 사용합니다. Math.random()은 사용하지 않습니다.

생성된 UUID가 서버로 전송되나요?

아니요. 모든 생성과 처리는 브라우저 안에서만 이루어지며, 어떤 데이터도 외부로 전송되지 않습니다.

v1, v3, v5는 왜 없나요?

v1은 MAC 주소 노출 우려로 권장되지 않으며, v3ㆍv5는 네임스페이스가 필요해 일반 생성기 용도와 거리가 멉니다. 가장 실용적인 v4ㆍv7ㆍNIL만 제공합니다.