Nano ID 생성기
URL에 안전하고 짧은 고유 ID를 브라우저에서 한 번에 대량으로 생성합니다. 문자 집합(기본・영숫자・소문자・대문자・숫자・16진수)과 길이를 자유롭게 지정할 수 있어 UUID보다 짧은 ID가 필요한 경우에 적합합니다.
ID 형식 비교
| 형식 | 길이 | 문자 집합 크기 | 생성 순서로 정렬 가능 여부 | 설명 |
|---|---|---|---|---|
| Nano ID | 기본 21자(1〜64자로 지정 가능) | 64자 | 불가능(완전 무작위) | URL에 안전한 문자로만 구성된 짧은 무작위 ID. 문자 집합과 길이를 자유롭게 변경할 수 있다. |
| UUID v4 | 36자(하이픈 4개 포함) | 16자(16진수) | 불가능(완전 무작위) | RFC 9562로 표준화된 128비트 식별자. 하이픈으로 구분된 16진수 표기가 표준 형식이다. |
| ULID | 26자 | 32자(Base32) | 가능(앞 10자가 타임스탬프) | 앞부분에 밀리초 단위 타임스탬프를 포함해 생성 순서대로 문자열로 정렬할 수 있다. |
팁
- Nano ID는 Web Crypto API 기반의 암호학적으로 안전한 난수로 생성되며 브라우저 내에서 처리되므로 toolbase.cc 서버로는 전송되지 않습니다.
- 기본 64자 문자 집합(
A-Za-z0-9_-)은 기호나 공백을 포함하지 않으므로 그대로 URL 경로나 파일명으로 안전하게 사용할 수 있습니다. - 문자 집합을 "숫자만" 또는 "16진수"로 제한하면 기존 시스템의 ID 형식(예: 주문번호가 숫자만인 경우)에 맞춘 ID를 생성할 수 있습니다.
- 길이가 짧을수록 충돌 확률이 높아집니다. 발행량이 많은 시스템에서는 기본값인 21자 전후를 유지하고, 소량의 테스트 데이터라면 8〜10자 정도로도 충분할 수 있습니다.
- 생성 개수를 늘린 뒤 "모두 복사"를 사용하면 테스트용 데이터나 시드 데이터를 한 번에 만들 때 편리합니다.
자주 묻는 질문
여담 ― Nano ID가 UUID보다 짧을 수 있는 이유
Nano ID는 2017년 PostCSS 개발자인 Andrey Sitnik이 공개한 JavaScript 기반 ID 생성 라이브러리입니다. UUID보다 짧고 의존성이 없는 경량 구현(코드 용량이 불과 수백 바이트)임에도 암호학적으로 안전한 난수를 사용하는 설계로 평가받아, npm에서 주간 수천만 건의 다운로드를 기록하는 대표적인 라이브러리가 되었습니다.
ID의 길이는 사용하는 문자 집합의 크기에 따라 결정됩니다. UUID는 16진수(16종의 문자)만으로 128비트를 표현하기 때문에 36자가 필요하지만, Nano ID는 64종의 문자를 사용해 동등한 수준의 무작위성(기본 설정에서 126비트)을 불과 21자로 표현할 수 있습니다. 문자 하나당 정보량(log₂64=6비트)이 16진수(log₂16=4비트)보다 크다는 점이 짧아질 수 있는 이유입니다.
기본 설정(21자・64종 문자)이 갖는 126비트의 무작위성은 UUID v4의 122비트와 거의 동등합니다. 생일 문제의 근사식으로 계산하면 충돌 확률이 50%에 도달하기까지 필요한 생성 수는 약 1.09×10¹⁹개로, 실용상 걱정할 필요는 거의 없습니다.