본문으로 바로가기

UUID 생성기 (v4 · v7)베타

UUID 버전 4와 버전 7을 원하는 개수만큼 만들고, 붙여넣은 UUID의 버전 · 변형 · 생성 시각까지 분석하세요. 계산은 브라우저 안에서만 이뤄집니다.

UUID 생성

버전
1 ~ 1000개까지 한 번에 만들 수 있습니다.

생성 결과

UUID 분석기

사용 방법

버전을 고르고 개수(1 ~ 1000개)를 정한 뒤 “생성하기”를 누르면 브라우저 안에서 UUID가 만들어집니다. 대문자, 하이픈 제거, 중괄호 옵션을 켜면 결과 형식이 바뀌고, 전체 복사나 .txt 다운로드로 필요한 곳에 붙여넣을 수 있습니다. 아래 UUID 분석기에 UUID 하나를 붙여넣으면 버전, 변형(variant), 그리고 버전 7이라면 담겨 있는 생성 시각까지 확인할 수 있습니다.

버전 4와 버전 7의 차이

버전 4는 122비트 전부를 암호학적으로 안전한 난수로 채워서 값만 보고는 아무것도 추측할 수 없습니다. 대신 정렬 순서가 없어서 데이터베이스 기본 키로 쓰면 새 값이 인덱스 여기저기에 무작위로 끼어들어(지역성이 없음) B-tree 페이지 분할이 잦아지고 캐시 적중률이 떨어집니다. 버전 7은 앞 48비트에 밀리초 단위 생성 시각을 그대로 담아, 값 자체가 생성 순서대로 정렬됩니다. 그래서 기본 키로 쓰면 새 값이 항상 인덱스 끝에 쌓여 페이지 분할이 줄고 캐시 적중률도 높아집니다. 두 버전 모두 RFC 9562 표준을 따르고, 무작위 부분은 이 도구에서 브라우저의 암호학적 난수 함수(crypto.getRandomValues)로 만듭니다.

같은 밀리초 안에서도 정렬되는 이유

버전 7은 타임스탬프 뒤에 12비트 여유 공간(rand_a)이 있는데, 이 도구는 같은 밀리초 안에서 여러 개를 만들 때 이 값을 하나씩 늘려 씁니다. 그 결과 한 번에 여러 개를 생성해도 문자열을 그대로 정렬한 순서가 실제로 만든 순서와 같습니다.

충돌 가능성

버전 4는 122비트의 무작위 공간을 쓰기 때문에 초당 10억 개씩 만들어도 우연히 같은 값이 나올 확률은 사실상 0에 가깝습니다(생일 문제로 계산해도 약 50%의 충돌 확률에 이르려면 10^18개 넘게 만들어야 합니다). 버전 7은 무작위 부분이 74비트로 더 작지만, 같은 밀리초 안에서는 카운터로 값을 구분하기 때문에 이 도구로 만드는 동안에는 겹치지 않습니다.

개인정보

UUID는 이 브라우저 안에서만 만들어지고 서버로 전송되지 않습니다. 다만 버전 7 UUID는 생성 시각을 그대로 담고 있으므로, 시각이 노출되면 안 되는 값(예: 익명으로 남아야 하는 식별자)에는 버전 4를 쓰는 것이 안전합니다.

참고 자료

자주 묻는 질문

UUID v4와 v7 중 어떤 것을 써야 하나요?

데이터베이스 기본 키처럼 정렬 순서와 삽입 성능이 중요하면 v7을, 값만 보고 생성 시각을 추측할 수 없어야 하면 v4를 쓰세요. 두 버전 모두 실제로 겹칠 확률은 무시할 수 있는 수준입니다.

생성된 UUID가 우연히 겹칠 수 있나요?

이론적으로는 가능하지만 확률이 극히 낮습니다. v4는 122비트의 무작위 공간을 쓰고, 이 도구는 v7을 만들 때도 같은 밀리초 안에서 카운터를 하나씩 늘려 값이 겹치지 않게 합니다.

v7의 타임스탬프를 보면 정확히 언제 만들었는지 알 수 있나요?

네. 앞 48비트에 1970년 1월 1일부터 지난 밀리초 수가 그대로 들어 있어서, 분석기에 붙여넣으면 생성된 날짜와 시각이 그대로 나옵니다. 그래서 생성 시각을 숨겨야 하는 값에는 v7 대신 v4를 권합니다.

하이픈 제거나 중괄호 옵션은 언제 쓰나요?

하이픈 없는 32자리 형식은 파일명이나 일부 데이터베이스 컬럼에 쓰기 편하고, 중괄호로 감싼 형식은 Windows 레지스트리나 COM 컴포넌트의 GUID 표기에 주로 쓰입니다.