UUID는 중앙의 허락을 받지 않고 어디서나 만들 수 있는 128비트 식별자입니다. 그래서 데이터베이스 키, 요청 식별자, 파일 이름, 중복 방지 토큰으로 두루 쓰입니다. 이 도구는 오늘날 쓸 만한 두 버전을 대량으로 만들어 줍니다. 완전히 무작위인 v4와, 앞부분에 시각을 담아 만든 순서대로 정렬되는 v7입니다. v7은 데이터베이스 기본 키로 쓸 때 이점이 뚜렷합니다. 무작위 값은 인덱스 여기저기에 흩어져 쓰이기 때문입니다. 난수는 브라우저의 암호용 생성기에서 나오고 어디로도 보내지 않으므로, 만든 값은 오직 당신의 것입니다.
그렇습니다. 브라우저의 암호학적으로 안전한 난수 생성기가 페이지 안에서 만듭니다. 서버에 요청하지도, 서버로 알리지도 않으므로 만든 값을 다른 누구도 본 적이 없습니다.
이론상으로는 가능하지만 현실에서는 아닙니다. v4에는 122비트의 무작위가 들어갑니다. 충돌이 생길 만해지려면 수십 년 동안 초당 수십억 개를 만들어야 합니다. 고유하다고 믿고 써도 됩니다.
식별자가 데이터베이스 기본 키가 될 때입니다. v7은 앞에 밀리초 단위 시각이 오므로 새 행이 인덱스 안에서 서로 가까이 놓이고, 그 덕에 삽입이 빠르고 인덱스가 조밀하게 유지됩니다. 값이 아무것도 드러내면 안 되는 자리에는 v4를 쓰세요. v7은 대략 언제 만들어졌는지를 알려 주기 때문입니다.
v4는 추측하기 어려울 만큼 무작위라 주소에 넣는 불투명한 식별자로는 쓸 수 있습니다. 다만 인증 체계가 발급하는, 더 길고 목적에 맞게 설계된 세션 토큰이나 API 키를 대신하지는 못합니다.
버전 1은 기기의 MAC 주소를 담아 어디서 만들었는지가 새어 나갑니다. 버전 3과 5는 이름을 해시한 것이라, 같은 입력이 늘 같은 식별자가 되어야 할 때만 쓸모가 있습니다. 일반적인 용도라면 v4와 v7 둘 중에서 고르면 됩니다.