UUID 생성
브라우저에서 실행되는 온라인 UUID 생성기. 버전을 선택하고 (v4 랜덤이 기본; 정렬 가능한 ID가 필요하면 v7; 벽시계 시간이 내장되어야 하면 v1; sentinel용 Nil), 개수를 선택하고, 형식을 골라 “생성”을 누르세요. 결과는 일반 텍스트 — 한 줄에 하나의 UUID — 개별 복사, 일괄 복사 또는 .txt 다운로드. 추가로 UUID를 받아 버전, 변형, (v1/v7의 경우) 내장된 타임스탬프를 로컬 시간으로 디코딩하는 검사기도 있습니다.
사용 방법
모르면 v4 — 99% 케이스 커버.
몇 개를 어떤 모양으로.
한 줄 복사, 모두 복사, 또는 .txt로 다운로드.
기존 UUID 붙여넣기 — 버전, 변형, 내장 시간 확인.
랜덤 또는 시간 정렬된 UUID를 대량 생성하고 기존 UUID를 검사
UUID 검사
할 수 있는 것
일반적인 용도
- 데이터베이스 행의 기본 키 생성 (인덱스 삽입엔 v7이 최고).
- 세션 토큰 또는 추적용 correlation ID 생성.
- 생성된 아티팩트용 고유 파일명.
- 로그의 UUID 검사 — 언제 발급되었는지 (v1/v7).
- 단위 테스트용 테스트 픽스처 생성.
왜 이것을
대부분의 UUID 생성기는 v4만 주고 끝납니다. 우리는 v7 (데이터베이스 키에 대한 현대적 권장 — 시간순 정렬로 B-tree 인덱스 친화)과 v1 (MAC/타임스탬프가 내장된 오래된 시스템에서 여전히 사용)을 노출하고, 어떤 UUID든 검사해 어떤 종류이고 언제 만들어졌는지 알 수 있게 합니다. 가입도 할당량도 없으며, UUID 자체는 브라우저에서 생성됩니다.
자주 묻는 질문
어떤 버전을 써야 하나요?
일반적인 랜덤 용도면 v4 — 안전한 기본값. 인덱스된 데이터베이스 테이블의 기본 키로 UUID를 쓴다면 v7 — 시간순 정렬되어 v4가 B-tree 인덱스에서 겪는 랜덤 삽입 성능 페널티가 없습니다. v1은 대부분 레거시입니다 (생성 머신의 MAC 주소를 누출). Nil은 “아직 UUID 없음” sentinel용입니다.
window.crypto가 충분히 랜덤한가요?
네. window.crypto.getRandomValues는 Web Crypto 사양이 명령하는 암호학적으로 안전한 RNG입니다. Node가 crypto.randomUUID에 쓰는 것과 동일한 프리미티브입니다.
v7이 시간 정보를 누출하나요?
네 — 그게 핵심입니다. 처음 48비트가 Unix 밀리초입니다. 생성 시간을 노출하고 싶지 않다면 v4를 쓰세요.
왜 v1을 레거시로 표시하나요?
역사적으로 v1은 생성 머신의 MAC 주소를 내장했는데, 이는 작지만 실제 프라이버시 누출입니다. 현대 UUIDv1 구현은 랜덤 48비트 노드 ID를 대신 사용합니다 (우리도 그렇게 합니다) — 하지만 프로젝트가 이유가 있어서 v1을 선택했다면 역사적 우려는 알아두는 게 좋습니다.
v4와 v7 중 어느 판을 써야 하나요?
식별자가 데이터베이스 키가 될 것이 아니라면 v4, 그렇다면 v7입니다. 둘 다 사실상 추측할 수 없으며, 차이는 순서에 있습니다. v4는 완전히 무작위라 연달아 넣은 값들이 색인의 서로 무관한 자리에 내려앉고 색인이 조각납니다. 큰 테이블에서 쓰기가 느려지는 형태로 드러나는, 잘 알려진 대가입니다. v7은 상위 비트에 유닉스 밀리초 타임스탬프를 두고 그 아래에 무작위 데이터를 두므로, 차례로 만들어진 식별자가 차례로 정렬되고 색인은 끝에서 자랍니다. v1도 시간을 담지만 기기 식별자를 흘리고 정렬이 어색합니다. 뒤쪽의 무언가가 그것을 기대할 때만 쓰시고, “값 없음”을 명시할 자리표시자가 필요하면 Nil을 쓰세요.
이 UUID들이 고유한가요?
122비트 엔트로피로 v4 충돌 확률은 10억 개 후에도 ~1/2^61 — 사실상 0. v7은 마지막 74비트에 동일한 랜덤성을 상속하고 시간 접두어를 더합니다.
가능합니다! 아이디어를 간단히 보내주세요. 자세히 논의하고 싶으시면 이메일을 남겨주시면 연락드리겠습니다. 익명으로도 가능합니다.