Short UUID란?
Short UUID 표준 128비트 UUID를 더 짧고 URL 친화적인 문자열로 압축하는 기술입니다. 일반적으로 다음을 포함합니다:
- 진법 변환: UUID를 16진수(base-16)에서 더 높은 진법(보통 base-58 또는 base-62)으로 변환
- 문자 집합 선택: 혼동을 피한 URL 안전 문자 집합 사용
- 무손실 압축: 원본 UUID의 모든 정보를 보존
변환 예시:
- 표준 UUID:
f47ac10b-58cc-4372-a567-0e02b2c3d479
- Short UUID (base-58):
표준 UUID에서 하이픈 제거
Short UUID 작동 방식
- 10진수를 더 높은 진법(58, 62, 64 등)으로 변환
- 결과 32자 16진수 문자열을 10진수로 변환
- 일관된 길이를 위해 필요 시 결과에 패딩 추가
- 일반적인 인코딩 알파벳에는 다음이 포함됩니다:
: 혼동 없는 영숫자 문자(0, O, I, l 제외)
- Base-58: 모든 영숫자 문자(a-z, A-Z, 0-9)
- Base-62: 영숫자와 두 개의 특수 문자(주로 + 및 /)
- Base-64장점 및 고려사항
URL 친화적 형식
Advantages | Considerations |
---|---|
|
|
길이 비교
Format | Length | 문자 집합 | Example |
---|---|---|---|
36자 | 16진수 + 하이픈 | f47ac10b-58cc-4372-a567-0e02b2c3d479 | f47ac10b-58cc-4372-a567-0e02b2c3d479 |
32자 | 0-9, a-f | f47ac10b58cc4372a5670e02b2c3d479 | 0, O, I, l 없음 |
Base-58 | 22자 | 2kLrTdCQVWFjc7dYXzzB5A | 표준 UUID에서 하이픈 제거 |
Base-62 | ~22자 | Alphanumeric | ~22자 |
Base-64 | ~22자 | 9HrBC1jMQ3KlZw4CssPUeQ== | Base-58 알파벳은 고정폭 및 비례폭 글꼴 모두에서 시각적으로 혼동되지 않도록 설계되었습니다: |
일반적인 Base-58 알파벳
문자 집합
1-9 (0 제외) | Content |
---|---|
Numbers | 대문자 |
A-Z (I, O 제외) | 소문자 |
a-z (l 제외) | 문자: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz |
일반적인 사용 사례
URL 단축
- : 더 간결한 URL 매개변수공개 ID
- : 사용자 또는 콘텐츠 식별자QR 코드 최적화
- : 문자 수 감소 = 코드 단순화: 데이터 전송 감소
- 모바일 애플리케이션API 설계
- : 더 깔끔하고 간결한 리소스 식별자소셜 공유
- 자주 묻는 질문: 더 사용자 친화적인 링크
Short UUID는 표준 UUID만큼 고유한가요?
예. Short UUID는 동일한 128비트 값을 다른 방식으로 표현한 것입니다. 변환은 무손실이며 표준 UUID의 고유성 속성을 모두 보존합니다.
표준 UUID와 Short UUID 형식 간에 변환할 수 있나요?
예. 변환은 양방향이며, 표준 UUID를 Short UUID로 인코딩하고 다시 동일한 표준 UUID로 디코딩할 수 있습니다.
어떤 진법 인코딩이 가장 권장되나요?
Base-58은 혼동되는 문자(0/O 및 l/I)를 피하면서 URL 안전성을 유지하여 URL 인코딩이 필요 없기 때문에 자주 선호됩니다.
Short UUID는 얼마나 짧아지나요?
표준 UUID는 36자(하이픈 포함)이며, Short UUID는 보통 base-58/62/64 인코딩 시 약 22자로 약 40% 줄어듭니다.
Short UUID를 데이터베이스에 저장해야 하나요?
일반적으로 데이터베이스에는 표준 UUID 형식을 저장하고, 사용자에게 표시하거나 URL에 사용할 때만 Short UUID로 변환하는 것이 권장됩니다. 이는 데이터베이스 UUID 유형과의 호환성을 높입니다.
short-uuid - JavaScript 라이브러리