UUID 생성기 (v4)

UUID v4 식별자를 생성하세요. 한 번에 최대 100개를 만들고 복사할 수 있습니다.

입력값은 브라우저에서만 처리되며 서버로 전송되지 않습니다.

빠른 사용법

  1. 생성할 개수를 정하세요.
  2. 버튼을 눌러 UUID를 만드세요.
  3. 결과를 복사해 사용하세요.

생성되는 식별자

UUID v4는 128비트 형식이며 버전·변형 비트를 제외한 122비트를 난수로 채웁니다. 이 도구는 브라우저의 암호학적 난수 API를 사용합니다. 일반적인 표기는 8-4-4-4-12자리의 16진수 그룹입니다.

충돌 가능성과 접근 권한은 별개입니다

독립적이고 균등한 난수라는 가정에서 충돌 가능성은 작지만 0은 아닙니다. 생성량이 커질수록 누적 충돌 가능성도 증가합니다. 중요한 식별자는 DB의 UNIQUE 제약과 충돌 시 재생성 처리를 두세요.

UUID를 알기 어렵게 만들었다고 접근 제어가 생기는 것은 아닙니다. 타인의 문서나 계정 데이터는 서버에서 매번 권한을 확인해야 합니다. UUID를 비밀번호나 인증 토큰의 대체품으로 사용하지 마세요.

버전과 정렬

버전성격이 도구 지원
v4난수 기반. 생성 순서 정렬 의미가 없음지원
v5네임스페이스·이름 기반미지원
v7시간 정보를 포함한 형식미지원

UUID v4인지 눈으로 확인하기

UUID는 8-4-4-4-12자리 16진수로 표기합니다. 세 번째 그룹의 첫 글자가 버전이고, 네 번째 그룹의 첫 글자가 변형(variant)입니다. 아래 예에서는 세 번째 그룹 4c6e의 4가 버전, 네 번째 그룹 b1f0의 b가 변형입니다. v4라면 버전 자리는 항상 4이고 변형 자리는 8, 9, a, b 중 하나입니다.

RFC 9562는 16진수를 소문자로 출력하고 입력은 대소문자를 구분하지 않도록 정합니다. Windows의 GUID 도구처럼 대문자로 보여 주는 경우도 있으니 두 값을 비교할 때는 대소문자를 맞춘 뒤 비교하세요.

예시 · UUID v4
3f2b8c1e-9a4d-4c6e-b1f0-7d2e5a9c4b81

DB 기본 키로 쓸 때

v4는 완전히 무작위라 새 값이 인덱스의 여러 위치에 흩어져 들어갑니다. 데이터가 많아지면 B-tree 인덱스의 페이지 분할과 캐시 효율 저하로 삽입이 느려질 수 있습니다. 생성 순서대로 정렬되는 키가 필요하면 앞부분에 밀리초 단위 시각을 넣는 v7(RFC 9562)을 검토하세요. 이 도구는 v4만 만듭니다.

저장 형식도 크기에 영향을 줍니다. 하이픈을 포함한 문자열은 36자이고 이진 형식은 16바이트입니다. PostgreSQL은 16바이트 uuid 자료형과 gen_random_uuid() 함수를 제공하며, PostgreSQL 18부터는 uuidv7()도 있습니다. MySQL 8.0에서는 BINARY(16) 열과 UUID_TO_BIN() 함수를 함께 씁니다.

명령으로 UUID 만들기

명령어 · Windows · Linux · Python
PS> [guid]::NewGuid()
$ uuidgen -r
$ cat /proc/sys/kernel/random/uuid
$ python3 -c "import uuid; print(uuid.uuid4())"

Linux의 /proc/sys/kernel/random/uuid는 읽을 때마다 새 v4 값을 돌려줍니다. uuidgen은 고품질 난수원이 없으면 시간 기반 값을 만들 수 있으므로, 무작위 값이 필요하면 -r 옵션을 붙입니다.

자주 묻는 질문

중복이 절대 없나요?
절대 보장은 아닙니다. 난수 품질·생성량·구현에 영향을 받으므로 저장소의 중복 검사도 필요합니다.
하이픈을 없애면 값이 바뀌나요?
이 도구에서는 같은 식별자의 표시 형식만 바뀝니다. 사용하는 시스템이 요구하는 형식을 확인하세요.

공식 참고 자료

관련 도구