분산 데이터베이스 환경에서는 중앙 조정 서버 없이 각 노드가 독립적으로 고유 기본 키를 발급할 수 있어야 합니다. 이를 실현하는 범용 표준이 바로 UUID (Universally Unique Identifier / GUID)입니다.
1. 128비트 UUID의 구조
RFC 9562로 규정된 UUID는 16옥텟(128비트)으로 구성되며, 하이픈으로 구분된 5개 블록(32자리 16진수)으로 표기됩니다:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxM = 버전 번호 (예: 4 또는 7) | N = 변형 규격 (주로 8, 9, a, b)
2. 충돌 수학과 보안성
UUID v4의 122비트 난수 엔트로피(약 5.3 × 10^36 조합) 환경에서는 매초 10억 개의 UUID를 85년 동안 계속 생성해야 단 50%의 충돌 확률에 도달합니다.
3. UUID v4 (난수) vs UUID v7 (시간 정렬)
UUID v4가 순수 난수인데 반해, 차세대 표준 UUID v7은 상위 48비트에 유닉스 밀리초 타임스탬프를 내장하여 데이터가 시간순으로 자연 정렬됩니다.
4. 데이터베이스 인덱싱 및 B-Tree 단편화 방지
랜덤 UUID v4는 B-Tree 페이지 분할을 일으켜 성능을 저하시킵니다. 반면 UUID v7은 순차적으로 삽입되어 PostgreSQL 및 MySQL에서 최대 10배 빠른 삽입 성능을 보장합니다.