UUID란
UUID(범용 고유 식별자, universally unique identifier)는 128비트 식별자로, 705e41a3-d432-4aa9-9ea4-4693bf481eaa처럼 16진수 32자리를 다섯 묶음으로 나누어 씁니다. 형식은 RFC 9562에 정의되어 있습니다. UUID 생성기로 만든 값은 데이터베이스 행, 파일, API 요청, 메시지의 ID로 쓰입니다. 중앙 서버에 묻지 않고도 누구나 만들 수 있고, 두 값이 겹칠 확률이 무시해도 될 만큼 작기 때문입니다.
모든 UUID에는 의미가 있는 자리가 두 곳 있습니다. 세 번째 묶음의 첫 자리는 버전이라서 버전 4 UUID는 항상 4, 버전 7 UUID는 7이 들어갑니다. 네 번째 묶음의 첫 자리는 변형(variant)이며, 표준 UUID라면 항상 8, 9, a, b 중 하나입니다.
UUID 생성기 사용 방법
- 버전에서 버전 4 (무작위) 또는 버전 7 (시간순)을 고릅니다.
- 개수를 정합니다. 한 번에 최대 1,000개까지 만들 수 있으며 기본값은 5개입니다.
- 옵션에서 형식을 고릅니다.
- 대문자: A부터 F를 대문자로 씁니다.
- 하이픈: 기본으로 켜져 있습니다. 끄면 32자 문자열이 됩니다.
- {중괄호}: 각 UUID를 중괄호로 감쌉니다. Windows와 레지스트리에서 쓰는 형식입니다.
- 결과 구분 기호를 고릅니다. 기본값은 줄바꿈입니다.
- UUID 생성을 누른 다음 복사를 누릅니다.
최근 열 번의 결과는 페이지를 떠날 때까지 최근 결과에 남습니다. 더 일찍 지우려면 지우기를 누르세요.
예시
모두 이 페이지의 코드로 만든 값입니다.
| 종류 | 결과 |
|---|---|
| 버전 4 | e38501ee-d339-416b-844d-8f8097d4e108 |
| 버전 4 | 6da6c7c6-45bd-4fbe-9157-75b93f5d4eca |
| 버전 4, 대문자 | 21EDC604-4719-4C22-8C19-4D38BE092E26 |
| 같은 UUID, 하이픈 없이 | 21edc60447194c228c194d38be092e26 |
| 같은 UUID, 대문자와 {중괄호} | {21EDC604-4719-4C22-8C19-4D38BE092E26} |
| 버전 7, 2026년 10월 4일 09:30:00 UTC에 생성 | 01a1063f-b1c0-70fc-824b-fa11b7884e75 |
| 버전 7, 같은 밀리초 | 01a1063f-b1c0-70fd-bed4-76f914df62b9 |
| 버전 7, 1밀리초 뒤 | 01a1063f-b1c1-70e3-a5b6-6a2269239f64 |
버전 7 ID들의 앞 12자리가 같다는 점을 보세요. 이 자리는 타임스탬프로, 16진수 01a1063fb1c0은 1970년 1월 1일부터 1791106200000밀리초가 지난 시점입니다. 정확히 2026년 10월 4일 09:30 UTC, 한국 시간으로는 같은 날 18:30입니다.
작동 원리
버전 4. 도구는 브라우저에 내장된 UUID 함수인 crypto.randomUUID()를 호출합니다. 이 함수는 암호학적으로 안전한 난수원에서 122비트를 채우고 버전 비트와 변형 비트를 설정합니다.
버전 7. 처음 48비트는 밀리초 단위의 현재 유닉스 시간입니다. 그다음에 버전 자리와 12비트가 오고, 이어서 변형 비트와 무작위 62비트가 옵니다. 같은 밀리초 안에 ID를 여러 개 만들면 버전 뒤의 12비트가 카운터 역할을 해서 하나씩 늘어납니다. 그래서 한 번에 만든 목록이 엄격한 순서를 유지하며, 텍스트로 정렬하면 만든 순서 그대로 나옵니다. 무작위 비트는 crypto.getRandomValues에서 가져옵니다.
어떤 버전을 써야 할까요?
- 버전 4는 고유한 ID만 필요할 때 무난한 기본 선택입니다. 언제 어디서 만들었는지 아무것도 드러내지 않습니다.
- 버전 7은 데이터베이스 기본 키(primary key)로 쓰기 좋습니다. 새 행이 인덱스의 무작위 위치가 아니라 끝에 쌓이므로 인덱스가 덜 흩어지고 삽입이 빠른 편입니다. 대신 ID를 보는 사람은 누구나 생성 시각을 알 수 있습니다.
팁과 한계
- 전용 열 타입에 저장하세요. PostgreSQL의
uuid처럼 데이터베이스가 UUID 타입을 지원한다면 그것을 쓰세요. 36자 텍스트 대신 16바이트만 차지합니다. - 소문자가 표준 형식입니다. UUID는 대소문자를 구분하지 않지만 RFC 9562는 소문자로 출력하라고 정하고 있습니다. 대문자는 시스템이 요구할 때만 쓰세요.
- 비밀 값이 아닙니다. UUID를 비밀번호나 비밀번호 재설정 링크에 쓰지 마세요. 추측하기 어려워야 하는 값에는 비밀번호 생성기를 쓰세요.
- ID가 아니라 지문이 필요하다면 MD5나 SHA-256 같은 해시가 내용을 식별해 줍니다. MD5 해시 생성기를 사용해 보세요.
- 테스트 데이터. ID와 함께 쓸 가짜 네트워크 주소가 필요하면 랜덤 IP 주소 생성기를 쓰세요.
다른 방법으로 UUID 만들기
명령줄. macOS와 대부분의 Linux에서는 uuidgen이 새 UUID를 출력합니다. PowerShell에서는 New-Guid 또는 [guid]::NewGuid()를 씁니다.
JavaScript. crypto.randomUUID()는 최신 브라우저와 Node.js에서 작동합니다.
Python. import uuid를 한 뒤 uuid.uuid4()를 호출합니다. Python 3.14에는 uuid.uuid7()도 추가되었습니다.
데이터베이스. PostgreSQL에는 버전 4용 gen_random_uuid()가 있고, 버전 18부터 uuidv7()이 추가되었습니다. SQL Server에는 NEWID()가 있습니다.
Excel. 기본 제공 UUID 함수가 없습니다. 여기서 목록을 만들어 복사한 뒤 열에 붙여넣으세요.