UUID / ULID / NanoID 생성기

브라우저에서 즉시 UUID v4, UUID v7, ULID, NanoID 값을 생성하세요.

포맷

122비트의 순수한 무작위성 — 순서 없음, 예측 불가능.

생성된 ID
준비되었습니다.

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

자주 묻는 질문

UUID v4, UUID v7, ULID, NanoID의 차이점은 무엇인가요?

UUID v4는 친숙한 36자 형식 내에 122비트의 순수 무작위성을 담고 있지만, 무작위 순서로 인해 데이터베이스 인덱스 성능(지역성)이 저하될 수 있습니다. UUID v7은 동일한 형태를 유지하면서 앞부분에 밀리초 단위 타임스탬프를 배치하여 생성 시간순으로 정렬되도록 한 형식으로, 기본 키(Primary Key)에 매우 유용합니다. ULID는 이와 유사한 시간 우선 정렬 방식을 대소문자를 구분하지 않는 더 짧은 26자 문자열로 구현합니다. NanoID는 정렬 기능을 생략하는 대신 길이와 문자 세트를 완전히 맞춤 설정할 수 있는 훨씬 작고 유연한 ID를 제공합니다.

이 ID들은 추측이 불가능할 정도로 충분히 무작위적인가요?

네, 모든 ID는 예측 불가능한 암호학적으로 안전한 브라우저 난수 생성기를 통해 생성됩니다. UUID v4와 NanoID의 기본 알파벳은 100비트 이상의 충분한 무작위성을 가집니다. UUID v7과 ULID는 정렬을 위해 약 48비트를 타임스탬프에 할당하므로, 타임스탬프 기반 형식은 비밀 값보다는 정렬 가능한 식별자로 취급하는 것이 좋습니다.

NanoID의 길이와 문자 세트를 변경할 수 있나요?

네, 가능합니다. NanoID로 전환하면 길이 슬라이더(라이브러리 기본값인 21자)와 편집 가능한 알파벳 필드가 활성화됩니다. 길이를 줄이거나 사용 문자 세트를 좁히면 충돌 저항성이 낮아지므로, 문자 세트를 줄일 때는 길이를 충분히 확보하는 것이 좋습니다.

식별자 포맷별 구조와 특징

고유 식별자(ID)는 현대 소프트웨어 아키텍처에서 데이터를 구분하고 관리하는 핵심 요소입니다. 본 생성기는 용도에 따라 서로 다른 특성을 가진 네 가지 주요 포맷인 UUID v4, UUID v7, ULID, NanoID를 제공합니다.

  • UUID v4: 36자 형식 내에 122비트의 순수 무작위성을 담고 있는 표준 식별자입니다. 생성 순서와 상관없이 완전히 무작위로 배열되므로 예측이 불가능합니다.
  • UUID v7: UUID v4와 동일한 36자 형식을 유지하지만, 시작 부분에 밀리초 단위의 타임스탬프를 배치합니다. 이로 인해 생성 시간순으로 정렬이 가능하여 데이터베이스 인덱싱 성능을 개선하는 데 유리합니다.
  • ULID: 대소문자를 구분하지 않는 26자 문자열 형식입니다. UUID v7과 마찬가지로 시작 부분에 타임스탬프를 포함하고 있어 시간순 정렬이 가능합니다.
  • NanoID: 기본 21자 길이의 컴팩트한 식별자입니다. 정렬 기능은 없으나, 사용자가 필요한 길이를 직접 지정하고 생성에 사용할 문자 세트(알파벳)를 자유롭게 맞춤 설정할 수 있는 유연성을 제공합니다.

시간 기반 정렬과 데이터베이스 인덱싱

데이터베이스 관리자나 개발자가 기본 키(Primary Key)를 설계할 때 식별자의 정렬 가능 여부는 시스템 성능에 큰 영향을 미칩니다. UUID v4와 같은 완전 무작위 식별자는 데이터가 삽입될 때 인덱스 페이지의 무작위 위치에 저장되므로 디스크 I/O 부하를 유발할 수 있습니다.

반면 UUID v7과 ULID는 생성 시점의 밀리초 타임스탬프를 접두어로 사용하므로, 생성 시간순으로 대략적인 정렬이 가능합니다. 다만 동일한 밀리초 내에 생성된 식별자들 사이에서는 엄격한 순서가 보장되지 않습니다. 이러한 시간 기반 식별자는 데이터베이스 인덱스의 물리적 저장 위치를 순차적으로 정렬되도록 유도하여 쓰기 성능을 최적화하는 데 도움을 줍니다.

NanoID 맞춤 설정 및 제약 조건

NanoID 포맷을 선택하면 식별자의 길이와 구성 문자를 세부적으로 조정할 수 있습니다. 슬라이더를 사용하여 최소 2자에서 최대 36자까지 길이를 조절할 수 있으며, 기본 설정값은 21자입니다. 또한 텍스트 필드를 통해 식별자 생성에 사용할 알파벳 문자 세트를 직접 편집할 수 있습니다.

이 설정을 변경할 때는 다음과 같은 규칙이 적용됩니다.

  • 알파벳 필드에는 최소 2개 이상의 서로 다른 문자가 입력되어야 합니다.
  • 만약 알파벳 필드를 단일 문자로 변경하는 등 잘못된 값을 입력하면, 화면에 "알파벳 필드에는 최소 2개 이상의 서로 다른 문자가 필요합니다."라는 오류 메시지가 표시됩니다.
  • 이 오류 상태에서는 기존에 생성된 결과가 모두 지워지며, ID 개수는 0이 되고 "모두 복사" 버튼이 비활성화됩니다.

로컬 브라우저 실행을 통한 개인정보 보호

본 도구는 사용자의 보안과 데이터 프라이버시를 최우선으로 고려하여 설계되었습니다. 모든 식별자 생성 프로세스는 외부 서버로 데이터를 전송하지 않고, 사용자의 웹 브라우저 내부에서 완전히 로컬로 실행됩니다.

식별자 생성에는 브라우저가 자체적으로 제공하는 강력한 암호학적 난수 생성기(Cryptographically Secure Pseudo-Random Number Generator)가 사용됩니다. 따라서 생성된 값은 외부로 유출되지 않으며 BroBroGo로 아무것도 전송되지 않으므로 안심하고 사용할 수 있습니다.

생성기 사용 방법 및 인터페이스 규칙

도구의 제어판에서 옵션을 변경하면 즉시 새로운 식별자가 자동으로 다시 생성됩니다. 한 번에 생성할 수 있는 ID 개수는 최소 1개에서 최대 100개까지입니다.

  • UUID 옵션: UUID v4 및 v7 포맷의 경우, 영문 대문자로 출력 형식을 변환하는 "대문자 사용" 토글과 하이픈(-)을 제거하거나 포함할 수 있는 "하이픈 포함" 토글을 제공합니다.
  • 상태 표시: 도구가 작동할 때 화면에는 "준비되었습니다.", "생성되었습니다." 등의 상태 메시지가 표시됩니다.
  • 복사 기능: 생성된 결과 목록에서 개별 식별자를 클릭하면 해당 값이 클립보드에 바로 복사됩니다. 전체 목록을 한 번에 저장하려면 "모두 복사" 버튼을 클릭하면 되며, 복사가 완료되면 "모두 복사되었습니다!"라는 메시지가 나타납니다.

자주 묻는 질문 (FAQ)

Q1. UUID v4와 UUID v7의 가장 큰 차이점은 무엇인가요? UUID v4는 122비트의 영역을 완전히 무작위 데이터로 채우기 때문에 생성 순서를 알 수 없습니다. 반면 UUID v7은 앞부분에 밀리초 단위의 타임스탬프를 포함하고 있어 생성된 시간 순서대로 정렬할 수 있다는 차이가 있습니다.

Q2. ULID는 UUID와 비교했을 때 어떤 장점이 있나요? ULID는 UUID v7처럼 시간순 정렬이 가능하면서도, 하이픈이 없는 26자의 더 짧은 문자열로 표현됩니다. 또한 대소문자를 구분하지 않아 텍스트 형태로 다루기 편리합니다.

Q3. NanoID의 길이를 아주 짧게 설정해도 안전한가요? NanoID는 길이와 문자 세트를 자유롭게 줄일 수 있지만, 식별자의 길이가 짧아지거나 사용할 수 있는 문자의 종류가 적어지면 무작위 조합의 수가 줄어들어 중복(충돌)이 발생할 확률이 높아집니다. 따라서 문자 세트를 좁게 설정할 때는 길이를 충분히 길게 유지하는 것이 권장됩니다.

Q4. 생성된 식별자가 서버로 전송되어 저장되거나 유출될 염려가 없나요? 네, 전혀 염려하지 않으셔도 됩니다. 모든 식별자는 사용자의 브라우저 내에서 로컬로 생성되며, 네트워크를 통해 BroBroGo 서버나 외부로 어떠한 데이터도 전송되지 않습니다.