데이터베이스에 새 레코드를 추가할 때마다 고유한 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 형식 |
| URN | urn:uuid:550e8400-... | RFC 표준 식별자 |
바로 생성해보기
코드에서 라이브러리를 import해서 생성할 수도 있지만, 테스트용 ID가 몇 개 필요할 때는 UUID 생성기에서 버튼 한 번이면 된다. 최대 1,000개까지 한꺼번에 만들 수 있고, 텍스트 파일로 다운로드해서 테스트 데이터에 바로 쓸 수 있다.
개발 초기에 ID 체계를 UUID로 잡아두면 나중에 서비스가 커져도 마이그레이션 걱정이 줄어든다.