[TIL] Thymeleaf, UUID 버전별 특징

2025-04-09 TIL

📝 TIL (Today I Learned)
🔗 원본 이슈: #39
📅 작성일: 2025-04-09
🔄 최종 수정: 2025년 04월 09일


🍀 새롭게 배운 것

  • Thymeleaf
    • HTML에서 동적 바인딩을 지원하는 Thymeleaf에 대해 알아봤다.
    • 블로그 정리
  • UUID 버전별 특징

🔍 UUID란?

UUID(Universally Unique Identifier)는 전 세계에서 중복되지 않도록 고안된 고유 식별자 보통 이런 형식으로 생겼다:

550e8400-e29b-41d4-a716-446655440000

총 128비트(16바이트) → 보통 문자열로는 36자 (하이픈 포함)

여기서 41d4에서 4가 UUID의 버전(version)을 의미


🧬 UUID 버전별 특징

버전이름생성 방식특징/사용처
v1Time-based시간 + MAC 주소시간 순 정렬 가능, MAC 노출 위험 있음
v2DCE Security시간 + POSIX UID/GID거의 사용되지 않음
v3Name-based이름 + 네임스페이스 → MD5 해시정해진 입력 → 같은 UUID 생성 (고정됨)
v4Random완전 무작위(Random)가장 널리 사용됨, 중복 가능성 매우 낮음
v5Name-based이름 + 네임스페이스 → SHA-1 해시v3과 유사하지만 더 강력한 해시 알고리즘 사용
v6Reordered Time시간 기반 (v1 개량)시간 정렬에 최적화됨, 일부 DB에서 유리
v7Unix Epoch-basedUnix 타임스탬프 + 랜덤시간 정렬 최적화, 대체로 최신 시스템 지향
v8Custom사용자 정의 (custom layout)실험적, 규격 자체만 정의됨

✅ 현재까지 정의된 UUID 버전: v1 ~ v8

  • v4Spring, Java의 UUID 클래스, Python 등에서도 기본으로 많이 쓰임.
  • v7은 최근 표준화가 완료되어서 MySQL, PostgreSQL 같은 DB나 NoSQL 쪽에서 주목받고 있다 (정렬 최적화 + 충돌 방지 효과).
  • v6~v8은 아직 도입 초기 단계지만, 이미 일부 라이브러리에서 지원 중

✨ 버전 선택 팁

목적추천 버전
완전 랜덤 고유 IDv4 (UUID.randomUUID())
시간 순 정렬이 필요한 DB 키v7 또는 v6
특정 값에 따라 고정된 UUIDv3/v5
네트워크 환경에서 시간 기반 생성v1 (단, MAC 노출 주의)