도구 설명
UUID 생성기 정보
UUID v4 Generator는 request ID, 데이터베이스 key, 테스트 레코드, correlation ID에 쓸 수 있는 랜덤 128비트 식별자를 만듭니다.
여러 개 생성, 대문자 출력, 하이픈 제거를 지원하며 시간순 정렬이 필요한 경우 UUID v7도 제공합니다.
UUID v4 Generator 사용 방법
- 랜덤 식별자는 UUID v4를 선택하고, 시간순 정렬이 필요하면 UUID v7을 선택합니다.
- 테스트 데이터, 시드 데이터, 수동 테스트용 배치가 필요하면 생성 전에 개수를 설정합니다.
- 레거시 시스템이 요구할 때만 대문자를 사용하고 일반적으로는 소문자를 씁니다.
- 대상 필드나 프로토콜이 32자 compact 형식을 요구할 때만 하이픈을 제거합니다.
사용 사례
- API 요청에 쓸 correlation ID를 만들어 여러 서비스 로그를 연결합니다.
- 데이터베이스 sequence 없이 안정적인 테스트 레코드 ID를 만듭니다.
- mock JSON, OpenAPI 예제, 프런트엔드 테스트 데이터용 placeholder ID를 준비합니다.
- 이벤트 행이나 감사 레코드를 생성 시간순에 가깝게 정렬하고 싶을 때 UUID v7을 씁니다.
UUID 형식과 실무 팁
표준 UUID는 하이픈 포함 36자이며 보통 8-4-4-4-12 16진수 그룹으로 표시됩니다. UUID v4는 랜덤이고 UUID v7은 timestamp와 랜덤 바이트를 결합합니다.
- UUID v4: 대부분의 application ID와 request ID에 적합한 랜덤 식별자.
- UUID v7: 시간 순서가 필요한 DB index, log, event에 적합합니다.
- 하이픈 없는 형식: 같은 128비트 값을 구분자 없이 표시합니다.
- 대소문자: UUID는 16진수라 일반 비교에서는 같은 값입니다.
UUID 생성기 자주 묻는 질문
- UUID v4는 정말 유일한가요?
- 확률적으로 유일합니다. 안전한 난수원을 쓰면 일반 application ID에서 충돌 가능성은 매우 낮습니다.
- 언제 UUID v7을 써야 하나요?
- ID를 생성 시간에 가깝게 정렬하고 싶을 때, 특히 log, event, DB index에 적합합니다.
- UUID는 대문자와 소문자 중 무엇을 써야 하나요?
- 웹과 JSON에서는 소문자가 일반적입니다. 대문자는 요구하는 시스템이나 문서가 있을 때만 쓰면 됩니다.
- 하이픈을 제거해도 되나요?
- 가능하며 값은 동일합니다. 다만 저장 필드나 API 계약이 요구하지 않으면 표준 하이픈 형식을 유지하세요.
- 생성된 UUID가 서버로 전송되나요?
- 아니요. 생성과 포맷은 브라우저에서 로컬로 처리되며 wetool.site로 업로드되지 않습니다.
UUID와 auto-increment ID
auto-increment ID는 짧고 읽기 쉽지만 중앙 DB sequence가 필요합니다. UUID는 길지만 클라이언트, queue, 분산 서비스에서 먼저 레코드를 만들기 좋습니다.
UUID v4가 적합한 경우
UUID v4는 오프라인 생성, 시스템 간 병합, 순번을 노출하지 않는 공개 ID에 좋지만 모든 ID의 기본 답은 아닙니다.
- 클라이언트 측 임시 ID, 분산 작업 ID, 테스트 데이터, 공개 공유 링크에는 랜덤 UUID가 적합합니다.
- 데이터베이스 기본 키에서 인덱스 지역성이 중요하면 UUID v7, ULID, 데이터베이스 자동 증가 ID를 평가합니다.
- UUID를 권한 부여 토큰으로 취급하지 마세요. 추측하기 어렵다는 것과 접근 제어은 다릅니다.
충돌 확률과 난수 소스
UUID v4는 고품질 난수에 의존합니다. 브라우저 생성기는 Math.random()이 아니라 Web Crypto 수준의 난수를 사용해야 합니다.
- 표준 v4 UUID는 약 122비트의 무작위성을 가지므로 일반적인 사용 규모에서 충돌 확률은 매우 낮습니다.
- 일괄 생성 후 중복 검사는 복사/붙여넣기 오류 또는 스크립트 재사용 오류를 잡을 수 있습니다.
- UUID v4에는 시간 정보가 없습니다. 시간 기준 정렬이나 추적이 중요하면 created_at을 따로 저장하거나 시간순 ID를 사용합니다.