UUID 버전은 1,3,4,5가 있다. 이중 가장 많이 쓰이는 버전은 1버전과 4버전이다.
1버전같은 경우 , 타임스탬프를 기준으로 생성된다.(호스트 ID , 시퀀스 번호 및 현재 시각으로 UUID 발급)
4버전은 랜덤 생성 (무작위 UUID 생성) 이라고 생각하면 된다.
주로 1버전 보다는 4버전을 많이 사용한다.
그이유는 1버전 같은 경우엔 호스트ID를 가지고 발급이 이루어 지기 때문에 어떻게 해서든 유출 가능성이 있어 랜덤생성으로 UUID를 발급받아 보안성을 높은것으로 추측이 된다.
https://www.uuidgenerator.net/dev-corner/typescript
import {v4 as uuidv4} from 'uuid';
let myuuid = uuidv4();
console.out('Your UUID is: ' + myuuid);
// Your UUID is: 8a6e0804-2bd0-4672-b79d-d97027f9071a
이부분은 저의 생각입니다.
보통 primary key
를 id 로 해서 auto_increment
로 설정할 때가 많다.
https://stackoverflow.com/questions/29686346/databases-string-as-primary-key
아무래도 string
보다 id
로 primay key 많이하게 된다. 그이유는
👆 위 링크에 나와있다. ( 제 생각 )
하지만 primary key
로 string
할때가 있는데 그중에서 UUID
로 설정할때가 있다.
어떠한 전체 도메인에서 UUID
를 쓴다는것은 그만큼 전체 도메인
의 고유한 아이디가 될수 있어서 보안에 신경을 덜 쓰게 된다.
즉 UUID
사용함으로써 보안에 신경을 덜 쓰게 되기때문에 UUID
로 식별하게 되는것 같다.
UUID 표준에 따라 이름을 부여하게 되면 uniqueness 를 완벽하게 보장할 수는 없지만 실제 사용상에서는 중복될 가능성이 거의 없다고 보기때문에 많이 사용하고있다.
UUID
갯수는 약 10의 38제곱 , 340간이다.
기존 int id 는 1부터 생성되는데 UUID
를 사용하게 된다면 id가 겹칠일이 거의 없다고 보면 된다.