개발중급📖 12분 읽기📅 2026-02-01

UUID 생성과 활용 완벽 가이드

UUID 버전별 특징과 적절한 사용 사례, 실무 적용 방법을 알아봅니다

#UUID#고유식별자#데이터베이스#API

UUID 생성과 활용 완벽 가이드

UUID(Universally Unique Identifier)는 전 세계적으로 고유한 식별자를 생성하는 표준 방식입니다. 데이터베이스, API, 분산 시스템에서 중복 없는 ID가 필요할 때 UUID를 사용합니다.

1. UUID의 기본 개념

UUID는 128비트 숫자로, 550e8400-e29b-41d4-a716-446655440000 형태의 36자 문자열로 표현됩니다.

UUID의 특징:

  • 중복 확률이 극히 낮음 (사실상 고유함 보장)
  • 중앙 관리 없이 독립적으로 생성 가능
  • 분산 시스템에서 안전하게 사용 가능

2. UUID 버전별 특징

Version 1 (시간 기반)

타임스탬프와 MAC 주소를 사용하여 생성합니다.

  • 장점: 시간 순서 보장
  • 단점: MAC 주소 포함으로 개인정보 우려

Version 4 (무작위)

완전 무작위 값으로 생성합니다.

  • 장점: 예측 불가능, 개인정보 안전
  • 단점: 시간 순서 없음
  • 가장 많이 사용됨

Version 5 (이름 기반)

네임스페이스와 이름을 SHA-1 해싱하여 생성합니다.

  • 장점: 동일한 입력이면 항상 같은 UUID
  • 용도: 결정적 ID 필요 시

3. 실무 사용 사례

데이터베이스 기본 키

CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name VARCHAR(255),
  email VARCHAR(255)
);

API 리소스 식별자

// RESTful API 엔드포인트
GET /api/users/550e8400-e29b-41d4-a716-446655440000

파일 이름 생성

const fileId = crypto.randomUUID();
const filename = `upload-${fileId}.jpg`;

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

4. 구현 방법과 모범 사례

JavaScript/Node.js

// 브라우저/Node.js 18+
const uuid = crypto.randomUUID();

// Node.js (uuid 패키지)
const { v4: uuidv4 } = require('uuid');
const uuid = uuidv4();

Python

import uuid

# UUID v4 생성
my_uuid = uuid.uuid4()
print(str(my_uuid))

모범 사례

  1. 용도에 맞는 버전 선택: 대부분은 v4 사용
  2. DB 인덱싱: UUID를 기본 키로 사용 시 인덱스 최적화 고려
  3. 보안: v1 사용 시 MAC 주소 노출 주의
  4. 성능: 대량 생성 시 라이브러리 벤치마크 확인

관련 도구: 🔑 UUID 생성기로 다양한 버전의 UUID를 바로 생성해보세요!

UUID 생성과 활용 완벽 가이드 | 뚝딱툴