CalcTimer

UUID 생성기

개발에 자주 쓰이는 UUID v4 형식의 고유 식별자를 생성합니다.

?

UUID 생성기 사용법

  1. UUID 생성 버튼을 누르면 하이픈 포함 36자짜리 UUID v4 문자열이 표시됩니다.
  2. 결과 복사를 누르면 방금 만든 값이 클립보드에 담깁니다.
  3. 여러 개가 필요하면 버튼을 계속 눌러 아래 이력에 쌓아 두고 씁니다.
  4. 이력 지우기를 누르면 목록과 저장된 값이 함께 지워집니다.

생성되는 36자의 구조

이 도구는 8-4-4-4-12 형태의 자리를 16진수로 채웁니다. 세 번째 묶음의 첫 글자는 버전을 뜻하는 4로, 네 번째 묶음의 첫 글자는 8, 9, a, b 중 하나로 고정되고 나머지 자리가 무작위로 채워집니다.

묶음길이내용
1번째8자무작위 16진수
2번째4자무작위 16진수
3번째4자버전 표시 4 + 무작위 3자
4번째4자변형 표시 8·9·a·b 중 하나 + 무작위 3자
5번째12자무작위 16진수

하이픈을 뺀 32자는 128비트이고 그중 무작위인 부분은 122비트입니다.

이 값을 써도 되는 곳과 피할 곳

값은 브라우저의 Math.random 함수로 만듭니다. 목록 구분용 키, 테스트 데이터, 로그 추적 ID처럼 값이 노출돼도 문제가 없는 용도에는 그대로 쓸 수 있습니다. 다만 세션 토큰이나 남이 알면 안 되는 주소처럼 추측을 막아야 하는 자리에는 crypto.randomUUID 같은 암호학적 난수를 쓰는 편이 안전합니다.

자주 묻는 질문

UUID가 뭔가요?

전 세계에서 겹치지 않도록 설계된 고유 식별자 형식입니다.

데이터베이스에 바로 써도 되나요?

됩니다. 36자 문자열이라 VARCHAR(36) 칼럼에 그대로 들어가고, PostgreSQL의 uuid 타입처럼 전용 타입이 있는 곳에도 넣을 수 있습니다. 다만 값이 무작위라 순서대로 늘어나는 기본 키가 필요한 설계에는 맞지 않을 수 있습니다.

UUID v4와 v1은 뭐가 다른가요?

v4는 값 대부분을 무작위로 채우고 v1은 생성 시각과 기기 주소를 섞어 만듭니다. 이 도구는 v4만 만들기 때문에 값 안에 시각이나 기기 정보가 들어가지 않습니다.

대문자로 바꿔 써도 되나요?

됩니다. UUID는 비교할 때 대소문자를 구분하지 않습니다. 이 도구는 소문자로 내보내므로 필요하면 붙여넣은 뒤 바꾸면 됩니다.

같은 값이 두 번 나올 수 있나요?

실제로는 거의 없습니다. 무작위 부분이 122비트라 우연히 겹칠 확률이 극히 낮습니다. 다만 Math.random 기반이라 이론적으로 보장된 값은 아닙니다.