유틸리티

UUID란? 고유 ID 생성이 필요할 때 쓰는 법

데이터베이스 테이블마다 auto increment ID를 쓰다가, 서비스끼리 데이터를 합치는 순간 ID가 겹친다. 분산 시스템에서 고유 식별자가 필요할 때 쓰는 게 UUID다.

UUID가 뭔가

UUID(Universally Unique Identifier)는 128비트 길이의 고유 식별자다. 형태는 550e8400-e29b-41d4-a716-446655440000처럼 하이픈으로 구분된 32자리 16진수다. 중앙 서버 없이도 어디서든 생성할 수 있고, 충돌 확률은 사실상 0에 가깝다.

UUID v4
랜덤 난수 기반으로 생성한다. 가장 많이 쓰이는 버전이다.
GUID
마이크로소프트에서 UUID를 부르는 이름이다. 구조는 UUID와 동일하다.

UUID를 쓰는 경우

  • 분산 데이터베이스 — 여러 서버에서 동시에 레코드를 생성해도 ID가 겹치지 않는다.
  • API 리소스 식별 — URL에 순차 ID를 노출하면 보안상 좋지 않다. UUID는 예측이 불가능하다.
  • 세션/토큰 ID — 사용자 세션이나 일회용 토큰에 고유값이 필요할 때.
  • 파일명 중복 방지 — 업로드되는 파일에 UUID를 붙이면 이름이 겹칠 일이 없다.

UUID 생성 방법

코드에서 직접 생성할 수도 있지만, 테스트용으로 빠르게 뽑아야 할 때는 UUID 생성기가 편하다. 한 번에 최대 1,000개까지 대량 생성되고, 하이픈 제거, 중괄호 형식, URN 형식 등 포맷도 선택할 수 있다.

형식예시사용처
기본550e8400-e29b-41d4-...일반적인 개발
하이픈 제거550e8400e29b41d4...DB 저장 시 용량 절약
중괄호{550e8400-e29b-...}Windows, .NET
URNurn:uuid:550e8400-...XML, 표준 문서

UUID v4의 충돌 확률은 10억 개를 생성해도 무시할 수 있는 수준이다. 고유값이 필요한 곳이라면 안심하고 쓸 수 있다.