유틸리티

UUID란? 고유 ID 생성 원리와 v4 사용법

데이터베이스에 새 레코드를 추가할 때 자동 증가(auto increment) ID를 쓰면 편하지만, 여러 서버에서 동시에 데이터를 만들면 번호가 충돌할 수 있다. UUID는 중앙 서버 없이도 전 세계 어디서 생성하든 겹치지 않는 고유 식별자다.

UUID 구조

UUID(Universally Unique Identifier)는 128비트 숫자를 16진수 32자리로 표기한 것이다. 하이픈으로 5개 그룹으로 나뉜다.

550e8400-e29b-41d4-a716-446655440000

가능한 조합 수는 약 3.4×10³⁸개다. 매초 10억 개씩 만들어도 100년 동안 중복이 발생할 확률이 사실상 0에 가깝다.

UUID v4, 왜 가장 많이 쓰이나

UUID에는 v1부터 v5까지 버전이 있는데, 실무에서 가장 널리 쓰이는 건 v4다.

v1: 타임스탬프 + MAC 주소 기반
생성 시간과 기기 정보가 포함된다. 고유성은 높지만 MAC 주소가 노출되는 보안 문제가 있다.
v4: 완전 무작위
암호학적 난수로 생성한다. 시간이나 기기 정보와 무관해서 가장 범용적으로 쓰인다.
v5: 이름 기반 (SHA-1)
네임스페이스와 이름을 해싱해서 만든다. 같은 입력이면 항상 같은 UUID가 나온다.

실무에서 UUID를 쓰는 곳

  • 데이터베이스 기본키: 분산 시스템에서 ID 충돌 없이 레코드 생성
  • API 요청 추적: 각 요청에 UUID를 붙여서 로그 추적
  • 파일명 생성: 업로드 파일에 고유 이름 부여
  • 세션/토큰: 사용자 인증 세션 식별

생성 방법

UUID 생성기에 접속하면 페이지를 열자마자 UUID v4 하나가 바로 만들어진다. 새로고침 버튼을 누르면 즉시 새 값이 나온다.

포맷은 기본 하이픈 형태 외에 하이픈 제거, 중괄호 감싸기, URN 형식 중에서 고를 수 있다. 대량으로 필요하면 개수를 입력하고 일괄 생성 버튼을 누르면 최대 1,000개까지 한 번에 만들어진다. 결과는 텍스트 파일로 다운로드할 수도 있다.

참고 UUID v4의 세 번째 그룹 첫 자리는 항상 4다. xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx 형태에서 4가 버전 번호를 나타낸다.