🆔 UUID 생성기
브라우저의 안전한 난수로 UUID v4와 시간순 정렬형 v7을 만들어요. 최대 1,000개까지 한 번에, 원하는 형식으로 복사하세요.
사용법
- 버전을 고릅니다. 특별한 이유가 없으면 v4, 데이터베이스 기본키처럼 생성 순서대로 정렬되어야 하면 v7을 쓰세요.
- 개수를 입력하거나 빠른 버튼(1·10·50·100·1000)을 누르면 바로 생성됩니다. ↻ 다시 생성을 누를 때마다 새 값이 나옵니다.
- 대문자, 하이픈 제거, 중괄호, 구분 방식(줄바꿈·쉼표·JSON 배열·SQL IN)을 바꾸면 같은 값의 표기만 바뀝니다. 전체 복사로 한 번에 복사하세요.
- 맨 아래 UUID 분석에 아무 UUID나 붙여넣으면 버전과, v1·v6·v7이라면 생성 시각까지 알려줍니다.
UUID란?
UUID(Universally Unique Identifier, 마이크로소프트에서는 GUID)는 550e8400-e29b-41d4-a716-446655440000처럼 생긴 128비트 식별자입니다. 중앙 서버에 "다음 번호"를 물어보지 않고도 각자 만들어 쓸 수 있고, 사실상 겹치지 않는다는 것이 핵심이에요. 16진수 32자를 8-4-4-4-12로 나눠 쓰며, 세 번째 묶음의 첫 글자가 버전, 네 번째 묶음의 첫 글자(8·9·a·b)가 variant입니다. 표준은 2024년에 RFC 4122를 대체한 RFC 9562입니다.
v4와 v7 차이
| UUID v4 | UUID v7 | |
|---|---|---|
| 구성 | 랜덤 122비트 | Unix 밀리초 48비트 + 랜덤 74비트 |
| 정렬 | 무작위 순서 | 생성 시간순 정렬 |
| 생성 시각 노출 | 없음 | 앞 12자리로 알 수 있음 |
| DB 기본키 성능 | 인덱스 단편화 발생 | 순차 삽입이라 유리 |
| 적합한 곳 | 토큰, 외부 공개 ID, 일반 식별자 | DB 기본키, 로그·이벤트 ID |
v4는 완전히 랜덤이라 B-Tree 인덱스(MySQL InnoDB, PostgreSQL 등)에 넣으면 새 행이 인덱스 곳곳에 흩어져 들어가 페이지 분할과 캐시 미스가 늘어납니다. v7은 맨 앞이 타임스탬프라 항상 뒤쪽에 쌓이므로 자동 증가 정수 키와 비슷한 삽입 성능을 내면서도 분산 환경에서 따로 생성할 수 있습니다.
생성 방식과 중복 확률
- v4 — 브라우저의
crypto.randomUUID()를 사용합니다. 암호학적으로 안전한 난수 생성기(CSPRNG) 기반입니다. - v7 —
Date.now()밀리초 타임스탬프 뒤에crypto.getRandomValues()난수를 붙여 직접 조립합니다. 같은 밀리초에 여러 개를 만들면 RFC 9562의 방법대로 12비트 카운터를 1씩 올려 한 번에 생성한 목록도 순서가 보장됩니다.
v4가 겹칠 확률은 10억 개를 만들어도 약 10-19 수준으로, 현실적으로 0이라고 봐도 됩니다(생일 문제 계산 기준 50% 확률로 충돌하려면 약 2.7×1018개가 필요).
v7은 앞부분에 생성 시각이 그대로 담기므로, 가입 시각처럼 노출되면 안 되는 정보를 담은 ID를 외부에 공개할 때는 v4를 쓰세요. UUID는 추측하기 어려운 값이지만 비밀번호나 인증 토큰을 대신하도록 설계된 것은 아닙니다. 생성은 모두 브라우저 안에서 이뤄지고 서버에 기록되지 않습니다.