[TIL] Thymeleaf, UUID 버전별 특징
in TIL on Til
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 버전별 특징
버전 | 이름 | 생성 방식 | 특징/사용처 |
---|---|---|---|
v1 | Time-based | 시간 + MAC 주소 | 시간 순 정렬 가능, MAC 노출 위험 있음 |
v2 | DCE Security | 시간 + POSIX UID/GID | 거의 사용되지 않음 |
v3 | Name-based | 이름 + 네임스페이스 → MD5 해시 | 정해진 입력 → 같은 UUID 생성 (고정됨) |
v4 | Random | 완전 무작위(Random) | 가장 널리 사용됨, 중복 가능성 매우 낮음 |
v5 | Name-based | 이름 + 네임스페이스 → SHA-1 해시 | v3과 유사하지만 더 강력한 해시 알고리즘 사용 |
v6 | Reordered Time | 시간 기반 (v1 개량) | 시간 정렬에 최적화됨, 일부 DB에서 유리 |
v7 | Unix Epoch-based | Unix 타임스탬프 + 랜덤 | 시간 정렬 최적화, 대체로 최신 시스템 지향 |
v8 | Custom | 사용자 정의 (custom layout) | 실험적, 규격 자체만 정의됨 |
✅ 현재까지 정의된 UUID 버전: v1 ~ v8
- v4는 Spring, Java의 UUID 클래스, Python 등에서도 기본으로 많이 쓰임.
- v7은 최근 표준화가 완료되어서 MySQL, PostgreSQL 같은 DB나 NoSQL 쪽에서 주목받고 있다 (정렬 최적화 + 충돌 방지 효과).
- v6~v8은 아직 도입 초기 단계지만, 이미 일부 라이브러리에서 지원 중
✨ 버전 선택 팁
목적 | 추천 버전 |
---|---|
완전 랜덤 고유 ID | v4 (UUID.randomUUID()) |
시간 순 정렬이 필요한 DB 키 | v7 또는 v6 |
특정 값에 따라 고정된 UUID | v3/v5 |
네트워크 환경에서 시간 기반 생성 | v1 (단, MAC 노출 주의) |