Skip to content

UUID 생성기 · 디코더 (UUID Generator & Decoder)

무료 UUID 생성기. v1, v4, v5, v7 UUID를 즉시 생성하고 검증합니다. 최대 50개 일괄 생성 가능하며 100% 브라우저 기반 온라인 도구로 회원 가입이 필요 없습니다.

트래킹 없음 브라우저 실행 무료
모든 UUID는 브라우저 내부에서 로컬로 생성됩니다. 어떤 것도 전송되거나 저장되지 않습니다.
RFC 9562 준수와 구조적 정확성에 대해 검토되었습니다 — Go Tools 엔지니어링 팀 · Mar 22, 2026

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 Base32

UUID 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. 1

    UUID 버전 선택

    v1(타임스탬프 기반), v3(MD5 이름 기반), v4(무작위), v5(SHA-1 이름 기반), v7(시간 정렬 무작위) 중에서 선택하십시오. 각 버전은 다른 용도를 지원하며 일반적인 용도로는 v4가 가장 많이 쓰입니다.

  2. 2

    옵션 설정

    v3와 v5는 네임스페이스(DNS, URL, OID, X.500 또는 사용자 지정)를 선택하고 해시할 이름을 입력합니다. 수량은 1에서 50 사이로 설정하고 출력 형식을 고릅니다: 표준 소문자, 대문자, 하이픈 없음, 중괄호 {GUID}.

  3. 3

    UUID 생성

    생성 버튼을 클릭하십시오. 각 UUID는 Web Crypto API(crypto.getRandomValues())를 사용해 암호 수준의 안전성으로 만들어집니다. 버전별 필드인 타임스탬프(v1/v7)와 해시(v3/v5)도 올바르게 인코딩됩니다.

  4. 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(Universally Unique Identifier)는 RFC 9562로 표준화된 128비트 식별자입니다. 32자리 16진수를 8-4-4-4-12 형식으로 하이픈 다섯 그룹으로 표기합니다. 예: 550e8400-e29b-41d4-a716-446655440000. UUID는 중앙 등록 기관 없이도 전역적으로 고유하도록 설계되었습니다. GUID(Globally Unique Identifier)는 Microsoft가 같은 개념에 붙인 이름이며 형식이 동일합니다. UUID는 데이터베이스, 분산 시스템, API, 그리고 소프트웨어 개발 전반에서 고유 식별자가 필요한 곳 어디서나 사용됩니다. 가능한 v4 UUID가 5.3 x 10^36개를 넘으므로 중복 생성 확률은 천문학적으로 낮아 조정되지 않은 독립 시스템들에서 안전하게 생성할 수 있습니다.
UUID 버전 간 차이는 무엇인가요?
UUID v1은 60비트 타임스탬프와 장비의 48비트 MAC 주소를 담아 시간과 공간 모두에서 고유성을 보장하지만 하드웨어 식별 정보가 노출될 수 있습니다. UUID v3은 네임스페이스와 이름을 MD5로 해싱하여 결정적 UUID를 만듭니다. 동일한 입력은 항상 동일한 출력을 냅니다. UUID v4는 128비트 중 122비트를 암호 안전 무작위 데이터로 채워 범용 고유 식별자로 가장 널리 쓰입니다. UUID v5는 v3과 동일하지만 MD5 대신 SHA-1을 사용하여 더 강한 해시 충돌 저항성을 제공합니다. 2024년 5월 RFC 9562에 도입된 UUID v7은 48비트 Unix 밀리초 타임스탬프 뒤에 무작위 비트를 이어 붙여 고유하면서도 생성 시간 순으로 자연스럽게 정렬되는 UUID를 만듭니다. 버전 선택은 요구 사항에 따라 달라집니다. 단순한 범용에는 v4, 결정성에는 v5, 시간 정렬 데이터베이스 키에는 v7을 쓰십시오.
UUID v4와 v7 중 언제 무엇을 써야 하나요?
UUID v4는 가장 인기 있는 버전이며 훌륭한 기본 선택입니다. 122비트 순수 무작위성을 만들며 별도 설정 없이 어디서나 동작합니다. 단순히 고유 식별자가 필요하고 정렬이 중요하지 않다면 v4를 사용하십시오. UUID v7은 UUID가 데이터베이스 기본 키로 사용되거나 생성 시간 순으로 정렬되어야 할 때 더 나은 선택입니다. v7이 최상위 비트에 밀리초 정밀 타임스탬프를 내장하므로 v7 UUID는 자연스럽게 시간 순으로 정렬됩니다. 이 특성은 B-트리 인덱스 성능을 극적으로 향상시킵니다. 삽입이 무작위 위치가 아닌 인덱스 끝에 항상 추가되므로 페이지 분할과 단편화가 최대 90%까지 줄어듭니다. 2026년의 새 프로젝트에서는 데이터베이스 키에 v7, 나머지에는 v4를 사용하는 것이 일반적인 권장입니다. 두 버전 모두 무작위 부분에서 동일한 수준의 고유성과 암호 무작위성을 갖습니다.
UUID 충돌 확률은 얼마인가요?
UUID v4는 122개의 무작위 비트를 가지므로 2^122개(약 5.3 x 10^36개)의 가능한 값이 있습니다. 최소 한 번의 충돌 확률이 50%가 되려면 약 2.71 x 10^18개, 즉 2.71 퀸틸리언 개의 UUID를 생성해야 합니다. 초당 10억 개의 UUID를 생성한다고 해도 50% 충돌 확률에 이르려면 약 86년이 걸립니다. 더 현실적인 생성 속도에서는 확률이 극도로 작습니다. 예를 들어 1천만 개의 UUID를 생성할 때 충돌 확률은 대략 10^22분의 1입니다. 실무에서는 하드웨어 장애, 소프트웨어 버그, 사람 실수가 UUID v4 충돌보다 수십억 배 더 흔합니다. 이 계산은 생일 문제 공식 p(n) ≈ n^2 / (2 × 2^122)에 기반합니다.
UUID와 GUID의 차이는 무엇인가요?
UUID(Universally Unique Identifier)와 GUID(Globally Unique Identifier)는 본질적으로 같은 것입니다. GUID는 Microsoft가 만든 용어로 Windows, .NET, COM, SQL Server 환경에서 주로 사용됩니다. UUID는 RFC 9562(및 그 이전의 RFC 4122)에 정의된 표준 용어로 Linux, Java, Python, PostgreSQL, 웹 개발 등 대부분의 다른 맥락에서 사용됩니다. 둘 다 32자리 16진수를 8-4-4-4-12 패턴으로 표시하는 동일한 128비트 형식입니다. 사소한 차이는 Microsoft 도구가 GUID를 가끔 {550E8400-E29B-41D4-A716-446655440000}처럼 중괄호와 대문자로 표시하는 반면 UUID는 관례상 중괄호 없이 소문자로 표시한다는 점입니다. 이 도구는 출력 형식 선택기로 두 형식을 모두 지원하며 Microsoft 스타일 출력을 원하면 중괄호 {GUID} 형식을 고르십시오.
UUID v4는 암호 수준으로 안전한가요?
crypto.getRandomValues() 또는 이에 상응하는 CSPRNG(암호 안전 의사 난수 생성기)로 생성하면 UUID v4는 122비트의 암호 안전 무작위 데이터를 담습니다. 이 도구는 운영체제의 안전 무작위 소스에서 엔트로피를 얻는 Web Crypto API를 사용합니다. 다만 UUID는 보안 토큰, 비밀번호, 암호 키로 사용해서는 안 됩니다. 122비트의 무작위성은 예측을 사실상 불가능하게 만들지만, UUID는 예측 가능한 구조를 갖습니다. 버전 니블(4)과 변형 비트는 고정되어 있고 공개적으로 알려져 있습니다. 보안 토큰에는 전용 API인 crypto.getRandomValues()로 128비트 또는 256비트의 완전한 엔트로피를 쓰거나 JWT 같은 확립된 토큰 형식을 사용하십시오. UUID는 식별 용도이지 보안 용도가 아닙니다.
UUID 형식은 어떻게 검증하나요?
유효한 UUID는 정규식 패턴 ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(대소문자 무시)와 일치합니다. 이 패턴은 8-4-4-4-12 16진수 형식을 강제하고, 버전 자릿값(15번 위치)이 1에서 7 사이인지 확인하며, 변형 니블(20번 위치)이 8, 9, a, b 중 하나로 시작하는지 확인합니다(RFC 4122/9562 변형을 의미). JavaScript에서는 /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(uuid)로 검증할 수 있습니다. 대부분의 프로그래밍 언어에는 내장 UUID 파싱이 있습니다. 예: Python의 uuid.UUID() 생성자, Java의 UUID.fromString(), Go의 uuid.Parse(). 삽입 공격과 데이터 손상을 방지하려면 저장하거나 처리하기 전에 시스템 경계에서 항상 UUID를 검증하십시오.
UUID는 데이터베이스 기본 키로 적합한가요? (성능, 안전성, 권장 버전)
예, UUID는 데이터베이스 기본 키로 안전하며 점점 인기를 얻고 있습니다. 권장 버전은 UUID v7입니다. 주요 장점: (1) UUID는 클라이언트, 서버, 엣지 함수 등 어디서든 데이터베이스 왕복 없이 생성할 수 있어 오프라인 우선 및 분산 아키텍처를 가능하게 합니다. (2) 순차 정수가 아니므로 열거 공격을 예방합니다. (3) ID가 절대 충돌하지 않으므로 시스템 간 데이터 병합이 단순해집니다. 기본 키에는 UUID v7이 가장 적합합니다. 시간 정렬 구조 덕에 B-트리 인덱스가 순차적으로 유지되어 무작위 v4 UUID에 비해 페이지 분할, 쓰기 증폭, 인덱스 단편화가 최대 90% 감소합니다. 단점: UUID는 16바이트를 사용하여 정수 4-8바이트보다 커서 인덱스 저장과 메모리가 늘어납니다. MySQL/InnoDB에서는 기본 키가 클러스터 인덱스이므로 무작위 v4 UUID가 심각한 성능 저하를 일으킬 수 있지만, v7은 항상 인덱스 끝에 삽입되게 하여 자동 증가 정수와 비슷한 성능을 달성합니다. PostgreSQL은 uuid 타입으로 UUID를 16바이트 그대로 저장합니다. 대부분의 현대 애플리케이션에서 전역 고유, 조정 불필요 ID 생성의 이점이 추가 저장 비용을 크게 상회합니다.
네임스페이스 UUID(v3/v5)는 무엇인가요?
네임스페이스 UUID는 결정적 v3와 v5 UUID 생성을 위한 범위 역할을 하는 사전 정의되거나 사용자 지정된 UUID입니다. RFC 4122는 네 개의 표준 네임스페이스 UUID를 정의합니다: DNS(6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL(6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID(6ba7b812-9dad-11d1-80b4-00c04fd430c8), X.500 DN(6ba7b814-9dad-11d1-80b4-00c04fd430c8). 네임스페이스 UUID와 이름 문자열을 결합하면 v3 또는 v5 알고리즘이 이들을 함께 해싱하여 결정적 UUID를 만듭니다. 같은 네임스페이스와 이름은 항상 같은 UUID를 만듭니다. 의미 있는 이름에서 재현 가능한 식별자를 만들어야 할 때 유용합니다. 예를 들어 DNS 네임스페이스와 'example.com'을 해싱하면 언제나 같은 v5 UUID가 나옵니다. 유효한 UUID라면 어떤 것이든 애플리케이션 고유 결정적 ID 체계의 네임스페이스로 쓸 수 있습니다.
UUID의 nil 값은 무엇인가요?
nil UUID(영 UUID라고도 함)는 00000000-0000-0000-0000-000000000000으로, 128비트가 모두 0입니다. RFC 9562 Section 5.9는 이를 프로그래밍 언어의 null이나 None처럼 값이 없음을 나타낼 수 있는 특수 UUID로 정의합니다. nil UUID는 센티넬 값, 설정 시스템의 기본값, UUID 필드가 비어서는 안 되지만 아직 실제 값이 없는 데이터베이스 레코드의 자리표시자로 유용합니다. RFC 9562는 max UUID도 정의합니다: ffffffff-ffff-ffff-ffff-ffffffffffff(모든 비트가 1)로 경계 표식으로 쓸 수 있습니다. 중요한 주의 사항: nil UUID를 실제 식별자로 사용하지 마십시오. 고유하지 않습니다. 일부 UUID 라이브러리와 데이터베이스는 nil UUID를 거부하거나 특별 처리할 수 있으므로 시스템이 일관되게 다루도록 하십시오. API 계약과 데이터베이스 스키마에서 nil UUID를 허용하는지를 항상 문서화하십시오.
UUID v7은 무엇이며 왜 사용해야 하나요?
UUID v7은 RFC 9562(2024년 5월)에 정의된 가장 새로운 UUID 버전입니다. 최상위 비트에 48비트 Unix 밀리초 타임스탬프를 내장하고, 그 뒤에 암호 안전 무작위 데이터가 옵니다. 이 구조는 전역 고유하고 시간 순으로 정렬 가능하며 데이터베이스 기본 키로 매우 효율적인 UUID를 만듭니다. 타임스탬프를 담는 UUID v1과 달리 v7은 더 단순한 Unix 에폭 형식을 사용하며 MAC 주소를 노출하지 않습니다. 시간 정렬 구조는 무작위 UUID v4에 비해 B-트리 인덱스 단편화를 최대 90%까지 줄여 주며 삽입 속도 향상, 더 작은 인덱스, 더 나은 캐시 적중률을 가져옵니다. 2026년에 시작하는 새 프로젝트에서는 시간 기반 정렬이 필요한 거의 모든 상황, 특히 데이터베이스 기본 키, 이벤트 로그, 분산 메시지 큐에 UUID v7이 권장됩니다.
UUID는 어떻게 디코딩하나요?
UUID 디코딩은 128비트에 인코딩된 구조 정보를 추출하는 작업입니다. 모든 UUID는 생성 방식을 식별하는 버전 필드(비트 48-51)와 준수하는 UUID 표준을 나타내는 변형 필드(비트 64-65)를 포함합니다. 이러한 공통 필드 외에도 버전마다 다른 데이터를 담습니다. UUID v1과 v6는 60비트 타임스탬프와 48비트 노드(MAC 주소)를 담고, UUID v7은 48비트 Unix 밀리초 타임스탬프를 담으며, UUID v3과 v5는 네임스페이스와 이름의 잘린 해시를 담습니다. UUID를 디코딩하려면 이 도구의 디코드 탭에 붙여넣으십시오. 버전, 변형, 시간 기반 버전의 타임스탬프, 유효성 상태가 즉시 표시됩니다. 프로그래밍으로는 16진수 자리를 파싱한 뒤 RFC 9562 명세에 따라 비트 연산으로 각 필드를 추출하면 됩니다.
UUID, ULID, nanoid — 무엇을 선택해야 하나요?
UUID, ULID, nanoid는 고유 식별자 생성이라는 같은 목적을 가지지만 형식, 정렬 가능성, 표준화에서 다릅니다. UUID는 가장 널리 채택된 표준(RFC 9562)으로 거의 모든 데이터베이스, 언어, 프레임워크가 기본 지원합니다. UUID v7은 표준 128비트, 36자 형식으로 시간 기반 정렬을 제공합니다. ULID(Universally Unique Lexicographically Sortable Identifier)는 UUID v7보다 먼저 등장했으며 Crockford Base32 인코딩을 사용해 26자의 정렬 가능한 문자열을 만듭니다. 이제 UUID v7이 IETF 표준으로 존재하므로 ULID의 주요 장점인 정렬 가능성을 보편적인 UUID 형식에서 얻을 수 있습니다. nanoid는 URL 안전 알파벳으로 더 짧은 식별자(기본 21자)를 생성하므로 문자열 길이가 중요하고 시스템 간 호환성이 필요 없을 때 적합합니다. 대부분의 애플리케이션에는 보편적 도구 지원, 네이티브 데이터베이스 타입, 공식 표준화 덕분에 UUID v4(범용)나 UUID v7(데이터베이스 키)이 권장됩니다.
마이크로서비스를 만들고 있으며 PostgreSQL 기본 키로 UUID v4와 v7 중 고민 중입니다. 어느 쪽을 써야 할까요?
PostgreSQL 기본 키에는 UUID v7을 사용하십시오. UUID v7은 최상위 비트에 밀리초 정밀 Unix 타임스탬프를 내장하므로 생성된 ID가 자연스럽게 시간 순으로 정렬됩니다. 덕분에 B-트리 인덱스가 순차적으로 유지되어 삽입이 무작위 위치 대신 항상 인덱스 끝에 추가되고, 무작위 UUID v4에 비해 페이지 분할과 인덱스 단편화가 최대 90% 감소합니다. PostgreSQL 17+는 이 패턴에 최적화된 네이티브 uuid 타입을 지원합니다. UUID v4는 정렬 순서가 중요하지 않은 상관 ID나 세션 토큰 같은 비인덱스 식별자에는 여전히 적합합니다.
데이터베이스 ID로 UUID와 자동 증가 정수 중 어느 것을 써야 할지 팀에서 논의 중입니다. 실무에서 어떤 장단점이 있나요?
자동 증가 정수는 더 작고(4-8바이트 대 16바이트) 비교가 빠르며 자연스럽게 순차 인덱스를 만듭니다. 그러나 중앙 집중식 시퀀스(데이터베이스)가 필요하므로 분산 시스템, 오프라인 우선 앱, 데이터 마이그레이션에서 문제가 됩니다. UUID는 클라이언트, 엣지 함수, 여러 데이터베이스 등 어디서든 조정 없이 생성할 수 있습니다. 또한 열거 공격을 예방합니다(사용자가 /users/124를 추측해 다른 레코드를 찾을 수 없음). 저장 공간 부담은 실재하지만 대개 감수할 만합니다. UUID 인덱스는 정수 인덱스의 약 2배 크기입니다. 대부분의 현대 애플리케이션에서 UUID v7은 전역 고유, 조정 불필요, 그리고 자동 증가처럼 순차 정렬 가능하다는 두 장점을 모두 제공합니다.

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을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.