NanoID 생성기

온라인에서 NanoID 값을 생성해 보세요. 기본적으로 URL에 안전한 21자 길이와 약 126비트의 무작위성을 가지며, 길이와 알파벳을 직접 지정할 수도 있습니다.

포맷
생성된 ID
준비되었습니다. 브라우저에서 NanoID 값을 생성해 보세요.

ID 생성 구조

레이아웃
A-Z, a-z, 0-9, 언더바(_), 하이픈(-)으로 구성된 URL 안전 문자 21자가 기본값입니다.
엔트로피
기본 64자 알파벳 및 21자 길이를 기준으로 약 126비트의 엔트로피를 가집니다.
시간 정보
타임스탬프를 포함하지 않습니다. 커스텀 알파벳에 별도의 의미를 부여하지 않는 한 NanoID 값은 불투명한 무작위 값입니다.
충돌 위험
충돌 위험은 길이와 알파벳 구성에 따라 달라집니다. 기본 설정은 UUID v4와 실질적으로 동일한 안전 범위를 제공합니다.
예시
9rnbucFQcNTg-PCmnfPBO

ID는 브라우저의 강력한 난수 생성기를 통해 로컬에서 생성됩니다. BroBroGo로 아무것도 전송되지 않습니다.

자주 묻는 질문(FAQ)

왜 NanoID를 사용하나요?

NanoID는 UUID보다 짧고 기본적으로 URL에 안전하며, 기본 길이와 알파벳을 유지할 때 매우 높은 무작위성을 보장합니다.

사용할 알파벳을 변경할 수 있나요?

네, 가능합니다. 잠금 해제된 NanoID 페이지에서 길이와 알파벳 구성을 조절할 수 있습니다. 다만 알파벳 수가 적어지거나 길이가 짧아지면 충돌 위험이 높아집니다.

나노 ID 생성기의 핵심 차별점

이 페이지는 나노 ID(Nano ID) 형식의 고유 식별자를 생성한다. 일반 UUID는 길이가 36자, ULID는 26자로 고정되어 있지만, 나노 ID의 기본 길이는 21자로 훨씬 짧다. 동시에 충돌 저항성은 UUID와 비슷한 수준을 유지한다. 가장 중요한 차이는 길이와 알파벳을 모두 자유롭게 조정할 수 있다는 점이다. 길이는 2에서 36자 사이, 알파벳은 사용자가 직접 편집 가능한 텍스트 필드로 제공된다. 기본 알파벳은 URL‑안전 문자만 포함한다. 설정을 변경하는 즉시 ID가 재생성되므로, 원하는 조건을 실시간으로 확인할 수 있다.

길이와 알파벳 설정의 원리

길이는 슬라이더로 조절하며 기본값은 21, 범위는 2~36이다. 알파벳 필드에는 적어도 2개의 서로 다른 문자가 포함되어야 한다. 예를 들어 abcdef0123456789 등으로 구성할 수 있다. 만약 알파벳을 단일 문자(예: A)로 줄이면 결과가 모두 지워지고 생성된 ID 개수가 0으로 표시되며, “모두 복사” 버튼이 비활성화된다. 이는 나노 ID가 알파벳 내에서 무작위로 문자를 선택하는데, 알파벳이 하나뿐이면 의미 있는 식별자를 만들 수 없기 때문이다. 기본 알파벳은 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-로, 총 64개의 URL‑안전 문자로 구성된다.

충돌 저항성과 생성 방식

나노 ID의 기본 길이(21자, 알파벳 64개)에서 가능한 조합의 수는 64^21 ≈ 1.3×10^38이다. 이는 UUID v4의 2^122(약 5.3×10^36)보다 더 큰 공간이다. 길이를 늘리거나 알파벳을 더 넓게 설정하면 충돌 확률이 더욱 낮아진다. 반대로 길이를 짧게 하고 알파벳을 줄이면 충돌 위험이 커지지만, 특정 환경(예: QR 코드에 제한된 공간)에서는 의도적으로 짧은 ID를 사용하기도 한다. 생성 과정은 순수 브라우저 내부에서 이루어지며, 암호학적으로 강력한 난수 생성기(crypto.getRandomValues)를 사용한다. 어떤 데이터도 BroBroGo 서버로 전송되지 않으므로 프라이버시가 중요한 애플리케이션에도 적합하다.

입력과 출력의 상세

입력 요소 설명
형식 나노 ID (고정)
개수 1~100 사이 정수
길이 슬라이더, 2~36, 기본 21
알파벳 편집 가능한 텍스트 필드, 2개 이상 서로 다른 문자 필수

출력은 생성된 ID의 목록이며, 각 ID를 클릭하면 클립보드에 복사된다. 상태 표시줄은 초기 Ready.에서 생성 후 Generated.로 바뀌고, 모두 복사 시 Copied all!을 표시한다. 알파벳이 유효하지 않을 때는 Alphabet needs at least 2 different characters.라는 오류 메시지가 나타난다.

실제 사용 사례와 권장 설정

  • 웹 API 토큰: 짧은 길이 덕분에 URL에 포함하기 좋다. 기본 21자면 충분한 무작위성을 제공한다.
  • 데이터베이스 기본 키: UUID(36자)보다 저장 공간을 40% 이상 절약하면서도 고유성은 유지된다.
  • 짧은 링크: 알파벳에서 모호한 문자(예: l1, O0)를 제외하고 숫자만 사용하거나 대문자만 사용하도록 커스터마이징할 수 있다.
  • 고유 토큰(이메일 인증 등): 길이를 25~30자로 늘리면 충돌 확률이 사실상 0에 가까워진다.
  • 프라이버시 민감 서비스: 모든 생성이 클라이언트에서 완료되므로 외부 서버에 식별자가 노출될 일이 없다.

자주 묻는 질문 (FAQ)

Q: 나노 ID의 기본 길이는 왜 21자인가요?
A: 21자(64^21)는 UUID v4의 충돌 저항성과 비슷하면서도 문자 수는 40% 가까이 적기 때문입니다. 이는 저장 공간과 전송 비용을 줄이는 현실적인 균형입니다.

Q: 알파벳을 숫자(0-9)만 사용할 수 있나요?
A: 네, 가능합니다. 길이를 늘리면 숫자만으로도 충분한 고유성을 확보할 수 있습니다. 예: 길이 21, 알파벳 0123456789 → 10^21 ≈ 10^21개의 조합.

Q: 생성된 ID를 브라우저에서 바로 복사할 수 있나요?
A: 각 ID를 클릭하면 해당 ID만 클립보드에 복사됩니다. “모두 복사” 버튼을 누르면 모든 ID가 줄바꿈으로 구분되어 한 번에 복사됩니다.

Q: 알파벳을 실수로 한 글자만 입력하면 어떻게 되나요?
A: 결과가 비워지고 ID 개수가 0으로 표시되며 “모두 복사” 버튼이 비활성화됩니다. 적어도 2개의 다른 문자를 입력해야 정상 작동합니다.

Q: 이 도구는 네트워크 요청을 보내나요?
A: 전혀 보내지 않습니다. 모든 생성은 브라우저 내부의 crypto.getRandomValues 함수로 처리되며, 입력한 알파벳과 길이 정보는 로컬에서만 사용됩니다.

Q: UUID 대신 나노 ID를 선택하는 주된 이유는 무엇인가요?
A: 짧은 길이(21자 대 36자)와 알파벳 커스터마이징이 가장 큰 이유입니다. 특히 URL에 포함하거나 제한된 공간(예: QR 코드)에 넣어야 할 때 유리합니다.