UUID 생성기 · 디코더 (UUID Generator & Decoder)
무료 UUID 생성기. v1, v4, v5, v7 UUID를 즉시 생성하고 검증합니다. 최대 50개 일괄 생성 가능하며 100% 브라우저 기반 온라인 도구로 회원 가입이 필요 없습니다.
UUID란 무엇인가요?
UUID(Universally Unique Identifier)는 RFC 9562(IETF, 2024년 5월)로 표준화된 128비트 전역 고유 식별자이며, 중앙 조정 없이 분산 시스템 전반에서 충돌 없는 ID를 생성하도록 설계되었습니다. UUID는 현대 소프트웨어에서 가장 널리 채택된 식별자 형식이며 데이터베이스 기본 키, API 요청 추적, 세션 관리, 마이크로서비스 아키텍처 등에서 사용됩니다.
UUID는 32자리 16진수로 표기되며 `550e8400-e29b-41d4-a716-446655440000` 같은 표준 8-4-4-4-12 형식을 따릅니다. 이 명세는 IETF가 관리하며 RFC 9562는 이전의 RFC 4122(2005)를 대체하고 UUID 버전 6, 7, 8을 공식 도입했습니다.
널리 사용되는 UUID 버전은 다섯 가지입니다. 버전 1(v1)은 현재 타임스탬프와 생성 장비의 MAC 주소를 담아 시간과 공간 모두에서 UUID를 고유하게 만듭니다. 버전 3(v3)과 버전 5(v5)는 결정적입니다. 각각 MD5와 SHA-1로 네임스페이스와 이름을 해싱하여 동일한 입력에 대해 항상 동일한 UUID를 만듭니다. 버전 4(v4)는 가장 흔한 버전이며 암호 안전 무작위 데이터로 122비트를 채워 5.3 × 10³⁶가 넘는 가능한 값을 만듭니다(RFC 9562, Section 5.4). 버전 7(v7)은 가장 새로운 표준입니다. RFC 9562 Section 5.7은 "UUID version 7 features a time-ordered value field derived from the widely implemented and well-known Unix Epoch timestamp source"라고 설명하며, 48비트 밀리초 타임스탬프와 무작위 데이터를 결합해 고유하면서 생성 시간 순으로 자연스럽게 정렬되는 UUID를 만듭니다.
UUID는 분산 시스템, 데이터베이스, API는 물론 중앙 조정 없이 고유 식별자가 필요한 모든 곳에서 필수적입니다. 독립된 시스템 간 ID 충돌 위험을 없애 주므로 마이크로서비스, 이벤트 소싱, 멀티테넌트 아키텍처에 이상적입니다.
이 도구는 Web Crypto API를 사용해 모든 UUID 버전을 브라우저 내부에서 전적으로 생성합니다. UUID가 어떤 서버로도 전송되지 않습니다. 서버 기반 생성기와 달리 업로드도, 로깅도, 데이터 보존도 없습니다. 프로덕션 데이터베이스 키, API 식별자, 보안이 중요한 애플리케이션에 안심하고 사용할 수 있습니다. 기존 UUID를 디코딩하고 검증하여 버전, 변형, 내장 데이터를 확인할 수도 있습니다.
UUID는 다른 개발 기본 요소들과 밀접하게 연결되어 있습니다. UUID v1과 v7은 Unix 타임스탬프를 직접 내장하고, UUID v3과 v5는 MD5와 SHA-1 해시를 기반으로 하며, UUID 문자열은 JSON 페이로드에 실려 전송되는 경우가 많습니다.
// Generate a UUID v4 using the Web Crypto API
const uuid = crypto.randomUUID();
console.log(uuid);
// → '550e8400-e29b-41d4-a716-446655440000'
// Manual v4 generation with crypto.getRandomValues()
function generateUUIDv4() {
const bytes = new Uint8Array(16);
crypto.getRandomValues(bytes);
bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10
const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20)}`;
} 주요 기능
UUID v7 지원(RFC 9562)
시간 순서에 맞고 데이터베이스 친화적인 식별자를 위해 Unix 타임스탬프가 내장된 최신 UUID v7 형식을 생성합니다. RFC 9562 표준을 지원하는 몇 안 되는 온라인 도구 중 하나입니다.
UUID 디코더 · 검증기
어떤 UUID든 파싱하여 버전, 변형, 타임스탬프(v1/v7), 클록 시퀀스, 노드 정보를 드러냅니다. 문자열이 올바른 형식의 UUID인지 즉시 검증합니다.
다중 버전 지원
다섯 가지 버전의 UUID를 생성합니다 — v1(타임스탬프 기반), v3(MD5), v4(무작위), v5(SHA-1), v7(시간 정렬 무작위). 모두 RFC 9562를 따릅니다.
일괄 생성
최대 50개의 고유 UUID를 한 번에 생성합니다. 각 UUID는 완전한 암호 무작위성 또는 버전별 인코딩을 갖추고 독립적으로 생성됩니다.
다양한 출력 형식
표준 소문자, 대문자, 하이픈 없음, 중괄호 {GUID} 형식으로 UUID를 출력하여 사용 중인 시스템이나 프레임워크가 요구하는 형식에 정확히 맞춥니다.
암호 수준 안전성
Web Crypto API(crypto.getRandomValues())를 사용하여 실제 난수를 생성합니다. 현대 브라우저와 보안 도구가 사용하는 동일한 표준입니다.
100% 브라우저 기반
모든 UUID는 브라우저 내부에서 로컬로 생성됩니다. 어떤 서버로도 전송되지 않으며 생성된 식별자는 완전히 비공개로 유지됩니다.
UUID 버전 비교
용도에 맞는 UUID 버전을 선택하십시오.
| 버전 | 기반 | 정렬 가능 | 프라이버시 | 적합한 용도 |
|---|---|---|---|---|
| v1 | 타임스탬프 + MAC 주소 | 생성 시간 순 | MAC·시간 노출 | 시간 기반 정렬이 필요한 레거시 시스템 |
| v4 | 122비트 암호 무작위 | 불가 | 완전 익명 | 범용 — 가장 널리 쓰이는 버전 |
| v5 | 네임스페이스 + 이름의 SHA-1 해시 | 불가 | 결정적, 재현 가능 | 알려진 입력(URL, DNS)에서 일관된 ID |
| v7 | Unix 타임스탬프(ms) + 무작위 | 생성 시간 순 | 생성 시간만 노출 | 현대 데이터베이스 — 정렬 가능, 인덱스 친화(RFC 9562) |
UUID와 다른 ID 형식 비교
ULID
26자, Crockford Base32UUID v7처럼 사전식으로 정렬 가능하지만 Crockford Base32 인코딩을 사용합니다(26자 대 36자). 이제 UUID v7이 IETF 표준으로 등장하여 더 넓은 도구 지원을 제공합니다.
nanoid
21자, URL 안전 알파벳짧고 URL 안전하여 간결함이 중요한 경우에 적합합니다. 공식 표준이 아니어서 UUID가 갖는 네이티브 데이터베이스 타입과 크로스 플랫폼 라이브러리 지원이 부족합니다.
CUID2
가변 길이, 영숫자수평 확장과 충돌 저항성을 목표로 설계되었습니다. UUID만큼 널리 채택되지 않았고 네이티브 데이터베이스 지원이 없습니다. 표준화된 시간 정렬 ID에는 UUID v7을 고려하십시오.
UUID 버전 예시
UUID v4 (무작위)
550e8400-e29b-41d4-a716-446655440000
가장 흔하게 사용되는 버전입니다. 122비트 암호 무작위 값이 5.3 x 10^36개 이상의 가능한 값을 제공하므로 조정 없이 고유성이 필요한 거의 모든 용도에 적합합니다.
UUID v7 (시간 정렬)
01906b5e-4a3e-7234-8f56-b8c12d4e5678
48비트 Unix 밀리초 타임스탬프와 무작위 데이터를 결합합니다. UUID가 시간 순으로 정렬되므로 인덱스 지역성이 중요한 데이터베이스 기본 키에 이상적입니다. 새 프로젝트에서는 v1이나 v4보다 권장됩니다.
UUID v1 (타임스탬프 기반)
6ba7b810-9dad-11d1-80b4-00c04fd430c8
60비트 타임스탬프와 생성 장비의 48비트 MAC 주소를 인코딩합니다. 시간과 공간 모두에서 고유성이 보장되지만 하드웨어 식별 정보가 노출될 수 있습니다. RFC 9562에서 v6/v7로 대체되었습니다.
UUID v5 (SHA-1 이름 기반)
886313e1-3b8a-5372-9b90-0c9aee199e5d
DNS 네임스페이스와 'python.org' 이름을 SHA-1로 해싱하여 생성된 결정적 UUID입니다. 같은 네임스페이스와 이름은 언제나 같은 UUID를 만들어 재현 가능한 식별자에 이상적입니다.
사용 방법
- 1
UUID 버전 선택
v1(타임스탬프 기반), v3(MD5 이름 기반), v4(무작위), v5(SHA-1 이름 기반), v7(시간 정렬 무작위) 중에서 선택하십시오. 각 버전은 다른 용도를 지원하며 일반적인 용도로는 v4가 가장 많이 쓰입니다.
- 2
옵션 설정
v3와 v5는 네임스페이스(DNS, URL, OID, X.500 또는 사용자 지정)를 선택하고 해시할 이름을 입력합니다. 수량은 1에서 50 사이로 설정하고 출력 형식을 고릅니다: 표준 소문자, 대문자, 하이픈 없음, 중괄호 {GUID}.
- 3
UUID 생성
생성 버튼을 클릭하십시오. 각 UUID는 Web Crypto API(crypto.getRandomValues())를 사용해 암호 수준의 안전성으로 만들어집니다. 버전별 필드인 타임스탬프(v1/v7)와 해시(v3/v5)도 올바르게 인코딩됩니다.
- 4
복사 후 사용
UUID 옆의 복사 버튼으로 개별 값을 클립보드로 복사하거나 모두 복사를 사용해 생성된 모든 UUID를 한 번에 가져오십시오. 디코드 탭으로 전환하면 기존 UUID의 버전, 변형, 타임스탬프, 기타 내장 정보를 분석할 수 있습니다.
일반적인 활용 사례
- 데이터베이스 기본 키
- 데이터베이스 노드 간 조정 없이 UUID v4 또는 v7을 고유한 기본 키로 사용합니다. UUID v7은 시간 정렬 특성 덕분에 B-트리 인덱스 성능이 향상되어 특히 적합합니다.
- 분산 시스템
- 마이크로서비스, 메시지 큐, 이벤트 소싱 시스템에서 고유 식별자를 독립적으로 생성합니다. UUID는 중앙 ID 생성 서비스가 필요 없게 해 줍니다.
- API 개발
- RESTful과 GraphQL API용 고유 요청 ID, 상관 ID, 멱등 키를 만듭니다. UUID를 사용하면 분산 서비스 경계를 넘어 요청을 쉽게 추적할 수 있습니다.
- 세션 · 토큰 관리
- 인증 흐름용 고유 세션 식별자와 임시 토큰을 생성합니다. UUID는 대규모 사용자 기반에서 세션 충돌을 방지할 만큼 충분한 고유성을 제공합니다.
- 테스트 · 개발
- 자동화 테스트용 테스트 데이터, 모의 식별자, 고유 픽스처 ID를 빠르게 생성합니다. 일괄 생성으로 개발 데이터베이스와 테스트 스위트에 쉽게 값을 채울 수 있습니다.
기술 세부사항
- UUID 구조
- UUID는 128비트(16바이트)이며 32자리 16진수를 8-4-4-4-12 형식으로 표기합니다. 비트 48-51(13번 16진수 자리)은 버전 번호를 인코딩합니다. 비트 64-65는 UUID 레이아웃을 식별하는 변형 필드입니다. 나머지 비트는 버전별 페이로드(타임스탬프, 무작위 데이터, 해시 출력)를 담습니다.
- 버전 비트
- 비트 48-51(7번째 바이트의 상위 니블)이 UUID 버전을 인코딩합니다: 0001 = v1(타임스탬프 기반), 0011 = v3(MD5 이름 기반), 0100 = v4(무작위), 0101 = v5(SHA-1 이름 기반), 0110 = v6(재정렬 시간), 0111 = v7(Unix 에폭 시간). 이 네 비트는 생성 시 항상 명시적으로 설정됩니다.
- 변형 필드
- 비트 64-65(9번째 바이트의 최상위 두 비트)는 변형을 정의합니다. 패턴 10x는 RFC 4122/9562 UUID(대다수)를 의미합니다. 패턴 110은 혼합 엔디언 바이트 순서의 Microsoft GUID를 의미합니다. 패턴 0xx는 NCS 역호환 UUID(레거시)입니다. 패턴 111은 미래 사용을 위해 예약되어 있습니다.
- RFC 9562 표준
- 2024년 5월에 발행된 RFC 9562는 RFC 4122를 대체하는 공식 UUID 명세입니다. UUID 버전 6, 7, 8을 공식 도입합니다. 버전 6은 정렬을 위해 v1 필드를 재정렬합니다. 버전 7은 48비트 Unix 밀리초 타임스탬프와 무작위 데이터를 사용하여 새로운 시간 기반 UUID의 권장 버전이 됩니다. 버전 8은 구현에 특화된 사용자 정의 UUID 형식을 제공합니다. RFC 9562은 또한 v1을 공식적으로 비권장하며 v6/v7을 선호합니다.
모범 사례
- 올바른 버전 선택
- 정렬이나 결정성이 필요하지 않은 범용 고유 식별자에는 v4를 사용하십시오. 데이터베이스 기본 키에는 v7을 사용하십시오. 시간 정렬 속성이 인덱스 성능을 크게 향상시킵니다. 이름에서 유도한 결정적 ID가 필요하면 v5를 사용하십시오(더 강한 해싱을 위해 v3보다 v5를 선호).
- 데이터베이스 기본 키에는 UUID v7 사용
- UUID v7의 시간 정렬 구조는 B-트리 삽입을 순차적으로 유지하여 무작위 v4 UUID 대비 인덱스 단편화를 약 90% 줄입니다. 이는 쓰기 속도 향상, 더 작은 인덱스, 더 나은 캐시 활용으로 이어집니다. 대부분의 현대 데이터베이스(PostgreSQL 17+, MySQL 8.0+)가 이 패턴에 최적화된 네이티브 UUID 지원을 제공합니다.
- UUID를 보안 토큰으로 사용하지 말 것
- UUID는 고유성을 목적으로 설계되었고 비밀성을 위한 것이 아닙니다. UUID v1은 생성 타임스탬프와 MAC 주소를 노출합니다. UUID v4는 예측 가능한 구조와 함께 122비트 엔트로피만 가집니다. 보안 토큰, API 키, 세션 비밀에는 UUID 구조 오버헤드 없이 128비트 또는 256비트 순수 무작위 데이터를 전용 CSPRNG로 생성하십시오.
- 파싱 전 검증
- 파싱이나 저장 전에 항상 정규식으로 UUID 형식을 검증하십시오. API 엔드포인트, 폼 제출, 데이터베이스 입력 같은 시스템 경계에서 잘못된 입력을 거부하십시오. 유효하지 않은 식별자가 시스템 전반으로 전파되어 발생하는 삽입 공격, 데이터 손상, 디버깅이 어려운 오류를 예방합니다.
자주 묻는 질문
UUID는 무엇인가요?
UUID 버전 간 차이는 무엇인가요?
UUID v4와 v7 중 언제 무엇을 써야 하나요?
UUID 충돌 확률은 얼마인가요?
UUID와 GUID의 차이는 무엇인가요?
UUID v4는 암호 수준으로 안전한가요?
UUID 형식은 어떻게 검증하나요?
UUID는 데이터베이스 기본 키로 적합한가요? (성능, 안전성, 권장 버전)
네임스페이스 UUID(v3/v5)는 무엇인가요?
UUID의 nil 값은 무엇인가요?
UUID v7은 무엇이며 왜 사용해야 하나요?
UUID는 어떻게 디코딩하나요?
UUID, ULID, nanoid — 무엇을 선택해야 하나요?
마이크로서비스를 만들고 있으며 PostgreSQL 기본 키로 UUID v4와 v7 중 고민 중입니다. 어느 쪽을 써야 할까요?
데이터베이스 ID로 UUID와 자동 증가 정수 중 어느 것을 써야 할지 팀에서 논의 중입니다. 실무에서 어떤 장단점이 있나요?
관련 도구
모든 도구 보기 →MD5 해시 생성기 · 파일 체크섬 도구
보안 도구
MD5, SHA-256, SHA-1, SHA-512 해시를 온라인에서 무료로 생성합니다. 브라우저에서 텍스트나 파일을 해싱하고 체크섬을 검증하며 결과를 복사할 수 있습니다.
무작위 비밀번호 생성기 (Random Password Generator)
보안 도구
강력한 무작위 비밀번호를 즉시 만드는 무료 온라인 도구. 길이와 문자 종류를 지정해 최대 50개까지 일괄 생성하고 엔트로피 분석을 확인할 수 있습니다.
진법 변환기 (Number Base Converter)
변환 도구
2진수, 16진수, 10진수, 8진수 및 임의 진법(2-36)을 즉시 변환합니다. 온라인에서 무료로 사용할 수 있으며 모든 처리는 브라우저에서 이루어집니다.
Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
이미지 압축기 · JPEG, PNG, WebP 온라인 압축
변환 도구
JPEG, PNG, WebP 이미지를 브라우저에서 최대 80% 압축합니다. 업로드 없이 20장 일괄 처리, 품질 조절, 전후 비교를 무료로 지원합니다.
JSON 포맷터 (JSON Formatter)
인코딩 & 포매팅
브라우저에서 JSON을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.