유틸리티 소개

UUID가 중복될 확률은 얼마나 될까

개발할 때 고유 식별자로 UUID를 많이 쓴다. 랜덤으로 생성하는데 진짜 안 겹치나 궁금해서 찾아봤다.

UUID란

Universally Unique Identifier의 약자다. 32자리 16진수로 이루어져 있다. 550e8400-e29b-41d4-a716-446655440000 같은 형식이다.

중복 확률

UUID v4 기준으로 경우의 수가 2의 122승이다. 1조 개를 생성해도 중복 확률은 0에 가깝다. 우주 나이 동안 매초 10억 개씩 생성해도 안 겹친다고 한다. UUID 생성기로 직접 만들어볼 수 있다.

버전별 차이

v1은 시간과 MAC 주소 기반, v4는 완전 랜덤이다. 보통 v4를 많이 쓴다.

실제 사용

DB 기본키, 세션 ID, 파일 이름 등에 쓴다. 순차적 ID보다 보안상 좋다. 온라인 도구로 필요할 때마다 생성하면 된다.

고유 식별자의 활용 사례

데이터베이스에서 각 레코드를 구분할 때 쓴다. 순차 번호보다 예측이 어려워서 보안에 좋다. URL에 노출해도 다음 값을 유추하기 어렵다. 분산 시스템에서 충돌 없이 생성할 수 있다. UUID 생성기로 필요할 때마다 만들 수 있다.

고유성의 수학적 보장

UUID의 중복 확률이 천문학적으로 낮다는 게 신기하죠. 데이터베이스 설계할 때 이런 개념을 알아두면 좋습니다. UUID 생성 도구로 여러 버전을 만들어보면서 차이를 비교해보세요. 실무에서 자주 쓰이는 지식입니다.

v4 UUID는 랜덤 기반이라 가장 많이 쓰이고, v1은 시간 기반이라 순서가 필요할 때 유용합니다.

분산 시스템에서 고유 ID가 필요할 때 UUID가 정말 빛을 발합니다. 서버 간 조율 없이도 겹치지 않는 ID를 만들 수 있거든요.