형식 변환 개요
UUID 형식은 상황마다 다르게 요구됩니다. SQL에는 소문자에 하이픈이 붙은 형태를, .NET 설정 파일에는 중괄호를, URL에는 하이픈 없는 형태나 Base64url을 넣어야 합니다.
이 도구는 값을 한 번 넣으면 원하는 표기법으로 바꿔 줍니다. 32자리 16진수만 있어도 버전과 하이픈 위치는 규칙으로 정해지므로 정확히 복원됩니다.
사용 방법
- 변환할 값을 한 줄에 하나씩 붙여넣습니다. 최대 200줄입니다.
- 출력 형식에서 원하는 표기를 고릅니다.
- 변환을 누르면 결과가 바로 나옵니다.
- UUID가 아닌 줄은 건너뛰고 개수를 알려줍니다.
사용 사례
- SQL 삽입문에 넣을
::uuid리터럴 만들기. - C# 소스에 붙일 바이트 배열 표기 만들기.
- URL이나 파일 이름에 쓸 짧은 형식으로 줄이기.
구조
버전과 변형 자리는 값에 이미 들어 있으므로 변환해도 그대로 유지됩니다. 하이픈을 떼었다 붙여도 원래 값으로 정확히 복원됩니다.
형식 변환의 역할
| 옵션 | 사용 시점 |
|---|---|
형식 변환 | 9가지 표기법을 한 번에 |
검증 | 값이 규격에 맞는지 먼저 확인 |
UUID v4 | 새 값을 만들 때 |
UUID 버전 한눈에 보기
| 버전 | 정렬 가능 | 값의 출처 | 적합한 용도 |
|---|---|---|---|
| v1 | 불가능 | 타임스탬프 + MAC 주소 | v1을 계속 쓰는 기존 시스템 |
| v3 | 불가능 | 이름의 MD5 해시 | MD5를 꼭 써야 하는 결정적 식별자 |
| v4 | 불가능 | 122비트 난수 | 대부분의 일반적인 고유 식별자 |
| v5 | 불가능 | 이름의 SHA-1 해시 | 같은 이름에서 항상 같은 식별자가 필요할 때 |
| v6 | 가능 | 재배열한 타임스탬프 | 난수성과 정렬을 함께 원할 때 |
| v7 | 가능 | 밀리초 단위 Unix 시간 | 데이터베이스 기본 키와 이벤트 식별자 |
| v8 | 불가능 | 사용자 정의 비트 레이아웃 | 사내 형식과 실험적 용도 |
일곱 버전 모두 128비트이고, 모두 같은 8-4-4-4-12 표기법으로 표현합니다. 차이는 각 비트가 무엇을 담는지뿐입니다.
코드 예제
javascript
const hex = id.replace(/-/g, '');
const upper = hex.toUpperCase();
const braces = `{${id}}`;
python
import uuid, base64
u = uuid.UUID(value)
short = base64.urlsafe_b64encode(u.bytes).rstrip(b'=').decode()
java
String hex = value.replace("-", "");
String upper = hex.toUpperCase();
csharp
var g = Guid.Parse(value);
var bytes = g.ToByteArray();
sql
-- PostgreSQL 13+
SELECT replace(value::text, '-', '') AS hex;
자주 묻는 질문
하이픈 없는 값도 변환되나요?
됩니다. 32자리 16진수만 있으면 하이픈 위치가 규칙으로 정해져 있어 정확히 복원됩니다.
Base64url은 왜 22자인가요?
128비트는 16바이트이고, 이를 Base64로 인코딩하면 패딩을 뺀 22자가 됩니다. URL에 안전하게 넣을 수 있습니다.
변환하면 값이 달라지나요?
아닙니다. 표기만 바뀌고 값 자체는 같습니다. 어떤 형식으로 바꿔도 원래 UUID로 되돌릴 수 있습니다.