UUID란 무엇인가요?
UUID(Universally Unique Identifier, 범용 고유 식별자)는 GUID라고도 불리며, 중앙 관리 기관 없이도 컴퓨터 시스템에서 정보를 고유하게 식별하기 위해 사용하는 128비트 값입니다. 이 도구는 거의 전적으로 난수로 만들어지는 버전 4 UUID를 생성합니다. 122비트의 난수를 사용하기 때문에 생성된 두 UUID가 겹칠 확률은 사실상 0에 가까워, 전 세계적으로 고유한 값으로 취급됩니다. UUID는 특정 언어나 플랫폼에 종속되지 않는 국제 표준(RFC 4122)입니다.
생성기 사용 방법
필요한 UUID 개수(1~50개)를 정하고, 소문자 또는 대문자 출력을 선택한 뒤, 표준 하이픈을 포함할지 여부를 결정하세요. 계산 버튼을 누르고 결과를 복사하면 됩니다. UUID는 자동 증가 카운터에 의존할 수 없는 환경에서 특히 유용합니다. 데이터베이스 기본 키, API 요청 ID, 파일 이름, 세션 토큰, 분산 시스템의 식별자 등 다양한 용도로 활용할 수 있습니다.
형식 자세히 보기
버전 4 UUID는 32자리 16진수를 하이픈으로 다섯 그룹으로 나누어 표기합니다. 그룹 길이는 8-4-4-4-12 형태이며, 예를 들어 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx와 같습니다. 여기서 4로 표시된 자리는 버전을 나타냅니다. y로 표시된 자리는 변형(variant)을 나타내며 반드시 8, 9, a, b 중 하나여야 합니다. 나머지 x는 모두 무작위 16진수입니다.
$$\text{UUID} = \underbrace{\texttt{xxxxxxxx}}_{8}\text{-}\underbrace{\texttt{xxxx}}_{4}\text{-}\underbrace{\texttt{4xxx}}_{4}\text{-}\underbrace{\texttt{Yxxx}}_{4}\text{-}\underbrace{\texttt{xxxxxxxxxxxx}}_{12}\quad\times\,\text{Count}$$
예제로 살펴보기
3f9a7c1e b204 1d88 9c33 a7f019be24c1과 같은 임의의 16진수 문자열이 있다고 가정해 봅시다. 이를 유효한 v4 UUID로 만들려면 13번째 자리를 4로, 17번째 자리를 변형 값으로 고정합니다. 그러면 예컨대 3f9a7c1e-b204-4d88-9c33-a7f019be24c1이 됩니다. 두 번째 하이픈 뒤의 4와 세 번째 하이픈 뒤의 9(유효한 변형 값)에 주목하세요.
자주 묻는 질문
이 UUID는 암호학적으로 안전한가요? 플랫폼의 의사 난수 소스로 생성되므로 일반적인 식별자 용도로는 충분합니다. 다만 높은 보안이 요구되는 비밀 값에는 전용 암호학적 난수 생성기를 사용하는 것이 좋습니다.
두 UUID가 같아질 수 있나요? 이론상으로는 가능하지만 그 확률은 무시할 수 있을 만큼 작습니다. 충돌이 실제로 일어나려면 수십 년 동안 초당 수십억 개씩 생성해야 할 정도입니다.
하이픈을 제거하면 값이 바뀌나요? 아닙니다. 하이픈은 단지 표기상의 편의일 뿐이며, 내부의 128비트 값은 동일합니다.