UUID란? UUID 생성기 사용법과 v4 vs v7 차이 총정리 2026
UUID란 무엇인지, v1/v4/v7의 차이, 언제 어떤 버전을 쓰는지, 데이터베이스·API·분산 시스템에서의 실전 활용법까지.
UUID(범용 고유 식별자)는 현대 분산 시스템의 핵심입니다. 사용자 계정 생성, 결제 처리, 이벤트 로깅 — 이 모든 곳에 UUID가 사용됩니다. 2026년 개발자가 알아야 할 UUID의 모든 것을 정리했습니다.
UUID란?
UUID는 128비트 길이의 고유 식별자로, 시간과 공간을 초월하여 유일합니다. 32개의 16진수 문자를 하이픈으로 구분한 형태(550e8400-e29b-41d4-a716-446655440000)로 표현됩니다. 핵심은 중앙 서버 없이도 어떤 시스템에서든 독립적으로 생성할 수 있으면서 사실상 중복이 발생하지 않는다는 것입니다.
- 128비트 = 2^128개의 가능한 값 (340간 개)
- 형식: 8-4-4-4-12 자리 16진수
- 중앙 관리 기관 없이 생성 가능
- RFC 4122 표준 (v7은 RFC 9562)
- GUID(Microsoft 용어)와 동일
지금 이 도구를 사용해 보세요:
UUID 생성기 사용하기 →UUID 버전별 차이
모든 UUID가 같은 방식으로 만들어지는 것은 아닙니다. 각 버전마다 고유 값을 생성하는 전략이 다르며, 장단점이 있습니다.
UUID v1 — 타임스탬프 + MAC 주소
v1은 타임스탬프와 기기의 MAC 주소를 결합합니다. 유일성은 보장되지만 생성 시점과 장소 정보가 노출되어 프라이버시 우려가 있습니다.
- 장점: 시간순 정렬 가능, 기기별 유일성 보장
- 단점: 타임스탬프와 MAC 주소 노출, 프라이버시 리스크
- 사용 시기: 프라이버시가 중요하지 않은 내부 시스템
UUID v4 — 랜덤
v4는 가장 널리 사용되는 버전입니다. 122비트의 랜덤 데이터를 사용합니다(6비트는 버전/변형 표시용). 단순하고, 대부분의 라이브러리에서 지원하며, 생성 시간이나 출처 정보가 노출되지 않습니다.
- 장점: 단순, 정보 누출 없음, 범용 지원
- 단점: 시간순 정렬 불가 (B-tree 인덱스 성능 저하), 완전 랜덤
- 사용 시기: 범용 목적, 빠르게 고유 ID가 필요할 때
- 충돌 확률: 임의의 두 UUID가 같을 확률 = 1/2.71×10^18
UUID v7 — 시간순 정렬 랜덤 (권장)
v7은 가장 최신 표준입니다(RFC 9562, 2024). 처음 48비트에 Unix 타임스탬프를 넣고, 나머지는 랜덤 데이터입니다. 덕분에 v7 UUID는 생성 시간순으로 자연 정렬되어 데이터베이스 인덱스 성능이 크게 향상됩니다.
- 장점: 시간순 정렬, DB 인덱스 성능 우수, 정보 누출 없음
- 단점: 새 표준이라 모든 라이브러리에서 아직 미지원
- 사용 시기: DB 기본키, 이벤트 ID, 정렬이 필요한 모든 곳
- 권장: 2026년 신규 프로젝트에서는 v7이 최선의 선택
UUID vs Auto Increment ID
- Auto Increment: 순차적, 작은 크기(4~8바이트), 하지만 레코드 수와 생성 순서 노출
- UUID: 16바이트, 비순차(v4) 또는 시간순(v7), 데이터 정보 노출 없음
- UUID 장점: 분산 시스템에서 조율 불필요, URL에 안전하게 노출 가능
- Auto Increment 장점: 작은 저장 공간, 빠른 조인, 읽기 쉬움
- 하이브리드 접근: 내부는 Auto Increment, 외부 API에는 UUID 사용
실무 활용 사례
- 데이터베이스 기본키: v7으로 정렬된 삽입, v4로 랜덤 접근
- API 요청 ID: 마이크로서비스 간 요청 추적
- 세션 토큰: 고유하고 예측 불가능한 세션 식별자
- 파일 이름: 분산 파일 저장소에서 충돌 방지
- 멱등성 키: API 작업이 정확히 한 번만 실행되도록 보장
- 이벤트 소싱: 이벤트 기반 아키텍처에서 고유 이벤트 식별
지금 이 도구를 사용해 보세요:
UUID 생성하기 →자주 묻는 질문
UUID가 충돌할 수 있나요?
이론적으로는 가능하지만 실질적으로 불가능합니다. UUID v4의 경우 2.71×10^18개를 생성해야 50% 확률로 충돌이 발생합니다. 대부분의 시스템은 영원히 충돌을 경험하지 않습니다.
UUID를 토큰으로 사용해도 안전한가요?
UUID v4는 122비트 랜덤성을 제공하여 많은 용도에 충분합니다. 하지만 보안이 중요한 토큰(API 키, 비밀번호 재설정)에는 최소 256비트의 암호학적 랜덤 생성기를 사용하세요.
UUID 저장 공간은 얼마나 되나요?
문자열: 36바이트(하이픈 포함) 또는 32바이트(하이픈 제외). 바이너리: 16바이트. 대부분의 DB는 네이티브 UUID 타입으로 16바이트 바이너리로 효율적 저장합니다.
UUID와 ULID 중 무엇을 사용해야 하나요?
ULID는 UUID v7과 유사하게 시간순 정렬이 가능합니다. UUID v7이 공식 RFC 표준이므로 더 표준화된 선택입니다. 신규 프로젝트에서는 UUID v7을 권장합니다.
UUID v7에서 타임스탬프를 추출할 수 있나요?
네! UUID v7의 처음 48비트에 밀리초 단위 Unix 타임스탬프가 포함되어 있습니다. 별도의 created_at 컬럼 없이도 디버깅과 감사 추적에 유용합니다.
▶이 글에서 다룬 도구 바로 사용하기
민재
개발자 겸 테크 라이터. 개발 도구와 파일 변환 기술을 깊이 있게 다룹니다.
이 글이 도움이 되셨나요? 새 가이드 알림 받기
스팸 없이, 새 소식만 보내드립니다. 언제든 취소 가능. · 구독 시 개인정보처리방침에 동의합니다.