🆔 UUID Generator

UUID (Universally Unique Identifier)를 생성합니다

UUID(Universally Unique Identifier)란?

왜 필요한가요?

UUID는 범용 고유 식별자로, 중앙 조정 없이 고유성을 보장하는 128비트 값입니다. 데이터베이스 기본 키, 세션 ID, 파일명 등 전 세계적으로 유일한 식별자가 필요할 때 사용됩니다.

UUID는 36자 형식(8-4-4-4-12)으로 표현되며, 예시: 550e8400-e29b-41d4-a716-446655440000
충돌 확률이 극히 낮아 (2^122번 생성해야 50% 충돌) 분산 시스템에서 안전하게 사용할 수 있습니다.

언제 사용하나요?

  • 데이터베이스 Primary Key: 순차적 ID 대신 UUID를 기본 키로 사용하여 보안 강화
  • 분산 시스템: 여러 서버에서 동시에 ID를 생성해도 충돌 없음
  • 세션 ID: 예측 불가능한 세션 식별자로 보안 향상
  • 파일 업로드: 중복되지 않는 고유한 파일명 생성
  • API 리소스: RESTful API에서 리소스의 고유 식별자
  • 메시지 추적: 로그, 이벤트, 트랜잭션의 고유 ID

UUID 버전 비교

버전생성 방식용도
v1타임스탬프 + MAC 주소시간 순서 보장 (보안 약함)
v3MD5 해시 기반이름 기반 UUID (레거시)
v4랜덤 생성가장 흔함, 범용적 사용
v5SHA-1 해시 기반이름 기반 UUID (권장)
v6, v7타임스탬프 + 랜덤최신 표준, 정렬 가능

이 도구는 가장 널리 사용되는 UUID v4(완전 랜덤)를 생성합니다.

실무 사용 예시

예시 1: 데이터베이스 스키마

CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name VARCHAR(100),
  created_at TIMESTAMP
);

순차적 ID보다 보안성 높고 분산 환경에 적합

예시 2: 파일 업로드

원본 파일명: profile.jpg
저장 파일명: 550e8400-e29b-41d4-a716-446655440000.jpg

파일명 충돌 방지 및 원본 파일명 노출 방지

예시 3: REST API 리소스

GET /api/users/550e8400-e29b-41d4-a716-446655440000
DELETE /api/posts/7c9e6679-7425-40de-944b-e07fc1f90ae7

예측 불가능한 ID로 보안 강화

주의사항

  • 크기: UUID는 36바이트(문자열) 또는 16바이트(이진)로 정수형 ID보다 큽니다.
  • 정렬: UUID v4는 무작위라 시간순 정렬이 안 됩니다. 정렬이 필요하면 v7을 고려하세요.
  • 인덱싱: 랜덤한 UUID는 B-tree 인덱스 성능이 떨어질 수 있습니다. 대용량 DB에서는 주의 필요.
  • 가독성: 긴 문자열이라 사람이 읽거나 기억하기 어렵습니다.
  • 충돌 가능성: 이론적으로 가능하지만 실질적으로는 0에 가깝습니다.

UUID vs 다른 ID 방식

방식장점단점
순차 정수작고 빠름, 정렬 가능예측 가능, 분산 환경 불리
UUID고유성 보장, 분산 가능크기 큼, 가독성 낮음
ULID/NanoID짧고 정렬 가능비표준, 라이브러리 필요

더 알아보기

Developer Tools

개발자를 위한 18가지 이상의 무료 온라인 도구를 제공합니다. Base64, JSON, JWT, 정규식 등 필수 개발 도구를 한 곳에서.

Developer Tools © 2025. All rights reserved.

모든 도구는 클라이언트 사이드에서만 작동하며, 입력 데이터는 서버로 전송되지 않습니다.