유틸리티

UUID란? 고유 식별자 생성법과 v4의 특징

데이터베이스에서 레코드를 구분할 때 1, 2, 3 같은 순번 대신 550e8400-e29b-41d4-a716-446655440000 같은 긴 문자열을 쓰는 경우가 있다. 이게 UUID(Universally Unique Identifier)다. 전 세계 어디서 만들어도 겹치지 않도록 설계된 128비트 식별자다.

왜 순번 대신 UUID를 쓰나

순번(Auto Increment)은 단일 데이터베이스에서는 편하지만, 여러 서버가 동시에 데이터를 만들면 문제가 생긴다. 서버 A에서 ID 100을 만들고 서버 B에서도 ID 100을 만들면 병합할 때 충돌한다.

UUID는 중앙 서버 없이 각자 독립적으로 생성해도 겹칠 확률이 사실상 0에 가깝다. 약 3.4 × 10³⁸가지 조합이 가능하기 때문이다.

UUID가 쓰이는 곳

  • 분산 시스템의 레코드 식별자
  • API에서 리소스를 구분하는 고유 키
  • 세션 ID, 트랜잭션 ID
  • 파일명 중복 방지

UUID v4, 랜덤 생성 방식

UUID에는 여러 버전이 있지만, 가장 널리 쓰이는 건 v4(랜덤)다. 타임스탬프나 MAC 주소 같은 외부 정보 없이 순수 난수로 생성한다. 형식은 8-4-4-4-12자리, 총 32개의 16진수 문자로 이루어져 있다.

예시 f47ac10b-58cc-4372-a567-0e02b2c3d479
세 번째 그룹 첫 자리가 4인 게 v4의 특징이다.

UUID 만드는 법

프로그래밍 언어별로 내장 함수가 있지만, 테스트용이나 한두 개만 빠르게 필요할 때는 온라인 UUID 생성기가 편하다. 버튼 하나로 바로 생성되고, 최대 1,000개까지 한꺼번에 뽑을 수도 있다.

형식출력 예시용도
기본(하이픈)f47ac10b-58cc-4372-...일반적인 사용
하이픈 제거f47ac10b58cc4372...URL, 파일명
중괄호{f47ac10b-58cc-...}Windows GUID
URNurn:uuid:f47ac10b-...XML, RDF

대문자 옵션도 있고, 대량 생성한 결과를 TXT 파일로 다운로드할 수도 있다. 테스트 데이터를 만들 때 유용하다.

개발 중에 고유 ID가 필요할 때마다 코드를 짜지 않아도 된다. 복사해서 바로 쓰면 끝이다.