UUID/GUID 생성기
UUID (Universally Unique Identifier) v4를 생성하는 무료 온라인 도구입니다.
✨ 생성된 UUID
UUID (Universally Unique Identifier) v4를 생성합니다. 각 UUID는 통계적으로 고유하며, 데이터베이스 키, 세션 ID 등으로 사용됩니다.
💡 예시
기본 (소문자, 하이픈):
550e8400-e29b-41d4-a716-446655440000대문자:
550E8400-E29B-41D4-A716-446655440000하이픈 없음:
550e8400e29b41d4a716446655440000UUID란?
UUID (Universally Unique Identifier) 또는 GUID (Globally Unique Identifier)는 정보를 고유하게 식별하기 위한 128비트 숫자입니다. UUID v4는 무작위로 생성되며, 중복될 확률이 거의 0에 가깝습니다.
주요 기능
- 대량 생성: 1개, 5개, 10개, 20개 선택 가능
- 대문자/소문자: 원하는 형식 선택
- 하이픈 옵션: 하이픈 포함/제거 선택
- 즉시 복사: 클릭 한 번으로 클립보드에 복사
- 브라우저 기반: 설치 불필요, 완전히 클라이언트에서 실행
사용 방법
기본 사용
- 생성할 UUID 개수를 선택합니다 (1, 5, 10, 20)
- 옵션을 선택합니다:
- 대문자: 체크하면 대문자로 생성
- 하이픈 포함: 체크하면 하이픈이 포함된 형식
- "생성" 버튼을 클릭합니다
- 생성된 UUID를 복사하여 사용합니다
형식 선택
기본 형식 (소문자, 하이픈 포함)
550e8400-e29b-41d4-a716-446655440000
대문자
550E8400-E29B-41D4-A716-446655440000
하이픈 없음
550e8400e29b41d4a716446655440000
UUID 구조
UUID v4는 다음과 같은 구조를 가집니다:
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
- x: 무작위 16진수 (0-9, a-f)
- 4: 버전 번호 (v4를 나타냄)
- y: 무작위 16진수 (8, 9, a, b 중 하나)
총 128비트 = 32자리 16진수로 표현됩니다.
사용 사례
1. 데이터베이스 기본 키
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(100),
email VARCHAR(100)
);
2. 분산 시스템 ID
여러 서버에서 독립적으로 ID를 생성해도 충돌 없음:
const userId = '550e8400-e29b-41d4-a716-446655440000';
const sessionId = 'a3bb189e-8bf9-3888-9912-ace4e6543002';
3. 파일 이름
const filename = `upload-${uuid}.jpg`;
// upload-550e8400-e29b-41d4-a716-446655440000.jpg
4. API 토큰
Authorization: Bearer 550e8400-e29b-41d4-a716-446655440000
5. 세션 ID
const sessionId = generateUUID();
sessionStorage.setItem('sessionId', sessionId);
UUID 버전
UUID v1
- 타임스탬프 + MAC 주소 기반
- 시간 순서 보장
- MAC 주소 노출 우려
UUID v4 (이 도구에서 사용) ⭐
- 완전 무작위
- 가장 널리 사용
- 개인정보 노출 없음
UUID v5
- 이름 기반 (SHA-1 해시)
- 동일한 입력 → 동일한 UUID
충돌 확률
UUID v4의 충돌 확률은 극히 낮습니다:
- 총 가능한 UUID 수: 2^122 ≈ 5.3 × 10^36개
- 10억 개 생성 시 충돌 확률: 약 10^-18 (거의 0)
- 우주의 모든 원자 수: 10^80개
실용적으로 충돌을 걱정할 필요가 없습니다!
프로그래밍 언어별 사용법
JavaScript
// 브라우저
const uuid = crypto.randomUUID();
// Node.js
const { v4: uuidv4 } = require('uuid');
const uuid = uuidv4();
Python
import uuid
# UUID v4 생성
my_uuid = uuid.uuid4()
print(my_uuid) # 550e8400-e29b-41d4-a716-446655440000
Java
import java.util.UUID;
UUID uuid = UUID.randomUUID();
String uuidString = uuid.toString();
PHP
<?php
$uuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0x0fff) | 0x4000,
mt_rand(0, 0x3fff) | 0x8000,
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
?>
C#
using System;
Guid uuid = Guid.NewGuid();
string uuidString = uuid.ToString();
실용적인 팁
1. 대량 생성
많은 UUID가 필요할 때 한 번에 생성:
- 테스트 데이터 생성
- 마이그레이션 스크립트
- 시드 데이터 준비
2. 데이터베이스 인덱싱
UUID를 기본 키로 사용 시 주의사항:
- 완전 무작위 → B-Tree 인덱스 성능 저하 가능
- UUID v1 또는 ULID 고려 (순차적 특성)
- PostgreSQL의
gen_random_uuid()사용 권장
3. URL에서 사용
// 하이픈 제거된 형식이 깔끔
const url = `https://example.com/items/${uuid.replace(/-/g, '')}`;
4. 로깅과 추적
const requestId = crypto.randomUUID();
console.log(`[${requestId}] Request started`);
// ... 처리 ...
console.log(`[${requestId}] Request completed`);
보안 고려사항
✅ 안전한 사용
- 세션 ID
- API 키 (추가 보안과 함께)
- 임시 파일 이름
- 추적 ID