UUID 생성기
UUID v4를 최대 100개까지 생성해요. 하이픈 제거 옵션 지원.
이럴 때 쓰세요
이렇게 사용하세요
결과가 예상과 다를 때
결과가 예상과 달라요
단위와 기준을 먼저 확인해 주세요. 값을 바꾸면 결과가 바로 갱신돼요.
처음 값으로 되돌리고 싶어요
초기화를 누르면 처음 상태로 돌아가요.
자주 하는 실수
- 하이픈을 지우면 32자가 됩니다. 표준 표기는 8-4-4-4-12로 36자이고 하이픈 4개를 빼면 32자입니다. 데이터베이스 컬럼 길이나 검증 정규식은 둘 중 하나로 미리 정해 두세요.
- v1과 v4를 섞어 쓰지 마세요. v1은 MAC 주소와 시각이 섞여 있어 어디서 언제 발급됐는지 추적할 수 있습니다. URL이나 파일명에 노출되면 그대로 수집됩니다. 익명 식별자에는 v4만 쓰세요.
- 정렬이 필요한 테이블에 v4를 그대로 넣으면 인덱스가 흩어집니다. 무작위 값이라 B-트리 페이지가 앞에서부터 채워지지 않습니다. RFC 9562가 추가한 v7은 생성 시각이 앞에 붙어 순서가 유지됩니다.
- Math.random으로 만든 값은 보안용 식별자로 쓰지 마세요. 브라우저에서 난수를 뽑을 때 쓰는 기준은 암호학적으로 안전한 난수 생성기입니다. 보안 판단이 걸린 값은 반드시 그 경로를 거치세요.
계산 근거
RFC 4122가 정의하고 RFC 9562에서 정리된 UUID는 128비트입니다. v4는 그중 6비트를 버전과 변형 표시로 고정하고 나머지 122비트를 무작위로 채웁니다. crypto.randomUUID()는 이 규격을 따라 8-4-4-4-12 표기로 반환합니다.
실제로 계산해 보면
v4 식별자는 얼마나 자주 겹칠까요?
무작위가 122비트라 사실상 겹치지 않습니다. 확률이 50%에 가까워지려면 약 2.3×10^18개를 만들어야 하고, 실제로 10억 개를 뽑아도 기대 충돌 수는 10^-19 수준입니다.
하이픈을 뺀 문자열을 써도 되나요?
가능합니다. 저장 형식은 아무 데나 넣어도 되지만 길이가 달라집니다. 36칸짜리 컬럼에 32자만 넣으면 뒤가 빈 채로 저장됩니다. 처음부터 32자 형식으로 통일하거나, 저장 시 다시 하이픈을 넣어 주세요.
정렬까지 만족시키려면 어떤 버전을 쓰나요?
v7입니다. 앞부분에 밀리초 단위 생성 시각이 들어가 같은 정수 키처럼 정렬됩니다. 최근 표준에서 정식 번호로 추가됐고 브라우저 지원도 늘고 있습니다. 다만 아직 지원이 적은 환경이면 서버 라이브러리로 발급해야 합니다.
더 궁금한 것
UUID를 기본키로 쓰면 성능이 좋지 않나요?
무작위 v4는 저장 위치가 흩어져 페이지 분할이 반복됩니다. 대량 삽입이 많은 테이블이라면 순서 증가 정수형이나 v7이 낫습니다. UUID를 고르는 이유는 분산 발급, 외부 노출 안전성, 환경 병합 시 충돌 회피입니다.
중복 키 예외까지 대비해야 하나요?
v4는 충돌 가능성이 사실상 없으므로 재시도 로직은 대개 불필요합니다. 방어해야 하는 건 업무 식별자, 즉 회원 번호나 주문 번호 같은 값입니다. 데이터베이스에 유일 제약을 걸고 중복 시 재생성하도록 두세요.
로그나 URL에 노출해도 문제가 없나요?
v4는 원문을 역산할 수 없어 개인정보 문제는 없습니다. 다만 생성 시각까지 추적해야 하는 요구가 있으면 v7을 쓰세요. v7은 앞부분에 시각이 들어 있어 추적이 가능하므로 외부에 보여선 안 되는 내부 식별자로 쓰는 편이 안전합니다.
알아둘 경계값
- 개수 입력에 100을 넘겨도 100개에서 조용히 잘려요. 대량 발급이면 100개씩 나눠 생성하고 이어 붙이세요.
- 0이나 빈 값, 문자를 넣으면 1개로 보정돼 입력 실수를 알아채기 어려워요. 생성된 줄 수를 세어 확인하세요.
- 한 번에 만든 목록은 화면에만 있어 새로고침하면 사라지고 복구되지 않아요. 발급 기록은 즉시 파일로 저장하세요.
- 이 출력은 소문자로만 나와 대문자 체계와 섞어 비교하면 대소문자 구분 때문에 불일치로 나와요. 비교 전 소문자로 통일하세요.
- 100개를 하이픈 포함으로 받으면 3,699자라 한 번에 붙여넣으면 입력란 글자 제한에 걸릴 수 있어요. 나눠 붙여넣거나 파일로 옮기세요.
- 하이픈 포함과 제거 옵션을 중간에 바꾸면 이전 목록과 섞여 형식이 들쭉날쭉해져요. 한 번 정한 형식으로 끝까지 생성하세요.
결과를 믿기 전 확인 목록
- 100 초과 입력이 100개로 잘리는지 줄 수를 세어 확인하세요.
- 0이나 빈 값 입력이 1개로 보정되는지 확인하세요.
- 하이픈 포함 출력이 8-4-4-4-12 형태인지 대시 위치로 확인하세요.
- 세 번째 그룹 첫 글자가 4로 시작하는지 확인하세요.
- 하이픈 제거 출력이 정확히 32자인지 세어 보세요.
- 복사 결과가 화면 목록과 같은 줄 수인지 대조하세요.
- 중요 값은 생성 즉시 파일에 저장하고 화면에만 두지 마세요.
- 구형 환경에서는 보안이 걸린 용도로 쓰지 마세요.
- 붙여넣은 목록의 중복 여부를 정렬 후 이웃 비교로 확인하세요.
자주 묻는 질문
중복 가능성은?
v4는 무작위 122비트라 실질적으로 중복되지 않습니다.
중복될 가능성은?
UUID v4는 무작위 122비트라 사실상 중복되지 않아요. 1조 개를 만들어도 충돌 확률이 극히 낮어요.