UUID(Universally Unique Identifier)

태그
CS
3 more properties
전 세계적으로 고유한 식별자를 생성하기 위한 표준 방식.

주요 특징

고유성: 전 세계적으로 중복될 확률이 극히 낮음 (1조 개의 v4 UUID 기준 1/10)
플랫폼 독립적: 모든 시스템에서 동일하게 작동
중앙 관리 불필요: 별도의 조정 없이 독립적으로 생성 가능

UUID의 구조

UUID는 128비트(16바이트) 길이의 값으로, 일반적으로 32개의 16진수 문자를 하이픈으로 구분한 형태.
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Plain Text
복사
예시: 550e8400-e29b-41d4-a716-446655440000

UUID 버전들

UUID는 생성 방식에 따라 여러 버전이 있다.

UUID v1, v2

타임스탬프 + MAC 주소 기반
생성 시간과 네트워크 카드의 MAC 주소를 사용
시간 순서가 보장되지만 MAC 주소가 노출될 수 있음

UUID v3, v5

네임스페이스 + 이름 기반 (SHA-1)
동일한 입력에 대해 항상 같은 UUID 생성
결정적(deterministic) 특성

UUID v4

완전 랜덤 기반
가장 널리 사용되는 버전
암호학적으로 안전한 랜덤 값 사용
충돌 확률이 매우 낮음

활용 분야

UUID는 DB의 기본 키, 분산 시스템의 객체 식별, 파일명 생성, 세션 ID, API 토큰 등 다양한 용도로 사용된다.
특히 여러 시스템 간 데이터 동기화나 마이그레이션 시 충돌 없는 식별자가 필요한 경우 매우 유용하다.

언어별 UUID 생성

v4 기준

Java

import java.util.UUID; public class UUIDExample { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid.toString()); } }
Java
복사

Javascript

const crypto = require('crypto'); const uuid = crypto.randomUUID(); console.log(uuid);
JavaScript
복사

Python

import uuid uuid_v4 = uuid.uuid4() print(str(uuid_v4))
Python
복사