·2분 읽기
UUID 생성기 활용법 — 데이터베이스 키부터 토큰 생성까지
UUID v1·v4·v7 차이와 데이터베이스 기본키·세션 토큰·파일명 등 5가지 실전 활용 시나리오를 정리했어요.

🆔
UUID 생성기 바로 사용하기
고유한 UUID를 생성하세요
→
UUID란 무엇인가?
UUID(Universally Unique Identifier)는 128비트 길이의 식별자예요. 형태는 `550e8400-e29b-41d4-a716-446655440000` 처럼 36자(하이픈 4개 + 32자 16진수).
왜 쓸까요? 분산 환경에서 서버가 여러 대여도 충돌 없이 고유 ID 생성 가능. 매년 10억 개씩 100년 만들어도 충돌 확률 50% 미만이라 사실상 안전해요. 데이터베이스 기본키·세션 토큰·파일명 등에 광범위하게 사용돼요.
버전별 차이 — v1·v4·v7
UUID는 여러 버전이 있어요. 가장 많이 쓰는 3개 비교.
- **v1**: 시간 + MAC 주소 기반. 시각 정렬 가능하지만 MAC 노출 보안 이슈
- **v4**: 완전 랜덤. 가장 흔히 쓰임. 정렬 불가
- **v7**: 2024년 표준화. 시간 + 랜덤 결합. 시각 정렬 가능 + 보안 개선
신규 프로젝트는 v7 권장. 호환성 중요하면 v4가 안전. v1은 보안 이슈로 새 프로젝트에서 거의 안 써요.
시나리오 1) 데이터베이스 기본키
전통적 AUTO_INCREMENT 정수 키 대신 UUID 사용 시 장점.
- 서버 여러 대에서 동시 INSERT 가능 (충돌 X)
- ID 노출 시 다음 ID 추측 불가 (보안 ↑)
- 마이그레이션 시 ID 충돌 없음
단점: 인덱스 크기 4배(8B → 16B), 정렬 효율 낮음(v4 기준). v7로 정렬 문제 해결되면서 신규 DB는 UUID 기본화 추세예요.
시나리오 2) 세션 토큰·인증
사용자 로그인 후 발급되는 세션 ID에 UUID 사용.
```
session_id: 550e8400-e29b-41d4-a716-446655440000
```
128비트 랜덤이라 brute force 사실상 불가능. 단, 토큰을 URL에 노출하지 말고 쿠키 HttpOnly + Secure 플래그로 저장해야 안전해요.
시나리오 3) 파일 업로드 시 충돌 방지
사용자가 같은 이름 파일 업로드 시 덮어쓰기 방지를 위해 UUID로 파일명 변경.
```
원본: profile.jpg
저장: 550e8400-e29b-41d4-a716-446655440000.jpg
```
DB에는 UUID + 원본 이름 함께 저장하면 사용자에겐 원본 이름으로 표시 가능. AWS S3·CloudFlare R2 같은 객체 스토리지에서 표준 방식이에요.
시나리오 4) 분산 시스템 트랜잭션 ID
마이크로서비스에서 한 요청이 여러 서비스를 거칠 때 추적용 trace ID로 UUID 사용.
```
request_id: 550e8400-e29b-41d4-a716-446655440000
```
로그 분석 시 같은 request_id로 묶어서 전체 흐름 추적 가능. OpenTelemetry·Jaeger 같은 분산 추적 도구의 기본 패턴이에요.
시나리오 5) 게임·채팅 방 ID
게임 매치메이킹·실시간 채팅방 생성 시 짧은 ID 대신 UUID 사용. 추측 불가능해서 외부 침입 방지.
```
room_url: chat.example.com/r/550e8400-e29b-41d4-a716-446655440000
```
단 사용자가 URL 공유해야 하니 너무 긴 게 단점. 짧은 친구 코드(6자리)와 UUID 룸 ID를 함께 운영하는 패턴이 흔해요.
Toolkio UUID 생성기 사용법
1. 생성 버튼 클릭 시 즉시 UUID v4 생성
2. 한 번에 1·10·100개까지 일괄 생성 가능
3. 클릭 한 번으로 클립보드 복사
4. 대시 제거 옵션(짧은 형식 필요 시)
로컬 브라우저에서 crypto.randomUUID() API로 생성. 서버 전송 없어서 안전해요.