본문으로 건너뛰기
AZ Tools

ULID / NanoID / CUID2 생성기

ULID·NanoID·CUID2 대량 생성 — UUID 대안, 더 짧고 정렬 가능하거나 충돌 저항성 강화.

설명

ULID: 26자 · 48비트 타임스탬프 + 80비트 무작위 · Crockford Base32 · 시간 순 정렬.

사용법

  1. 방식 선택(ULID·NanoID·CUID2).
  2. NanoID/CUID2는 길이, NanoID는 알파벳도 선택.
  3. 개수 설정 후 생성. 개별 또는 일괄 복사.

자세한 설명

펼치기

ULID, Nano ID, CUID2를 한꺼번에 생성합니다. 모두 브라우저의 암호학적 난수원에서 나옵니다. 무엇을 고를지는 그 ID가 무슨 일을 해야 하는지에 달려 있습니다. ULID는 크록퍼드 base32로 된 26글자이고 앞의 열 글자가 생성 시각을 밀리초 단위로 담고 있어서, 목록을 그냥 텍스트로 정렬해도 시간순이 됩니다. 완전 무작위인 UUID는 삽입이 인덱스 전체에 흩어지는 반면 ULID가 더 나은 데이터베이스 키가 되는 이유가 바로 이 시간 정렬입니다. Nano ID는 짧고 조절할 수 있습니다. 길이와 알파벳을 고를 수 있는데 기본값은 소문자와 숫자라, 대소문자를 구분하지 않는 파일 시스템이나 누군가 손으로 다시 입력할 URL에서도 살아남습니다. CUID2는 충돌 저항성을 앞세우며 언제 어디서 만들어졌는지는 전혀 드러내지 않습니다.

자주 묻는 질문

ULID vs UUIDv4?

둘 다 128비트 무작위지만 ULID 앞 48비트는 타임스탬프 — 나중 생성 ID가 뒤로 정렬됨, DB PK에 유용.

왜 UUID 대신 NanoID?

더 짧음(21자 vs 36), 기본 URL 안전, 알파벳 설정 가능. 기본 크기에서 UUIDv4와 동일 강도.

CUID2는 안전한가요?

네 — 암호학적 RNG, 길이 설정 가능. 타임스탬프/지문 누출 없도록 설계.

RFC 표준인가요?

ULID는 커뮤니티 스펙. NanoID·CUID2는 사실상 표준이지만 UUID처럼 RFC 번호는 없음.

데이터베이스에서 ULID의 정렬 순서가 왜 중요한가요?

생성 시각 순으로 정렬되는 기본 키는 새 행이 인덱스 전체에 흩어지지 않고 끝에 차곡차곡 쌓이게 하므로, 페이지가 촘촘하게 유지되고 삽입 비용도 낮게 유지됩니다. 완전 무작위인 UUID는 정반대로 동작하며, UUIDv4를 키로 쓰는 큰 테이블이 시간이 지나며 인덱스가 조각나는 이유가 이것입니다.

ID에 시각을 담으면 무언가 새어 나가나요?

그렇습니다. ULID는 레코드가 언제 만들어졌는지를 밀리초 단위로 공개적으로 알리고, ID 두 개만 있으면 그 사이 간격도 드러납니다. 내부 행 키로는 괜찮지만 공개 URL에서는 덜 괜찮습니다. 가입 속도나 주문량이 드러날 수 있기 때문입니다. CUID2가 존재하는 이유가 정확히 그것입니다.

이 주제의 가이드

관련 도구