UUID · 짧은 ID 만들기
UUID를 한 번에 여러 개 만듭니다. v4는 완전 난수라 만든 순서를 알 수 없고, v7은 앞부분이 시각이라 만든 순서대로 정렬됩니다. 데이터베이스 기본키로 쓸 것이라면 v7 쪽이 인덱스에 유리합니다.
만든 순서대로 정렬됩니다
개수
브라우저에서 만듭니다. 서버를 거치지 않으므로 같은 값이 다른 사람에게 갔을 걱정이 없습니다. 난수는 crypto.getRandomValues 를 씁니다.
자주 묻는 질문
v4와 v7 중 무엇을 쓸까요?
기본키로 쓸 것이라면 v7입니다. v4는 완전 난수라 새 값이 인덱스 여기저기에 흩어져 쓰기 성능이 떨어집니다. v7은 앞 48비트가 밀리초 시각이라 뒤에 차곡차곡 쌓입니다. 다만 만든 시각이 값에 드러나므로, 그것이 곤란한 자리라면 v4를 쓰세요.
한 번에 여러 개 만들면 순서가 섞이지 않나요?
섞이지 않습니다. 같은 밀리초 안에서도 순서를 지키도록 12비트 counter를 두었습니다. 시각만으로 만들면 한꺼번에 뽑은 것들이 전부 같은 밀리초라 뒤쪽 난수로 뒤섞이는데, 그러면 v7을 쓰는 이유가 없어집니다.
붙여넣은 코드가 서버로 가나요?
가지 않습니다. 브라우저 안에서만 처리하고 어디에도 보내거나 저장하지 않습니다. 사내 설정 파일이나 운영 쿼리처럼 밖으로 내보내기 곤란한 것도 그래서 쓸 수 있습니다. 인터넷을 끊고도 동작합니다.