이 도구는 무엇인가요?
UUID(범용 고유 식별자)는 128비트 식별자로, 550e8400-e29b-41d4-a716-446655440000처럼 36자로 표기됩니다. 버전 4 UUID는 무작위 데이터로 생성되어 충돌 가능성이 무시해도 될 정도로 낮습니다 — 초당 10억 개씩 수십 년을 생성해야 겨우 중복이 나올까 말까 한 확률입니다.
UUID는 데이터베이스 기본 키, 추적용 요청 ID, 파일명, API 키 등 중앙 기관의 조정 없이 식별자가 필요한 모든 곳에 쓰입니다.
UUID는 RFC 4122로 표준화되었고, 2024년 RFC 9562로 개정되었습니다 — 개정판에서 v4는 그대로 유지됐고, 데이터베이스 키로 인덱싱 성능이 더 좋은 타임스탬프 순서 기반 변형인 UUIDv7이 추가됐습니다.
왜 사용해야 할까요?
- 암호학적으로 안전: 약한 Math.random()이 아니라 crypto.randomUUID()를 사용합니다.
- 대량 생성 — 한 번에 최대 500개, 한 줄에 하나씩, 바로 붙여넣기 가능.
- 특정 포맷이 필요한 시스템을 위한 대문자, 하이픈 제거 옵션.
- 브라우저에서 오프라인으로 실행되며, UUID는 어디로도 전송되지 않습니다.
- 무료, 즉시 실행, 로그인 불필요.
사용 방법
- 필요한 UUID 개수를 선택하세요(1~500).
- 원하면 "대문자" 또는 "하이픈 제거"를 체크하세요.
- "UUID 생성"을 클릭하세요.
- "전체 복사"를 클릭해 목록 전체를 복사하세요.
예시
입력
개수: 3결과
f47ac10b-58cc-4372-a567-0e02b2c3d479
9c858901-8a57-4791-81fe-4c455b099bc9
16fd2706-8baf-433b-82eb-8c7fada847da각 UUID는 안전한 난수 데이터로부터 독립적으로 생성됩니다.
자주 쓰이는 상황
- 데이터베이스 기본 키: UUID를 쓰면 삽입 전에 미리 유효한 ID를 생성할 수 있어, 오프라인 우선 앱이나 서버 확인 전에 클라이언트가 레코드를 참조해야 하는 경우에 유용합니다.
- 분산 시스템: 여러 서버가 조정 없이 각자 독립적으로 ID를 생성해도 충돌 위험이 없습니다 — 단일 진실 소스가 필요한 자동증가 정수와 다릅니다.
- 멱등성 키: 재시도되는 API 요청에 같은 UUID를 함께 보내면 서버가 중복 제출을 인식하고 안전하게 무시할 수 있습니다.
- 테스트 픽스처와 시드 데이터: 테스트 데이터베이스를 채우거나 모의 API 응답을 만들 때 고유 ID 수백 개를 한 번에 대량 생성합니다.
- React/Vue 리스트 키: 리스트 항목에 아직 자연스러운 고유 ID가 없을 때, 생성한 UUID가 개발 중 안정적인 키 역할을 합니다.
알아둘 만한 한계
UUID는 생성 시간 순으로 정렬되지 않습니다 — v4의 무작위성 때문에 새 ID가 데이터베이스 인덱스에서 서로 가까이 정렬되지 않아 대규모에서는 삽입 성능에 영향을 줄 수 있습니다(타임스탬프 순서 기반의 UUID v7이 대안으로 존재하는 이유입니다). 시간순 정렬과 고유성이 함께 필요하다면 v7이나 스노우플레이크 방식 ID가 v4보다 더 적합합니다.
UUID 하나만으로는 보안 인증 수단이 되지 못합니다. 다른 값에서 예측할 수 없다는 점에서 추측 불가능하긴 하지만, 실제 인증 토큰에 필요한 감사 추적, 만료, 폐기 같은 기능을 염두에 두고 설계된 게 아닙니다 — 그런 용도라면 전용 세션/API 토큰 라이브러리를 쓰세요.
실제 무작위성이 작동하는 방식
v4 UUID는 진짜 무작위인 122비트를 가집니다(나머지 6비트는 RFC 4122 규격에 따라 버전과 변형을 표시하기 위해 고정됩니다). 이 도구는 브라우저의 Web Crypto API인 crypto.getRandomValues()에서 그 무작위성을 가져옵니다 — TLS 키를 비롯한 다른 암호학적 작업에도 쓰이는 것과 동일한 소스이며, 훨씬 약한 Math.random()과는 다릅니다. Math.random()은 예측 가능한 수준이라 이를 기반으로 만든 일부 오래된 UUID 라이브러리는 추측 가능한 ID를 생성한다고 비판받았습니다.
충돌 확률을 구체적인 수치로 표현하면: 122개의 무작위 비트로는 약 2.71해(2.71 × 10¹⁸) 개의 UUID를 생성해야 충돌 확률이 50%에 이릅니다 — 어떤 단일 애플리케이션이 실제로 만들어낼 양보다 몇 자릿수는 더 큰 숫자입니다. 수학적으로 절대 불가능한 건 아니지만, UUID v4가 실질적으로 충돌 없는 것으로 취급되는 이유가 여기 있습니다.
자주 묻는 질문
생성된 UUID 두 개가 충돌할 수도 있나요?
이론적으로는 가능하지만, 실질적으로는 불가능합니다. v4 UUID는 122비트의 무작위 값을 가지며, 수조 개를 생성해도 충돌 확률은 무시할 수준으로 낮습니다 — 고유한 값으로 간주해도 안전합니다.
UUID 버전마다 어떤 차이가 있나요?
v1은 타임스탬프+MAC 주소 기반(정보가 노출됨), v4는 완전 무작위(가장 흔한 선택), v5는 이름을 해싱해서 만드는 결정적 방식, v7은 시간순 정렬이 되는 무작위 방식(데이터베이스 인덱스에 적합)입니다. 이 도구는 v4를 생성합니다.
이 UUID를 토큰으로 써도 충분히 안전한가요?
암호학적으로 안전한 난수 소스를 사용하므로 Math.random()보다 훨씬 낫습니다. 세션 토큰이라면 엔트로피가 더 큰 전용 토큰 생성기가 여전히 선호되지만, 식별자 용도로는 v4 UUID면 충분합니다.
UUID와 GUID는 같은 건가요?
네. GUID(전역 고유 식별자)는 같은 128비트 형식에 대한 마이크로소프트의 명칭입니다. 두 용어는 서로 바꿔 써도 됩니다.
생성된 UUID가 저장되거나 기록되나요?
아니요. 생성은 브라우저 안에서만 이루어집니다. 어떤 것도 전송, 저장, 기록되지 않습니다 — 화면에 보이는 UUID는 오직 그 화면에만 존재합니다.