UUID 생성기
v4, 브라우저 난수로 생성. 전송도 저장도 하지 않습니다.
여기서 만들고 어디에도 남기지 않습니다. 새로고침하면 사라집니다.
사용 방법
- 필요한 개수를 정하고 "생성"을 누르세요.
- "복사"는 한 개, "전체 복사"는 한 줄에 하나씩 전부 가져갑니다.
- 하이픈을 끄면 32자 형태가 되고, 시스템이 대문자를 요구하면 대문자로 바꿀 수 있습니다.
예시
행이 생기기 전에 만드는 기본키
v4는 클라이언트에서 만들 수 있다는 게 핵심입니다. DB에 닿기 전에 레코드가 자기 id를 들고 있을 수 있고, 여러 클라이언트가 동시에 만들어도 겹치지 않습니다.
로그 추적용 id
요청 하나에 id 하나를 꿰면 로그를 검색할 수 있습니다. 하이픈 없는 형태가 grep하기도, URL에 넣기도 편합니다.
테스트 데이터
0f8fad5b-d9cb-469f-a165-70867728950e 같은 값이 픽스처에 붙는 값입니다. 스무 개를 한 번에 만들어 파일에 넣어 두면 됩니다.
비밀번호가 아닙니다
UUID는 고유할 뿐 비밀이 아닙니다. 로그에 찍히고 공개되는 경우도 많습니다. 숨겨야 하는 값이라면 비밀번호 생성기를 쓰세요. 비밀번호 생성기
자주 묻는 질문
난수는 어디서 가져오나요?
브라우저 암호화 난수 crypto.getRandomValues입니다. Math.random은 쓰지 않습니다. crypto.randomUUID 대신 getRandomValues를 쓰는 이유는 randomUUID가 보안 연결에서만 동작하고 예전 브라우저엔 없기 때문이고, 이렇게 해야 버전·변형 비트를 정해진 입력으로 테스트할 수 있습니다.
서버로 전송되나요?
아니요. 페이지 안에서 만들고 업로드하거나 기록하거나 저장하지 않습니다.
"버전 4"가 무슨 뜻인가요?
128비트 중 122비트가 난수이고, 나머지 6비트가 버전과 변형을 나타냅니다. 그래서 여기서 나온 값은 세 번째 묶음이 항상 4로 시작하고, 네 번째 묶음이 8·9·a·b 중 하나로 시작합니다.
두 개가 같을 수도 있나요?
현실적으로는 없습니다. 122비트 난수에서 초당 10억 개를 85년쯤 만들면 그 전체에서 한 번 겹칠 확률이 반반 정도가 됩니다. 거기 한참 못 미치는 양에서는 사실상 0입니다.
하이픈은 왜 빼나요?
UUID를 32자 16진수나 16바이트로 저장하는 시스템이 있고, URL에 넣을 때 더 깔끔하기도 합니다. 값은 같습니다. 다시 넣어도 같은 id입니다.
대문자로 쓰면 다른 값인가요?
아니요. 16진수라 대소문자 구분이 없습니다. RFC 4122의 표준 표기는 소문자이고 대부분의 시스템이 소문자로 비교합니다.