UUID 생성기
개발에 자주 쓰이는 UUID v4 형식의 고유 식별자를 생성합니다.
UUID 생성기 사용법
- UUID 생성 버튼을 누르면 하이픈 포함 36자짜리 UUID v4 문자열이 표시됩니다.
- 결과 복사를 누르면 방금 만든 값이 클립보드에 담깁니다.
- 여러 개가 필요하면 버튼을 계속 눌러 아래 이력에 쌓아 두고 씁니다.
- 이력 지우기를 누르면 목록과 저장된 값이 함께 지워집니다.
생성되는 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 기반이라 이론적으로 보장된 값은 아닙니다.