식별자

Nano ID 생성기CUID·CUID2·KSUID도 함께

새 ID 묶음을 만들거나 CUID와 KSUID에 담긴 필드를 확인하세요.

Nano ID 생성기

입력

아래에서 알고리즘과 설정을 고르세요. 실행할 때마다 새 묶음이 생성됩니다. 설정만 바꾸면 기존 결과는 이전 설정의 결과로 표시됩니다.

이 브라우저에서 처리하며 입력을 서버로 보내지 않습니다.

결과

설정

한 번에 1–1,000개, NanoID 길이 1–128자, CUID2 길이 2–32자. 사용자 문자 집합은 공백 없이 서로 다른 출력 가능한 ASCII 2–64자입니다. 해독 입력은 최대 128,000자, ID 1,000개입니다.

설정을 선택한 뒤 실행하세요.

Nano ID 생성기는 짧은 링크, 테스트용 레코드, 파일 이름에 쓸 식별자의 길이와 문자 집합을 직접 정할 때 유용합니다. 출력부터 줄이기 전에 데이터를 받을 시스템이 어떤 형식을 요구하는지 확인하세요.

나노아이디는 문자 집합을 바꿀 수 있고, CUID2는 내부 입력을 해시로 가립니다. 이전 CUID는 시간과 카운터가 드러나며, KSUID에는 초 단위 시각과 무작위 데이터가 들어 있습니다.

Nano ID 생성기를 사용하는 이유

필요한 형식에 맞춰 길이 선택

Nano ID 생성기는 네 알고리즘의 설정을 구분해 보여 줍니다. 랜덤 ID가 너무 길면 NanoID 길이를 줄일 수 있지만, KSUID를 잘라 쓰면 형식이 달라지므로 27자를 유지합니다.

길이를 바꿀 수 있는 무작위 문자열, 필드가 나뉜 이전 형식, 해시 출력, 시간과 무작위 데이터로 구성된 네 식별자.

읽을 수 있는 정보만 확인

CUID와 KSUID 보고서에는 실제로 인코딩된 시간과 다른 필드가 나옵니다. NanoID나 CUID2에 숨은 시간을 추정하지 않습니다. 시간 필드를 읽었다고 그 시점에 사건이 발생했음을 증명하는 것은 아닙니다.

구조가 있는 식별자에서 시계와 무작위 데이터가 분리되고, 옆에는 시계를 복원할 수 없는 식별자가 표시됩니다.

짧게 만들기 전에 확인할 세 가지

01

받는 시스템의 조건부터 확인

기본 NanoID는 URL에 안전한 21자, CUID2는 소문자와 숫자로 된 24자입니다. 사용자 문자 집합은 NanoID에만 적용됩니다. 문자를 중복 입력하면 가중치가 늘어나는 대신 오류가 납니다.

  • 설정을 바꾸면 기존 결과의 내보내기가 중지되며 새 묶음은 직접 실행해야 생성됩니다.
02

발급량의 기준 선택

충돌 확률에 넣는 수는 이번 생성 개수와 별개입니다. NanoID와 CUID2에는 총발급량, KSUID에는 같은 초에 발급되는 수를 넣으세요. 이전 CUID에 순수 무작위 문자열 모델을 적용하지 않습니다.

  • Ctrl/Cmd+Enter로 실행할 수 있습니다. 자동 처리는 해독 모드에만 있고 입력 후 350ms를 기다립니다.
03

일부 표시와 전체 결과 구별

처음에는 50개를 보여 주고 더 보기로 100개씩 추가합니다. 복사와 다운로드는 전체 결과를 포함합니다. 해독할 때 내용이 있는 한 줄이라도 잘못되면 묶음 전체가 실패합니다.

  • 예제와 지우기는 먼저 교체 내용을 보여 줍니다. 적용 후 실행 취소하면 이전 입력, 설정, 결과가 돌아옵니다.

네 알고리즘의 차이

문자 집합을 바꾸는 NanoID

Nano ID 생성기에서 URL 안전 문자, 16진수, 숫자 또는 사용자 문자 집합을 선택하세요. 공식 구현의 거부 샘플링은 문자 수가 2의 거듭제곱이 아닐 때 단순 나머지 연산으로 생기는 편향을 피합니다.

필드가 드러나지 않는 CUID2

SHA3-512로 시간, 무작위 솔트, 카운터와 세션 지문을 결합합니다. 첫 문자는 소문자이며 길이는 2–32자로 설정할 수 있습니다. 내부 필드를 편집하거나 출력에서 다시 읽는 기능은 없습니다.

이전 CUID 형식 확인

c 접두사 뒤에 Base36 밀리초, 4자 카운터, 4자 지문 필드, 8자 무작위 값이 옵니다. 이 구현의 지문은 브라우저 속성을 읽지 않고 만드는 무작위 세션 표식입니다.

KSUID 시간과 데이터 분리

20바이트를 대소문자를 구분하는 Base62 27자로 나타냅니다. 앞 4바이트는 Unix 1400000000부터 지난 초, 뒤 16바이트는 무작위 데이터입니다. 해독 결과에서 UTC와 원시 데이터를 함께 봅니다.

결과를 해석할 때의 한계

낮은 확률이 중복 검사는 아님
생일 문제 식은 독립 추출에서 중복이 하나 이상 생길 가능성을 근사합니다. CUID2의 공간은 이상적 모델이며 KSUID는 같은 초끼리 계산합니다. 데이터베이스의 고유 제약은 별도로 유지하세요. 중복이 나온 결과를 몰래 다시 뽑지 않습니다.
타임스탬프는 생성 증명서가 아님
CUID 시간의 자릿수는 가변이며 고정된 뒤 16자를 기준으로 나눕니다. KSUID는 초 단위라 같은 초 내부 순서나 시계가 뒤로 갔을 때의 순서를 보장하지 않습니다. Nil과 Max는 특수 표식으로 표시하며 실제 생성 사건으로 해석하지 않습니다.
입력 원문 유지
내용이 있는 줄은 공백 제거, 자동 수정, 정렬, 중복 제거를 하지 않습니다. CUID 또는 KSUID를 직접 지정해야 합니다. 문자 집합이 겹칠 수 있어 알고리즘을 추측하지 않으며 NanoID와 CUID2의 시간 해독은 지원하지 않습니다.
설정과 입력 크기 제한
생성은 1–1,000개, NanoID 길이는 1–128자, 사용자 문자 집합은 서로 다른 ASCII 2–64자입니다. CUID2는 2–32자입니다. 유니코드 문자 집합, 공백, 가중치, 접두사, 사용자 구분자, KSUID 시간이나 데이터 편집은 지원하지 않습니다.
이전 형식과 외부 시스템
사용 중단된 CUID는 호환성 확인용입니다. ID는 비밀번호나 권한 검사 수단이 아닙니다. 약한 난수로 대체하지 않으며 파일 업로드, URL 요청, 데이터베이스 연결도 없습니다. UUID, ULID, Snowflake는 별도 도구에서 다룹니다.

Nano ID 생성기 자주 묻는 질문

Nano ID와 UUID 중 어느 것을 사용해야 하나요?

받는 시스템이 UUID 형식을 요구하면 UUID를 사용하세요. 짧은 URL이나 사용자 문자 집합이 필요하면 NanoID가 적합합니다. NanoID 문자열을 UUID 전용 열에 그대로 넣을 수는 없습니다.

생성된 ID가 중복될 수 있나요?

가능합니다. 기본 21자와 64종 문자에서는 공간이 크지만 확률이 0은 아닙니다. 총발급량을 입력해 추정치를 확인하고 실제 서비스에서는 데이터베이스의 고유 제약과 재시도 정책을 사용하세요.

문자 집합을 숫자로만 제한하면 안전성이 낮아지나요?

같은 길이라면 가능한 출력 수가 줄어 중복 가능성이 커집니다. 6자리 숫자는 백만 가지지만 기본 64종 문자 21자에는 126비트의 이상적 공간이 있습니다. 자릿수만 보고 두 설정을 같다고 판단하면 안 됩니다.

nanoid는 어떻게 만들어지나요?

브라우저의 안전한 난수와 공식 NanoID 구현을 사용해 선택한 문자 집합에서 문자를 뽑습니다. 기본값은 URL 안전 문자 64종과 길이 21자입니다. 시간이나 사용자 정보를 문자열에 넣는 방식은 아닙니다.

알파벳 순서가 왜 A-Z 순서가 아닌가요?

NanoID 공식 문자 배열은 소스 압축 효율을 고려해 순서가 섞여 있습니다. 순서가 섞여도 균일한 추출에서 각 문자의 확률은 같습니다. 이 도구는 공식 기본 문자 집합을 사용하며 대소문자를 서로 다른 문자로 취급합니다. 이 도구는 같은 64개 문자 집합을 읽기 쉬운 A–Z, a–z 순서로 배치합니다. 배열 순서는 균일한 추출 확률에 영향을 주지 않습니다.

ID에 대해 궁금한 점이 있나요?

Nano ID 생성기 열기

Nano ID 생성기에서 받는 시스템의 형식과 발급량을 확인한 뒤, 필요한 설정으로 새 ID 묶음을 생성하고 내보내세요.