← 모든 도구

UUID 생성기 (v4 GUID)

브라우저에서 무작위 v4 UUID(GUID)를 즉시 생성하세요. 128비트 UUID란 무엇인지, 버전 차이·충돌 확률·사용 시기를 알아보세요.

UUID란 무엇인가

UUID는 Universally Unique Identifier(범용 고유 식별자)의 약자로, 누구의 허락 없이도 무언가에 레이블을 붙이는 데 사용하는 128비트 값입니다. GUID, 즉 Globally Unique Identifier(전역 고유 식별자)라고도 불리는데, 이는 Microsoft가 Windows와 .NET 세계에서 같은 개념에 붙인 이름일 뿐입니다. 두 용어는 거의 모든 실제 상황에서 동일한 128비트 숫자를 가리키므로, 동료가 GUID라고 하고 당신이 UUID라고 해도 거의 항상 같은 것을 말하는 것입니다.

이 128비트는 보통 32개의 16진수로 표현되며, 하이픈으로 8-4-4-12 패턴의 다섯 그룹으로 나뉩니다. 일반적인 값은 123e4567-e89b-12d3-a456-426614174000처럼 보입니다. 하이픈 자체는 아무 의미가 없습니다. 사람이 값을 읽을 때 자리를 잃지 않도록 존재하는 것뿐입니다. 모든 문자는 0부터 f까지의 16진수 숫자이므로, UUID는 내부적으로는 단지 하나의 매우 큰 정수임에도 일반적인 숫자보다 더 촘촘하게 느껴집니다.

어두운 남색 배경에 고유한 128비트 식별자를 나타내는 추상적인 빛나는 16진수 토큰
UUID는 32개의 16진수를 5개의 하이픈 그룹으로 작성한 하나의 128비트 숫자입니다.

버전과 v4가 선호되는 이유

표준은 여러 버전을 정의하며, 비트를 채우는 방식이 다릅니다. 버전 1은 시간 기반입니다. 현재 타임스탬프와 기기의 네트워크 MAC 주소를 엮어서 만듭니다. 이 때문에 v1 값은 생성 시간 순으로 정렬이 가능하지만, 언제 어디서 만들어졌는지 정보를 노출하는 단점도 있습니다. 버전 3과 5는 이름 기반으로, 네임스페이스와 이름을 해싱하여 동일한 입력이 항상 동일한 식별자를 생성합니다.

버전 4는 완전히 다른 방식을 취합니다. 거의 순수한 무작위성입니다. 128비트 중 6비트는 버전과 변형을 표시하는 데 예약되어 있고, 나머지 122비트는 무작위 데이터로 채워집니다. 타임스탬프도, MAC 주소도, 네임스페이스도 없습니다. 순수한 노이즈입니다. 그것이 바로 이 도구를 포함한 대부분의 생성기가 기본으로 v4를 생성하는 이유입니다. 기기나 생성 시점에 대한 정보를 전혀 노출하지 않으며, 만드는 주체 간의 조율이 필요 없습니다. 이 페이지의 도구는 브라우저에서만 실행되므로 무작위 값이 사용자의 기기를 절대 벗어나지 않습니다.

충돌이 실제로 얼마나 불가능한가

합리적인 우려는 두 개의 무작위 UUID가 언젠가 동일할 수 있다는 것입니다. 122개의 무작위 비트를 가진 v4 값의 가능한 공간은 2의 122제곱으로, 약 36개의 0이 따라오는 5.3입니다. 사람이 이해할 수 있는 말로 하자면, 단 하나의 중복 확률이 측정 가능한 수준에 도달하려면 수십 년 동안 매 초마다 수십억 개의 UUID를 생성해야 합니다. 표준 자체는 충돌 가능성을 무시해도 될 만큼 제로에 가깝다고 설명합니다. 실제로 팀들은 v4를 고유한 것으로 취급하고 넘어갑니다. 그것은 올바른 판단입니다.

광활한 어두운 공간에 중복 없이 떠 있는 수많은 고유한 빛나는 키, 청록색과 금색 포인트
가능한 v4 값의 공간이 워낙 방대하여 충돌은 사실상 불가능합니다.

개발자들이 UUID를 사용하는 곳

고유성이 중앙 권한을 필요로 하지 않기 때문에 UUID는 조율이 비싸거나 불가능한 곳에서 빛을 발합니다. 특히 여러 서비스가 각각 행을 삽입하고 다음 번호를 공유 카운터에 물어볼 여유가 없을 때, 데이터베이스 기본 키에 자연스럽게 맞습니다. 분산 시스템에서는 지구 반대편의 두 노드가 같은 순간에 충돌 없이 식별자를 생성할 수 있습니다. 또한 API 멱등성 키에도 사용됩니다. 클라이언트가 요청에 UUID를 붙여 서버가 네트워크 재시도 시 중복을 안전하게 무시할 수 있게 합니다. 세션 토큰, 파일 이름, 이벤트 ID, 메시지 키도 모두 같은 특성에 의존합니다.

UUID와 자동 증가 ID 비교

고전적인 대안은 자동 증가 정수입니다. 1, 2, 3 이런 식으로요. 순차 ID는 작고, 자연스럽게 정렬되며, 읽기 쉽습니다. 하지만 실질적인 단점도 있습니다. 레코드 수를 노출하고 외부에서 인접한 값을 추측할 수 있게 하며, 모든 삽입이 단일 카운터를 통과하도록 강제하므로 데이터베이스를 샤딩하거나 여러 소스의 데이터를 병합할 때 병목이 됩니다. UUID는 어느 주체든 독립적으로 키를 생성하고 볼륨이나 순서에 대한 정보를 노출하지 않아 이 문제들을 해결합니다. 절충점은 크기와 인덱스의 약간 낮은 지역성입니다. 확장 가능한 시스템이나 내부를 숨겨야 하는 시스템에서는 대개 그 절충이 가치 있습니다. 모든 생성기 컬렉션이나 관련 빌딩 블록을 위한 더 넓은 개발자 도구 모음에서 이것과 유사한 유틸리티를 탐색할 수 있습니다.

자주 묻는 질문

GUID와 UUID는 같은 건가요?

일상적인 용도에서는 그렇습니다. GUID는 Microsoft가 동일한 128비트 식별자에 붙인 이름입니다. 유일한 실질적 차이는 일부 Windows 시스템의 원시 바이너리 형태에서 바이트 순서이며, 문자열 형태에서는 동일하고 호환됩니다.

이 도구는 어떤 UUID 버전을 생성하나요?

무작위 변형인 버전 4를 생성합니다. 128비트 중 122비트가 무작위 데이터로 채워지므로, 각 값이 반복될 가능성이 극히 낮고 타임스탬프나 기기 정보를 담지 않습니다.

두 UUID가 같아질 수 있나요?

이론적으로 확률이 정확히 0은 아니지만, 약 5.3 x 10의 36제곱 가능한 v4 값을 가지고 있어 무시할 수 있을 정도로 작습니다. 충돌이 일어날 가능성이 생기려면 천문학적인 수의 UUID를 생성해야 합니다.

자동 증가 숫자 대신 UUID를 사용하는 이유는 무엇인가요?

UUID는 공유 카운터 없이 어떤 서비스든 독립적으로 생성할 수 있고, 레코드 수나 순서를 노출하지 않으며, 여러 소스의 데이터를 병합할 때 편합니다. 자동 증가 ID는 더 작지만 규모에서 병목이 되고 정보를 노출합니다.

UUID가 서버에서 생성되나요?

아니요. 이 도구는 브라우저에서만 실행되므로 무작위 값이 로컬에서 생성되며 어디에도 전송되지 않습니다. 비공개로 유지하려는 키와 토큰에 안전하게 사용할 수 있습니다.

하이픈 패턴은 무슨 의미인가요?

8-4-4-4-12 그룹화는 단순히 가독성을 위한 관례입니다. 하이픈은 데이터를 담지 않습니다. 32개의 16진수를 청크로 나눠 사람들이 값을 보고 비교하기 더 쉽게 해 줍니다.