본문으로 건너뛰기

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
하이픈 없음:
550e8400e29b41d4a716446655440000

UUID란?

UUID (Universally Unique Identifier) 또는 GUID (Globally Unique Identifier)는 정보를 고유하게 식별하기 위한 128비트 숫자입니다. UUID v4는 무작위로 생성되며, 중복될 확률이 거의 0에 가깝습니다.

주요 기능

  • 대량 생성: 1개, 5개, 10개, 20개 선택 가능
  • 대문자/소문자: 원하는 형식 선택
  • 하이픈 옵션: 하이픈 포함/제거 선택
  • 즉시 복사: 클릭 한 번으로 클립보드에 복사
  • 브라우저 기반: 설치 불필요, 완전히 클라이언트에서 실행

사용 방법

기본 사용

  1. 생성할 UUID 개수를 선택합니다 (1, 5, 10, 20)
  2. 옵션을 선택합니다:
    • 대문자: 체크하면 대문자로 생성
    • 하이픈 포함: 체크하면 하이픈이 포함된 형식
  3. "생성" 버튼을 클릭합니다
  4. 생성된 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

⚠️ 주의 필요

  • 예측 불가능하지만 비밀은 아님: UUID만으로 인증하지 마세요
  • 추가 검증 필요: 권한 확인, 서명 등
  • 노출 가능: URL에 포함 시 로그에 기록됨

자주 묻는 질문

Q: UUID는 정말 고유한가요?

네. 통계적으로 충돌 확률이 거의 0입니다. 실제로 중복될 가능성은 우주의 나이 동안 매초 10억 개를 생성해도 거의 없습니다.

Q: UUID v4와 v1의 차이는?

  • v1: 타임스탬프 + MAC 주소 기반, 시간 순서 보장, 개인정보 노출 우려
  • v4: 완전 무작위, 시간 순서 없음, 개인정보 안전

Q: 대문자와 소문자 중 어느 것을 사용해야 하나요?

일반적으로 소문자가 표준이지만, 둘 다 유효합니다. 시스템 요구사항에 따라 선택하세요.

Q: 하이픈이 꼭 필요한가요?

하이픈은 가독성을 위한 것입니다. 일부 시스템에서는 하이픈 없는 형식을 선호합니다.

Q: 데이터베이스 기본 키로 사용해도 되나요?

네, 가능합니다. 하지만 성능을 위해 순차적 ID(AUTO_INCREMENT)나 ULID를 고려할 수도 있습니다.

Q: UUID를 비밀번호로 사용할 수 있나요?

추천하지 않습니다. UUID는 예측할 수 없지만, 비밀번호 해시 함수(bcrypt, argon2)를 사용하는 것이 안전합니다.

관련 도구

성능

  • 생성 속도: 밀리초 미만
  • 브라우저 지원: Chrome 92+, Firefox 95+, Safari 15.4+
  • 메모리 사용: 최소
  • 오프라인 작동: 완전 지원

브라우저 호환성

이 도구는 Web Crypto API를 사용합니다:

  • Chrome 92+ ✓
  • Firefox 95+ ✓
  • Safari 15.4+ ✓
  • Edge 92+ ✓

구형 브라우저에서는 작동하지 않을 수 있습니다.

개인정보 보호

이 도구는 완전히 클라이언트 측에서 작동합니다. 생성된 UUID는 서버로 전송되지 않으며, 브라우저에서만 처리됩니다.