본문으로 건너뛰기
ZEKILO Dev

UUID·ULID 생성

UUID v4·v7과 ULID를 브라우저에서 생성합니다. 값은 페이지가 열린 뒤에 만들어지며 어디로도 보내지 않습니다.

입력값은 브라우저 밖으로 나가지 않음RFC 9562ULID기준일 2026.10.03

생성한 값

UUID·ULID 생성 사용 방법

  1. 1종류(v4·v7·ULID·Nil·Max)와 개수를 고릅니다. 페이지가 열리면 목록이 바로 채워집니다.
  2. 2「다시 생성」을 누르면 새 값으로 바뀝니다. 옵션을 바꿔도 새로 만듭니다.
  3. 3값 옆의 복사 버튼으로 하나씩 복사하거나 「전체 복사」를 누르고, 「내려받기」로 줄마다 값 하나가 든 .txt 파일을 저장합니다.

UUID·ULID 생성 옵션

종류
UUID v4는 난수입니다. UUID v7은 밀리초 단위 Unix 시각으로 시작해서 만든 순서대로 정렬됩니다. ULID는 같은 시각을 Crockford Base32 26자로 담습니다. Nil·Max는 모든 비트가 0인 값과 1인 값입니다.
개수
한 번에 1~1,000개. 기본값은 5개입니다.
대문자
16진수를 대문자로 씁니다. ULID는 항상 대문자입니다.
하이픈
기본은 켬(8-4-4-4-12)입니다. 끄면 32자리를 붙여 씁니다.
감싸기
값마다 중괄호나 큰따옴표로 감쌉니다.
분석
UUID나 ULID를 붙여 넣으면 버전과 변형을 보여 줍니다. v1·v6·v7과 ULID는 값에 든 시각도 함께 보여 줍니다.

UUID 버전과 표준

UUID는 RFC 9562가 정의합니다. 128비트를 16진수 32자리로 적고 다섯 묶음(8-4-4-4-12)으로 나눕니다. 셋째 묶음의 첫 자리가 버전이고, 넷째 묶음의 첫 자리에 변형이 들어 있습니다.

  • v4: 난수 122비트. 버전 자리는 4, 변형 자리는 8·9·a·b 가운데 하나입니다.
  • v7: 밀리초 단위 Unix 시각 48비트, 버전 자리 7, 그 뒤는 난수입니다. 나중에 만든 값이 먼저 만든 값보다 뒤에 정렬됩니다.
  • Nil·Max: 모든 비트가 0인 값과 모든 비트가 1인 값입니다.

ULID는 같은 48비트 밀리초 시각 뒤에 난수 80비트를 붙여 Crockford Base32 26자로 적습니다.

값을 만드는 방법

v4는 crypto.randomUUID()로 만듭니다. v7과 ULID의 난수는 crypto.getRandomValues()에서 가져옵니다. Math.random()은 쓰지 않습니다. 같은 밀리초에 v7을 여러 개 만들면 버전 자리 뒤 12비트를 카운터로 써서 한 목록의 값이 오름차순이 되게 합니다.

서버가 보내는 HTML의 작업 카드는 비어 있습니다. 값은 페이지가 열린 뒤 브라우저에서 만들고, 「다시 생성」을 누르거나 옵션을 바꾸면 새 목록으로 바뀝니다.

UUID·ULID 생성 예시

  • Nil UUID (종류 Nil·Max)

    둘째 줄의 Max UUID는 ffffffff-ffff-ffff-ffff-ffffffffffff입니다.

    입력

    Nil

    출력

    00000000-0000-0000-0000-000000000000
  • 1767225600000 ms(2026-01-01T00:00:00.000Z)에 만든 UUID v7

    앞 16진수 12자리 019b76daa800이 밀리초 단위 Unix 시각입니다. 7은 버전이고 x는 난수 자리입니다.

    입력

    1767225600000

    출력

    019b76da-a800-7xxx-…
  • 같은 시각에 만든 ULID

    앞 10자가 시각이고, 뒤에 난수 16자가 이어집니다.

    입력

    1767225600000

    출력

    01KDVDNA00…
  • UUID 분석

    버전, 변형, 앞 48비트에 든 시각입니다.

    입력

    019b76da-a800-7000-8000-000000000000

    출력

    7 · RFC 9562 · 2026-01-01T00:00:00.000Z

예시는 이 도구를 검증하는 기준 사례의 값입니다.

UUID·ULID 생성 자주 묻는 질문

입력값이 서버로 전송되나요?

아니요. 입력과 결과는 이 브라우저 안에서만 처리되며 저장하지도 않습니다. 새로 고침하면 사라집니다.

v4와 v7 중 무엇을 써야 하나요?

뜻이 없는 고유한 값만 필요하면 v4를 씁니다. 데이터베이스 키에는 v7이 좋습니다. 앞에 시각이 있어 새 행이 인덱스에서 가까이 모입니다. 다만 v7은 만든 시각이 드러나므로 시각을 감춰야 하면 v4를 쓰세요.

생성한 UUID가 겹칠 수 있나요?

v4 UUID는 난수가 122비트라 현실적으로 겹치지 않습니다. 값은 Math.random()이 아니라 브라우저의 crypto.randomUUID()와 crypto.getRandomValues()로 만듭니다.

페이지가 열리기 전에는 왜 목록이 비어 있나요?

값은 페이지가 열린 뒤 브라우저에서 만듭니다. 서버가 보내는 HTML에는 생성값이 없으므로 두 사람이 같은 목록을 받는 일이 없습니다.

ULID는 무엇인가요?

ULID는 128비트 식별자를 Crockford Base32 26자로 적은 것입니다. 앞 10자는 밀리초 단위 시각, 뒤 16자는 난수입니다. 글자 그대로 정렬해도 시각 순서가 되고 I·L·O·U는 쓰지 않습니다.

한 번에 만든 v7 값은 어떤 순서인가요?

한 번에 만든 값은 모두 같은 밀리초입니다. 버전 자리 뒤 12비트가 값마다 1씩 늘어나는 카운터라서 목록은 이미 오름차순입니다. 카운터가 끝까지 가면 다음 값은 다음 밀리초를 씁니다.

처리 방식·표준

  • 처리 위치: 이 브라우저 (내 기기). 전송하거나 저장하지 않습니다.
  • 표준: RFC 9562 · ULID
  • 엔진: Web Crypto API (crypto.randomUUID, crypto.getRandomValues) (브라우저 내장) · ZEKILO Dev UUID v7·ULID 생성기, UUID 분석기 (자체 구현)
  • UUID v7과 ULID에는 만든 시각이 들어 있습니다. 시각을 감춰야 하는 곳에는 쓰지 마세요.
  • 생성값은 저장하지 않습니다. 새로 고침하면 새 목록을 만듭니다.
  • 기준일 2026.10.03
  • 변경 이력: 2026.10.03 처음 공개
오픈소스 라이선스 →
결과가 이상한가요? 오류 신고하기(입력값은 첨부되지 않습니다)