사용 방법
- ID 유형을 고르세요. 기본은 UUID v4이고, 데이터베이스 키에는 v7이나 ULID를 고르세요.
- 필요한 개수와 형식(대문자, 하이픈, 중괄호, Nano ID 길이)을 정하세요.
- 목록을 복사하거나 텍스트 파일로 다운로드하세요. '생성'을 누르면 새로 만들어져요.
- 기존 ID를 분석하려면 'ID 분석'에 붙여넣으세요.
옵션 설명
- UUID v4
- 무작위 비트 122개로 이루어져요. 모든 데이터베이스와 언어가 지원하는 가장 흔한 선택이에요.
- UUID v7
- RFC 9562(2024년)에 정의되어 있어요. 앞의 48비트가 밀리초 단위 Unix 타임스탬프라 새 ID가 기존 ID 뒤로 정렬돼요. 그래서 PostgreSQL과 MySQL에서 B-tree 인덱스가 촘촘하게 유지되고 삽입이 빨라요.
- ULID
- Crockford Base32 26자로, 48비트 타임스탬프와 80비트 무작위 값으로 이루어져요. 정렬할 수 있고 URL-safe하며 대소문자를 구분하지 않아요.
- Nano ID
- URL-safe한 64자 알파벳으로 만든 짧은 무작위 ID예요. 21자면 UUID v4와 비슷한 충돌 저항성을 가져요.
형식 한눈에 보기
| 유형 | 예시 | 길이 | 정렬 가능 |
|---|---|---|---|
| UUID v4 | 9b2e4c1a-7f3d-4e8b-a1c2-5d6e7f8091a2 |
36 | 아니요 |
| UUID v7 | 0199855e-7a40-7c3b-9e1f-2a3b4c5d6e7f |
36 | 예 |
| ULID | 01K5JQ8H2G7R4T6W9X3Y5Z7A1B |
26 | 예 |
| Nano ID | V1StGXR8_Z5jdHi6B-myT |
21 | 아니요 |
코드에서 UUID 생성하기
- JavaScript:
crypto.randomUUID()(v4) - Python:
uuid.uuid4(), Python 3.14부터uuid.uuid7() - PostgreSQL:
gen_random_uuid()(v4), PostgreSQL 18부터uuidv7() - Java:
UUID.randomUUID()(v4)
자주 묻는 질문
생성한 UUID가 서로 겹칠 수 있나요?
사실상 없어요. 무작위 비트가 122개라서 v4 UUID를 약 2.7 × 10¹⁸개 만들어야 중복이 하나라도 생길 확률이 50%가 돼요.
기본 키로 UUID v4와 v7 중 무엇을 써야 하나요?
새 테이블이라면 대개 v7이 더 나아요. 무작위 v4 키는 인덱스 곳곳에 흩어져 페이지 분할과 캐시 효율 저하를 일으키지만, v7 키는 자동 증가 값처럼 시간순으로 들어오면서도 서버 간에 고유해요.
UUID v7로 레코드 생성 시각을 알 수 있나요?
네, 밀리초 단위까지 알 수 있어요. 생성 시각이 민감한 정보라면 외부에 공개되는 ID에는 v4를 쓰세요.
이 ID를 토큰으로 써도 안전한가요?
무작위 부분은 crypto.getRandomValues로 만들어지므로 예측할 수 없어요. 세션 토큰이나 비밀번호 재설정 토큰에는 타임스탬프 부분을 추측할 수 있는 v7 UUID보다 무작위 비트가 128개 이상인 값(예를 들어 22자 Nano ID)을 쓰세요.
GUID와 UUID는 같은 건가요?
네. GUID는 같은 128비트 형식을 Microsoft에서 부르는 이름이에요. 흔히 중괄호 안에 대문자로 쓰는데, 위에서 그 형식을 선택할 수 있어요.
개인정보 보호
이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.