생활
UUID v7은 v4와 달리 무제한으로 사용 가능한가요?
안녕하세요. UUID v7을 프로젝트에 도입하고자 고민 중에 있습니다. UUID v7은 48비트의 타임스탬프가 기록되잖아요, 그러면 사실상 무제한인 것이죠? 대충 계산해봐도 1,000년은 넘게 사용할 수 있을 것 같은데요.
55글자 더 채워주세요.
1개의 답변이 있어요!
UUIDv7은 48비트 타임스탬프를 사용해서 2^48개의 시간값을 표현할수 있답니다..
1밀리초 단위로 시간을 기록하는데 이걸 계산해보면
대략 8925년정도 사용할수 있어요
그런데 여기서 중요한 점은 타임스탬프 뿐만 아니라 랜덤값도 같이 들어간다는 거에요
같은 밀리초 내에서도 74비트의 랜덤값이 들어가서 초당 수백만개의 UUID를 만들 수 있구요
실제로 초당 약 1억개 정도의 고유한 ID 생성이 가능하다고 하네요
v4는 완전 랜덤값이라 충돌 가능성이 있었는데 v7은 시간 정보가 들어가서 그런 걱정이 훨씬 적답니다
게다가 시간순으로 정렬도 가능해서 데이터베이스 인덱싱에도 유리하구요
그래서 실용적인 관점에서는 v7을 무제한이라고 봐도 무방할 것 같아요
다만 2^48 밀리초가 지나면 타임스탬프가 다시 0으로 돌아가니까 아주 먼 미래까지 고려하면
이 부분은 감안하셔야 할 것 같네요
근데 9천년 후의 시스템 호환성까지 걱정하실 필요는 없을 것 같아요,,ㅎㅎ