UUID 생성기

🔢 계산/생성

UUID v4 형식의 고유 식별자를 즉석에서 생성합니다. 중복 가능성이 거의 없는 128비트 랜덤 값.

• UUID v4 (랜덤 UUID)를 생성합니다.

• 브라우저의 crypto.randomUUID() API를 사용합니다.

• 생성된 UUID는 전역적으로 고유합니다.

🔑 UUID 생성기란?

UUID(Universally Unique Identifier)는 전 세계적으로 고유한 128비트 식별자입니다. 이 도구는 UUID 버전 4(랜덤)를 생성하며, 충돌 확률이 천문학적으로 낮아 실질적으로 고유합니다.데이터베이스 기본키, API 토큰, 세션 ID, 파일명 등 중복이 허용되지 않는 곳에 사용합니다.Web Crypto API를 사용해 암호학적으로 안전한 난수를 기반으로 생성합니다.

💡 핵심 포인트

v4는 122비트 난수로 충돌 확률이 사실상 0이며, 가장 널리 쓰입니다.

📊 UUID 버전 비교

버전생성 방식특징
v1시간 + MAC 주소생성 시간 추적 가능, 보안 우려
v4 ✓랜덤 (이 도구)가장 널리 사용, 추적 불가
v5네임스페이스 + SHA-1동일 입력 시 동일 UUID
v7시간 + 랜덤정렬 가능, 최신 표준

💡 UUID 활용 팁

  • DB 기본키: 자동 증가 ID 대신 UUID로 분산 시스템 지원
  • 대문자/소문자: 스펙상 대소문자 구분 없음, 일관성 유지 권장
  • 하이픈 제거: 32자 연속 문자열이 필요할 때 사용
  • URL 안전: UUID는 URL에 안전하게 포함 가능

🔍 UUID 버전별 차이 자세히 보기

가장 자주 쓰이는 v1, v4, v7의 특성을 정리하면 선택 기준이 잡힙니다.

  • v1 (시간 + MAC): 생성 시간이 안에 들어가 있어 타임스탬프 추출이 가능합니다. 다만 기기 MAC 주소 일부가 노출돼 보안에 민감한 환경에서는 권장되지 않습니다.
  • v4 (랜덤): 122비트 난수 기반으로 가장 보편적입니다. 추적 불가능하고 구현이 단순해서 대부분의 언어와 라이브러리가 기본값으로 채택했습니다. 이 도구도 v4를 사용합니다.
  • v7 (시간 + 랜덤): 2024년 RFC 9562로 공식화된 최신 버전입니다. 앞부분에 밀리초 단위 유닉스 타임스탬프가 들어가 정렬 가능하고, 데이터베이스 인덱스 효율이 v4보다 좋습니다. 분산 시스템의 기본키로 점점 채택이 늘고 있습니다.
  • v5 (네임스페이스 해시): 같은 네임스페이스+이름 조합에서 항상 같은 UUID가 나옵니다. URL이나 DNS 같은 입력값에서 결정론적 ID가 필요할 때 씁니다.

🆚 UUID vs GUID vs ULID 비교

식별자길이정렬특징
UUID36자(하이픈 포함)v7만 정렬 가능RFC 표준, 가장 폭넓게 사용
GUID36자UUID와 동일Microsoft 생태계 용어, 기술적으로는 UUID
ULID26자(Crockford Base32)시간순 정렬 가능UUID v7 등장 전 인기, 짧고 URL 친화적

🛡️ 보안 고려사항

UUID는 "고유"하지만 "비밀스럽다"는 뜻은 아닙니다. 사용 위치에 따라 주의할 점이 다릅니다.

⚠️ 주의

UUID는 식별자이지 시크릿이 아닙니다. 인증 토큰으로 사용하지 마세요.

  • 비밀 토큰으로 부적합: 인증 토큰, 비밀번호 재설정 링크 등은 UUID 대신 충분한 엔트로피의 무작위 문자열(예: 32바이트 랜덤)을 사용하세요. UUID v4의 무작위 비트는 122비트라 충분해 보이지만, 의미상 "ID"이지 "시크릿"이 아닙니다.
  • 예측 가능성: v1은 타임스탬프와 MAC을 노출하므로 공개 API 응답에 그대로 쓰지 않는 편이 좋습니다. v4와 v7의 랜덤 부분은 예측 불가능합니다.
  • 열거 공격 방지: 자동 증가 ID 대신 UUID를 쓰면 /users/1, /users/2 같이 순차 추측이 불가능해 IDOR 같은 취약점에서 한 단계 보호막이 됩니다. 다만 이것만으로 권한 검증을 대체하면 안 됩니다.
  • 로그/URL 노출: UUID는 검색엔진과 로그에 그대로 남을 수 있으니, 민감한 리소스에 대한 접근 권한은 별도 검증해야 합니다.
  • 난수 출처: 이 도구는 브라우저의 crypto.randomUUID()를 사용해 OS 수준의 암호학적 난수 생성기를 활용합니다.

자주 묻는 질문

UUID가 중복될 가능성이 있나요?

UUID v4의 충돌 확률은 2^122분의 1로, 1초에 10억 개씩 85년간 생성해야 50% 확률입니다. 실질적으로 중복은 발생하지 않습니다.

GUID와 UUID의 차이는 뭔가요?

GUID(Globally Unique Identifier)는 Microsoft의 용어로, UUID와 동일한 개념입니다. 형식과 생성 방식이 같습니다.

UUID 형식은 어떻게 되나요?

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx 형식입니다. 4는 버전(v4)을 나타내고, y는 8, 9, a, b 중 하나입니다.

DB 기본키로 UUID를 쓰면 성능이 나빠지지 않나요?

v4처럼 무작위 UUID는 인덱스 페이지가 분산되어 쓰기 성능이 떨어질 수 있습니다. 대규모 테이블이 걱정된다면 시간순 정렬이 가능한 UUID v7이나 ULID를 검토해보세요. 인덱스 지역성이 자동 증가 ID에 가깝게 유지됩니다.

UUID를 인증 토큰으로 써도 되나요?

권장하지 않습니다. UUID v4의 122비트 난수는 무작위로 충분해 보이지만, "식별자"로 설계된 것이지 "비밀"로 설계된 것이 아닙니다. 세션 토큰이나 비밀번호 재설정 링크는 32바이트 이상의 별도 무작위 문자열을 만들어 쓰는 편이 안전합니다.

관련 도구

광고