본문 바로가기
이론/CS

UUID 버전 별 차이점

by 김짜이상 2023. 9. 21.

UUID 란? 

UUID (universally unique identifiers : 범용 고유 식별자) 는 컴퓨터 시스템에서 개체를 고유하게 식별하는 데 사용되는 128비트 값입니다. 각각 고유한 특성을 가진 7가지 버전의 UUID가 있습니다.

 

Version1

  •  현재 시간, 네트워크 인터페이스의 MAC 주소, 랜덤 번호를 사용하여 생성되며, 이는 UUID가 생성된 시기와 위치를 추적하는 데 유용하지만, 전 세계적으로 고유한 것이 보장되지 않는다는 것을 의미합니다

Version2

  • 버전 1 UUID와 비슷하지만 UUID를 생성한 프로세스의 프로세스 ID도 포함합니다. 이를 통해 UUID는 더욱 구체적이지만 전 세계적으로 고유하지 않을 가능성이 더욱 낮아집니다.

Version3

  • 이름과 네임스페이스의 해시를 사용하여 생성됩니다. 이를 통해 알려진 이름을 가진 개체를 추적하는 데 유용할 뿐만 아니라 같은 이름을 여러 네임스페이스에서 사용하는 경우 전체적으로 고유하지 않다는 보장을 받을 수 있습니다.

Version4

  • 무작위로 생성되며, 이는 UUID가 전 세계적으로 고유할 가능성이 가장 높지만, 언제 또는 어디서 생성되었는지 추적하는 것이 불가능하다는 것을 의미합니다.

Version5

  • 버전 3 UUID와 비슷하지만 MD5 해시 대신 SHA-1 해시를 사용합니다. 이로 인해 충돌에 대한 저항성이 높아지지만 생성 속도가 느려지기도 합니다

Version6

  • 타임스탬프와 랜덤 숫자를 사용하여 생성됩니다. 이는 버전 1 UUID와 유사하지만 네트워크 인터페이스의 MAC 주소를 포함하지 않습니다. 이는 버전 6 UUID를 보다 개인적으로 만들지만 전체적으로 고유하지 않을 가능성을 낮춥니다.

Version7

  • 유닉스 타임스탬프를 사용하여 생성되며, 이는 UUID를 가장 간결한 형태로 만들지만, 전 세계적으로 UUID가 유일할 가능성을 가장 낮춥니다.

어떤 UUID 를 사용해야 할까?

UUID를 사용하는 가장 좋은 버전은 특정한 필요에 따라 다릅니다. UUID가 전역적으로 고유해야 하고 언제 어디서 생성되었는지 추적할 필요가 없다면 버전 4가 가장 좋은 선택입니다. UUID가 언제 어디서 생성되었는지 추적해야 한다면 버전 1이나 6이 더 나은 선택일 수 있습니다. 이름이 알려진 개체를 추적해야 한다면 버전 3이나 5가 더 나은 선택일 수 있습니다.

 

버전 별 UUID 사용 예시

  • Version 1: 사용자 계정 생성 시점 추적, 데이터베이스 레코드에 대한 고유 식별자 생성, 파일이 마지막으로 수정된 시점 추적.
  • Version 2: 분산 시스템에 대한 고유 식별자 생성, 마이크로서비스 아키텍처에서 요청의 출처 추적.
  • Version 3: 소셜 네트워크에서 사용자를 위한 고유 식별자 생성, 뉴스 기사의 인용 출처 추적.
  • Version 4: 세션 토큰에 대한 고유 식별자 생성, 온라인 광고에서 클릭의 출처 추적.
  • Version 5: 전자상거래 상점에서 상품 고유 식별자 생성, 리뷰 사이트에서 리뷰 출처 추적.
  • Version 6: 익명 사용자를 위한 고유 식별자 생성, 개인정보 보호가 중요한 분산 시스템에서 요청의 출처 추적.
  • Version 7 : 채팅방의 메시지 등 수명이 짧은 객체에 대한 고유 식별자 생성.

결론

UUID는 고유 식별자를 생성하기 위한 강력한 도구입니다. UUID 버전을 선택할 때 고유성, 개인 정보 보호, 성능 요소를 고려해야 합니다.

 


출처 : https://uuid6.github.io/uuid6-ietf-draft/ , Bard

반응형