본문으로 건너뛰기
yutils
예시

옵션

버전: UUID v7
개수: 3
대문자: off

출력 (UUID v7 · 3개)

0192f5a4-b6e0-7c1e-9d4f-1a2b3c4d5e6f
0192f5a4-b6e1-7203-8a9b-cd1234ef5678
0192f5a4-b6e2-7c01-b1c2-aabbccddeeff

참고

v7은 앞 48비트가 ms 타임스탬프라 정렬 시 시간순으로 정돈됩니다. 같은 ms 안에서 발급된 ID도 뒤쪽 랜덤 비트가 다르므로 충돌 확률은 사실상 0.

사용법 / 자주 묻는 질문

이런 경우 사용하세요

  • 데이터베이스 기본 키로 쓸 고유 식별자 생성
  • 분산 시스템에서 충돌 없는 ID가 필요할 때 (UUID v4)
  • 시간 정렬 + DB 인덱스 효율을 동시에 원할 때 (UUID v7 / ULID)
  • 테스트·목 데이터의 ID 필드를 현실감 있게 채우기
  • 사실상 충돌 확률 0인 무작위 세션 토큰 발급

자주 묻는 질문

Q.UUID v4와 v7의 차이는?
A.v4는 122비트 완전 랜덤으로 가장 널리 쓰이지만 DB 인덱스 locality가 나쁩니다. v7(RFC 9562, 2024)은 48비트 ms 타임스탬프 + 랜덤이라 시간 정렬되고 인덱스 친화적입니다.
Q.ULID는 무엇인가요?
A.ULID는 Crockford Base32 26자로 사람이 읽기 더 쉽고 시간 정렬도 지원합니다. UUID보다 짧고 URL에도 안전합니다.
Q.어떤 걸 써야 하나요?
A.새로 만드는 DB 기본 키라면 UUID v7 또는 ULID를 추천합니다. 외부 API 호환성이 중요하면 v4가 가장 안전한 default. 사람이 읽어야 하는 trace ID라면 ULID가 짧고 깔끔합니다.
재미있는 사실
  • UUID v4의 가능한 값은 2¹²² ≈ 5.3 × 10³⁶개. 매초 10억 개를 뽑아도 같은 값이 한 번 나올 확률이 50%에 도달하려면 약 850억 년 — 우주 나이(138억 년)의 6배 정도 걸립니다. '실용적으로 충돌 불가능'이라는 말의 진짜 근거.

    Wikipedia — UUID 충돌
  • UUID의 기원은 1980년대 Apollo Computer의 NCS(Network Computing System)입니다. 분산 시스템에서 중앙 ID 발급자 없이도 충돌 안 나는 ID를 만들고 싶다 — 이게 출발점이었고 나중에 DCE → RFC 4122(2005)로 표준화됐습니다.

    RFC 4122
  • UUID v7은 2024년 5월 RFC 9562로 정식화됐습니다. v4(완전 랜덤)는 DB 인덱스가 매번 임의 위치에 쓰여 비효율적인 반면, v7은 앞 48비트가 ms 타임스탬프라 시간순 정렬 + 인덱스 locality를 동시에 얻습니다. 새 시스템이라면 v7 권장.

    RFC 9562 (2024)