</>DevTools

IDUUID 생성기

랜덤 UUID v4 문자열 생성

1.835282ff-c816-46f7-843f-ce6f53f77c8a

UUID 완벽 가이드

UUID(Universally Unique Identifier)는 RFC 4122로 표준화된 128비트 고유 식별자 형식입니다. 550e8400-e29b-41d4-a716-446655440000 형태의 32자리 16진수 + 하이픈 구조로, 중앙 서버 없이 전 세계적으로 고유한 ID를 생성할 수 있어 분산 시스템, 마이크로서비스, 데이터베이스 기본키에 광범위하게 활용됩니다.

UUID 버전별 차이 (v1 / v4 / v7)

  • UUID v1: MAC 주소 + 타임스탬프 기반. 시간 순 정렬 가능하지만 MAC 주소 노출로 프라이버시 문제가 있습니다.
  • UUID v4: 완전 랜덤. 가장 널리 쓰이는 버전으로 crypto.randomUUID()가 표준입니다. 충돌 확률은 천문학적으로 낮습니다.
  • UUID v7 (2024 RFC 9562): 밀리초 타임스탬프 접두사 포함. 시간 순 정렬이 가능해 데이터베이스 B-Tree 인덱스 효율이 v4 대비 크게 향상됩니다.

UUID vs ULID vs Snowflake 비교

형식길이정렬특징
UUID v436자불가범용 표준, 광범위한 라이브러리 지원
UUID v736자가능DB 인덱스 최적화, RFC 9562
ULID26자가능Base32, URL 친화적, 짧음
Snowflake64비트 정수가능Twitter/Discord 사용, 중앙 노드 필요

데이터베이스에서 UUID PK 트레이드오프

  • 장점: 서버 간 충돌 없음, 클라이언트 사전 생성 가능, 보안(순차 ID 노출 방지)
  • 단점 (v4): 랜덤성으로 인한 B-Tree 페이지 분할 → 쓰기 성능 저하, 저장 공간 증가
  • 해결책: UUID v7 또는 ULID 사용, MySQL에서는 UUID_TO_BIN(uuid, 1)로 바이너리 저장

실전 사용 — 분산 시스템 / 멀티 클라이언트

  • REST API: 리소스 생성 시 클라이언트가 ID를 직접 생성해 PUT 요청 (멱등성 보장)
  • 오프라인 우선 앱: 네트워크 없이 로컬에서 레코드 생성 후 나중에 동기화
  • 이벤트 소싱: 이벤트 고유 식별, 중복 처리 방지
  • 파일/에셋 관리: 파일명 충돌 없는 스토리지 업로드

자주 묻는 질문 (FAQ)

Q. UUID v4와 v7 중 어떤 걸 써야 하나요?

새 프로젝트에서 DB 기본키로 쓴다면 UUID v7을 권장합니다. 기존 시스템 호환이나 라이브러리 지원이 중요하다면 v4가 안전한 선택입니다.

Q. UUID를 URL에 그대로 사용해도 되나요?

하이픈이 포함되지만 URL-safe 문자만 사용하므로 인코딩 없이 사용 가능합니다. 더 짧게 쓰려면 No dashes 옵션이나 ULID를 고려하세요.

Q. 이 도구에서 생성한 UUID는 안전한가요?

브라우저의 crypto.randomUUID()를 사용하며 암호학적으로 안전한 난수입니다. 모든 처리는 로컬에서 이루어져 서버로 전송되지 않습니다.

Q. 대량 생성 시 성능은 어떤가요?

브라우저 내장 API를 사용하므로 50개 일괄 생성도 즉각적입니다. 더 많은 수량이 필요하다면 Node.js의 crypto.randomUUID()를 반복 호출하는 스크립트를 작성하세요.

🔗관련 도구🔐 암호화/보안