UUID의 원리와 생성 방법
이 생성기가 하는 일
UUID(범용 고유 식별자)는 128비트 값으로, 8-4-4-4-12라는 익숙한 형식에 맞춰 32자리 16진수로 표기합니다. 예를 들면 550e8400-e29b-41d4-a716-446655440000 같은 형태입니다. 이 도구는 필요할 때마다 RFC 4122 규격의 식별자를 만들어 주며, 버전 4 또는 버전 1을 골라 한 번에 최대 100개까지 한꺼번에 생성할 수 있습니다.
하이픈을 넣거나 뺄 수 있고 소문자와 대문자 중에서 고를 수 있어서, 결과를 데이터베이스 컬럼이나 API 규격, 기존 코드가 기대하는 형식에 그대로 맞출 수 있습니다.
UUID가 필요한 순간
UUID는 순번을 나눠 주는 중앙 관리자 없이 식별자를 독립적으로 발급해야 할 때 유용합니다. 대표적으로 분산 데이터베이스의 기본 키, 여러 서비스를 거치는 요청을 추적하는 상관 ID, API 호출의 멱등성 키, 절대 겹치면 안 되는 파일 이름, 클라이언트에서 만들어 내는 객체나 세션 참조 등에 쓰입니다.
두 대의 장비가 서로 조율하지 않고도 같은 순간에 식별자를 만들 수 있기 때문에, UUID는 마이크로서비스나 오프라인 우선 앱, 이벤트 파이프라인에 특히 잘 어울립니다.
버전 4와 버전 1의 차이
버전 4는 브라우저의 crypto.randomUUID와 Web Crypto API에서 얻은 암호학적으로 강한 난수로 거의 모든 비트를 채웁니다. 그래서 식별자를 예측할 수 없고, 언제 어디서 만들어졌는지도 전혀 드러나지 않습니다. 대부분의 작업에서 권장하는 기본값입니다.
반면 버전 1은 현재 타임스탬프에 노드 식별자와 클록 시퀀스를 조합해 값을 만듭니다. 생성 순서대로 대략 정렬할 수 있는 대신 그 시각이 노출됩니다. 예측 불가능성이 중요하면 v4를, 대략적인 시간 순서가 더 쓸모 있다면 v1을 고르세요.
형식과 충돌 확률
두 버전 모두 표준 8-4-4-4-12 배열을 유지하며, 버전을 나타내는 숫자는 세 번째 그룹의 맨 앞에 놓입니다(4 또는 1). v4의 강점은 122비트의 난수에서 나옵니다. 가능한 값이 5×10^36가지가 넘기 때문에, 수십억 개의 식별자를 만들어도 그중 둘이 일치할 확률은 사실상 무시할 수 있을 만큼 작게 유지됩니다.
하이픈을 빼면 32자짜리 간결한 문자열이 되어 URL이나 키에 쓰기 좋고, 대문자 출력은 식별자를 그렇게 저장하는 시스템과 잘 맞습니다.