데이터베이스 테이블에 고유 ID를 넣어야 하는데, 순번(auto increment)을 쓰면 서버가 여러 대일 때 충돌이 생긴다. UUID 생성은 이런 문제를 해결하는 가장 간단한 방법이다. 서버끼리 통신하지 않아도 각자 만든 ID가 겹치지 않는다.
UUID가 뭔가
UUID(Universally Unique Identifier)는 128비트 길이의 고유 식별자다. 32자리 16진수와 4개의 하이픈으로 구성된다.
550e8400-e29b-41d4-a716-446655440000
전 세계에서 동시에 생성해도 같은 값이 나올 확률은 사실상 0이다. 이론적으로 중복이 발생하려면 약 2.71 × 10^18개를 만들어야 50% 확률에 도달한다.
UUID v4를 가장 많이 쓰는 이유
| 버전 | 생성 방식 | 특징 |
|---|---|---|
| v1 | 타임스탬프 + MAC 주소 | 시간 순서 보장, MAC 주소 노출 위험 |
| v4 | 완전 랜덤 | 가장 널리 사용, 예측 불가 |
| v5 | 네임스페이스 + 이름의 SHA-1 | 같은 입력이면 같은 UUID 생성 |
v4는 외부 정보(MAC 주소, 시간)에 의존하지 않고 순수 난수로 만들어지기 때문에 보안 면에서 가장 안전하다. 대부분의 프레임워크와 데이터베이스가 v4를 기본으로 지원한다.
실무에서 UUID를 쓰는 곳
- DB 기본키: 분산 시스템에서 서버 간 ID 충돌 방지
- API 요청 추적: 각 요청에 UUID를 붙여 로그 추적
- 파일 이름: 업로드 파일의 중복 방지용 고유 이름
- 세션/토큰: 사용자 세션 식별자로 활용
빠르게 생성하는 법
터미널에서 uuidgen 명령어를 쳐도 되지만, 여러 개를 한꺼번에 만들어야 할 때는 UUID 생성기가 편하다. 최대 1,000개까지 일괄 생성되고, 하이픈 제거·중괄호 포함·대문자 등 형식도 선택할 수 있다. 결과를 텍스트 파일로 다운로드해서 테스트 데이터로 바로 쓸 수 있다.