crypto.randomUUID()
crypto.randomUUID()
// '36eef6a2-e48c-4765-a800-ccb79c5ffa05';
Crypto 객체는 JavaScript에서 암호화와 관련된 기능을 지원하는 객체입니다.
crypto.randomUUID() 메서드는 함수명에서 알 수 있듯이 랜덤 한 UUID 값을 반환하는 메서드입니다.
첫 번째 코드
자바스크립트에서 랜덤한 값을 얻기 위해서는 Math.random() 메서드를 사용하여 얻을 수 있습니다.
하지만 해당 메서드를 이용하면 랜덤 한 숫자를 생성하지 문자를 만들지는 않습니다.
이때 사용하는 방법이 toString() 메서드를 이용하여 36진수로 표현하는 방법입니다.
첫 번째 코드
Math.random().toString(36).substring(2, 11);
랜덤한 숫자를 36진수로 바꾸면 앞에 2 문자가 0. 이 고정으로 나오게 됩니다.
해당 문자를 제거하기 위해 특정 부분을 자르는 substring() 메서드를 사용하여 해당 문제를 해결해줍니다.
두 번째 코드
그동안 겹치지 않는 문자를 생성하기 위해서는 다음과 같은 방법을 사용해 왔습니다.
Date 객체의 getTime() 메서드는 Date 객체의 시간을 밀리 초로 반환합니다.
// 현재의 날짜와 시간를 밀리초로 반환
new Date().getTime();
해당 메서드는 밀리초 (1초 = 1000밀리 초)로 반환되기에 겹치지 않습니다.
이를 위에서 사용한 방법을 응용하면 아래와 같이 사용할 수 있습니다.
// 현재 밀리초를 36진수로 표현
new Date().getTime().toString(36);
최종 코드
// 첫번째 코드
Math.random().toString(36).substring(2, 11);
// 두번째 코드
new Date().getTime().toString(36);
관련 있는 글
https://wezkit.com/random-text