- 현실적인 확률내에서 유니크한 ID 생성
- 분산시스템에서의 유니크성 확보
- 심지어 클라이언트에서도 ID 생성가능
- 시간순서로 정렬(K-Order)이 되는지는 2차적인 목표
- https://tools.ietf.org/html/rfc4122
- 128bits (16bytes)
- 예)
dae22990-79c3-4d69-8d38-3dbe426e6b36
- 거의 완벽한 유니크성
- 플랫폼/언어에 관계없이 광범위하게 사용됨
- 시간에 대해 순차성이 없음
- 길이가 다소 김(대시제외하고 32글자)
- https://github.com/phatboyg/NewId
- 128bits (16bytes)
- 예)
11790000-cf25-b808-dc58-08d367322210
- GUID와 호환
- 시간순서로 정렬가능
- 길이가 다소 김(대시제외하고 32글자)
- 현재는 닷넷버전의 구현체밖에 없음
- 중복확률이 GUID보다 높음
- https://github.com/twitter/snowflake/releases/tag/snowflake-2010
- 64bits (8bytes)
- 예) 0x02308150ec000000
- 짧은 길이(16글자)
- long형과 호환(8bytes)
- 시간순서로 정렬가능
- 구현체가 많고 또한 구조가 단순하여 커스터마이징이 쉬움
- 중복확률이 NewId보다 높음(단, seed 설정에 따라서 다를수 있음)
- 구현에 어느정도 커스터마이징 필요