UUID v7이란?
UUID 버전 7 은(는) 2024년 5월에 발표된 RFC 9562에 정의된 시간 순 정렬 가능한 128비트 식별자입니다. 구성 요소는 다음과 같습니다:
- Unix 타임스탬프: 밀리초 정밀도의 Unix 시간 48비트
- 무작위 데이터: 74비트의 무작위 데이터
- 버전 및 변이 비트: 형식 식별을 위한 6비트 (버전 및 변이 비트)
형식 예시: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
UUID v7 작동 방식
- 현재 Unix 타임스탬프를 밀리초 단위로 가져오기 (48비트)
- 암호학적으로 강력한 무작위 데이터 74비트 생성
- 버전 비트를 0111로 설정 (version 7)
- 변이 비트를 10으로 설정 (RFC 4122 표준)
- 32개의 16진수 숫자를 하이픈으로 조합: 8-4-4-4-12 형식
장점 및 고려사항
| Advantages | Considerations |
|---|---|
|
|
UUID v7 구조
| Bits | Content |
|---|---|
| 0-47 | Unix 타임스탬프 (밀리초) |
| 48-51 | 버전 (0111 = v7) |
| 52-63 | 무작위 데이터 |
| 64-65 | 변이 (10 = RFC4122) |
| 66-127 | 무작위 데이터 |
UUID v7과 다른 버전 비교
| Version | 기반 | 사용 사례 | Privacy |
|---|---|---|---|
| UUID v1 | 시간 + MAC | 시간 순 정렬 ID | ⚠️ MAC 노출 가능 |
| UUID v3 | 네임스페이스 + MD5 | 결정적 ID | ✅ 비공개 |
| UUID v4 | Random | 보안 무작위 ID | ✅ 비공개 |
| UUID v5 | 네임스페이스 + SHA-1 | 결정적 ID | ✅ 비공개 |
| UUID v6 | 시간 (재배열) | 정렬 가능한 ID | ⚠️ MAC 노출 가능 |
| UUID v7 | 시간 + 무작위 | 정렬 가능한 ID | 생성 시간을 포함; MAC 주소는 없음 |
일반적 사용 사례
- 데이터베이스 기본 키: 효율적인 인덱스
- 분산 시스템: 조정 없이도 시간 순 정렬 가능
- 현대 애플리케이션: 개인정보 보호 중심 식별자
- Microservices: 서비스 간 정렬 가능한 ID
- 이벤트 소싱: 연대순 이벤트 ID
- 데이터 웨어하우징: 시간 순 정렬된 분석용 ID
자주 묻는 질문
UUID v7이 v1 또는 v6보다 갖는 이점은 무엇인가요?
UUID v7은 MAC 주소 대신 밀리초 단위의 Unix 타임스탬프와 무작위 데이터를 사용하여 생성 시간에 따른 정렬 가능성을 유지하면서 개인정보를 보호합니다.
UUID v7은 공식 표준인가요?
예. UUID v7은 RFC 9562에 정의되어 있으며 2024년 5월에 발표되었습니다.
UUID v7에서 생성 시간을 추출할 수 있나요?
예. 밀리초 단위의 Unix 타임스탬프는 처음 48비트에서 추출하여 표준 날짜시간으로 변환할 수 있습니다.
UUID v7은 생성 시간 순으로 정렬되나요?
예. UUID v7은 가장 중요한 비트에 Unix 타임스탬프를 배치하도록 설계되어 있어 문자열 비교만으로도 생성 시간 순으로 일치하는 정렬이 가능합니다.
UUID v7이 시스템 정보를 노출하나요?
UUID v7은 MAC 주소를 포함하지 않지만 처음 48비트는 밀리초 단위의 생성 타임스탬프를 드러냅니다. 이 타이밍 메타데이터는 식별자를 받는 누구에게나 보이는 정보로 간주해야 합니다.