ULID 생성기

시간순 정렬이 가능한 고유 식별자 ULID를 생성합니다. UUID의 대안입니다.

0생성 개수
보장같은 ms 내 정렬
생성 시각

ℹ️ ULID 는 앞 10자 = 48비트 밀리초 타임스탬프, 뒤 16자 = 80비트 난수로 이뤄진 26자 식별자입니다. 사전순 정렬이 곧 생성순 정렬이라 데이터베이스 인덱스에 유리하고, 헷갈리는 글자(I·L·O·U)를 뺀 Crockford Base32 를 써서 사람이 옮겨 적기 좋습니다. 단조증가 보장을 켜면 같은 밀리초에 여러 개를 만들 때 난수 부분을 1씩 올려 순서를 지킵니다(끄면 같은 ms 안에서는 순서가 뒤섞일 수 있음).

🔒 값은 브라우저의 암호학적 난수 생성기(crypto.getRandomValues)로 만들어지며 서버로 전송되지 않습니다. 생성 시각이 값에 그대로 담기므로 시각을 숨겨야 하는 곳에는 쓰지 마세요.

ULID 생성기란?

데이터베이스 성능을 높여주는 정렬 가능한 고유 ID(Identifier)가 필요하신가요? UUID의 좋은 대안인 ULID(Universally Unique Lexicographically Sortable Identifier)를 바로 생성해 보세요. ULID는 생성 시각을 나타내는 48비트 타임스탬프와 80비트 난수로 구성된 26자 문자열입니다. 이 구조 덕분에 ID를 문자열로 정렬하는 것만으로도 생성 시간 순서대로 정렬이 되어, UUID와 달리 데이터베이스 인덱싱에 매우 유리합니다. 툴즈25시 ULID 생성기는 원하는 개수만큼 ID를 한 번에 만들고, 같은 밀리초 내에서도 순서를 보장하는 '단조증가(monotonic) 보장' 옵션을 제공합니다. 또한, 생성뿐만 아니라 기존 ULID를 붙여넣어 타임스탬프와 생성 시각 등을 상세히 분석하는 디코더 기능까지 갖췄습니다. 모든 과정은 사용자의 브라우저 안에서만 안전하게 처리되며 어떤 정보도 서버로 전송되지 않습니다.

사용 방법

  1. 먼저 '개수'를 입력하고, 필요에 따라 '단조증가(monotonic) 보장'이나 '소문자로 표시' 옵션을 선택합니다.
  2. '생성' 버튼을 누르면 지정한 개수만큼 ULID 목록이 아래 결과 창에 즉시 나타납니다.
  3. 결과는 '전체 복사' 버튼으로 클립보드에 복사하거나, '저장' 버튼을 눌러 'ulid.txt' 파일로 다운로드할 수 있습니다.
  4. 기존 ULID를 분석하고 싶다면, 'ULID → 생성 시각 디코드' 입력란에 26자 ULID를 붙여넣으세요.
  5. ULID에 담긴 타임스탬프, 난수 부분, 그리고 정확한 생성 시각(UTC, 현재 지역, 상대 시간)을 표에서 바로 확인할 수 있습니다.
  6. 방금 생성한 ULID를 테스트하고 싶다면 '첫 결과 넣기' 버튼을 눌러 간편하게 디코드해볼 수 있습니다.

자주 묻는 질문

UUID와 무엇이 다른가요?

가장 큰 차이는 정렬 가능성입니다. ULID는 앞부분에 시간 정보가 있어 문자열 정렬이 곧 생성순 정렬이 되지만, 무작위로 생성되는 UUID v4는 정렬이 불가능합니다. 이 특징 때문에 ULID는 데이터베이스 인덱스 성능에 유리합니다. 또한 ULID는 26자의 읽기 쉬운 Base32 문자열(I, L, O, U 제외)을 사용해 사람이 보고 다루기에도 더 편리합니다.

'단조증가(monotonic) 보장' 옵션은 무엇인가요?

컴퓨터는 1밀리초(0.001초)라는 짧은 시간 안에도 여러 개의 ID를 만들 수 있습니다. 이 옵션을 켜면, 같은 밀리초에 생성된 ID들의 순서가 뒤섞이지 않도록 난수 부분을 1씩 증가시켜 엄격한 생성 순서를 보장합니다. 이 옵션을 끄면 같은 밀리초 안에서는 순서가 무작위가 될 수 있습니다.

ULID는 정말 고유한가요? 충돌 가능성은 없나요?

네, 사실상 고유하다고 할 수 있습니다. ULID는 48비트 타임스탬프와 80비트의 암호학적 난수로 구성됩니다. 80비트의 난수는 1208조의 1000억 배가 넘는 경우의 수를 가지므로, 같은 밀리초에 두 개의 동일한 ULID가 생성될 확률은 천문학적으로 낮아 무시할 수 있는 수준입니다. 일반적인 환경에서는 충돌을 걱정하지 않아도 됩니다.

생성된 값은 안전한가요? 서버에 기록이 남나요?

툴즈25시의 모든 도구처럼, ULID 생성기는 사용자의 브라우저 내에서만 100% 독립적으로 동작합니다. 브라우저의 안전한 암호학적 난수 생성기(crypto.getRandomValues)를 사용하며, 생성된 값이나 분석 내용은 서버로 일절 전송되거나 저장되지 않습니다. 다만, ULID 자체에 생성 시각이 포함되므로 시각 정보 노출에 민감한 경우에는 사용에 주의가 필요합니다.