유틸리티

UUID란, 고유 ID가 필요할 때 바로 생성하는 법

데이터베이스에 새 레코드를 추가할 때마다 고유한 ID가 필요하다. 순차적으로 1, 2, 3을 매기면 간단하지만, 분산 시스템에서는 여러 서버가 동시에 ID를 만들기 때문에 충돌이 생길 수 있다. UUID는 이 문제를 해결한다.

UUID가 뭔가

UUID(Universally Unique Identifier)는 128비트 길이의 고유 식별자다. 550e8400-e29b-41d4-a716-446655440000 같은 형태로, 전 세계 어디서 생성해도 같은 값이 나올 확률이 사실상 0에 가깝다.

참고 UUID v4의 가능한 조합 수는 약 5.3 × 10³⁶개다. 매초 10억 개씩 생성해도 중복이 나오려면 약 850억 년이 걸린다.

어디에 쓰이나

  • 데이터베이스 PK: 자동 증가 ID 대신 UUID를 쓰면 테이블 병합이나 샤딩 시 충돌이 없다.
  • API 요청 추적: 각 요청에 UUID를 붙이면 로그에서 특정 요청을 추적하기 쉽다.
  • 파일 이름: 업로드 파일명을 UUID로 바꾸면 중복이나 한글 인코딩 문제를 피할 수 있다.
  • 세션/토큰: 사용자 세션 ID나 임시 토큰 생성에 활용.

UUID 형식 옵션

형식예시용도
기본(하이픈 포함)550e8400-e29b-41d4-...가장 표준적인 형태
하이픈 제거550e8400e29b41d4...파일명, URL 파라미터
중괄호{550e8400-e29b-...}Windows GUID 형식
URNurn:uuid:550e8400-...RFC 표준 식별자

바로 생성해보기

코드에서 라이브러리를 import해서 생성할 수도 있지만, 테스트용 ID가 몇 개 필요할 때는 UUID 생성기에서 버튼 한 번이면 된다. 최대 1,000개까지 한꺼번에 만들 수 있고, 텍스트 파일로 다운로드해서 테스트 데이터에 바로 쓸 수 있다.

개발 초기에 ID 체계를 UUID로 잡아두면 나중에 서비스가 커져도 마이그레이션 걱정이 줄어든다.