JavaScript에서 무작위 문자열이나 문자를 생성하려면 Math.random() 메서드를 활용하면 됩니다. 이 메서드는 0 이상 1 미만의 난수를 반환하기 때문에, 문자열 인덱스와 조합하면 원하는 길이의 랜덤 문자열을 쉽게 만들 수 있습니다.
사용할 문자 집합
아래 예제에서는 다음 문자 집합으로부터 총 6개의 무작위 문자를 생성합니다.
'ABCDEFGHIJKLMNOabcdefghijklmnopqrstuvwxyzPQRSTUVWXYZ';
예제 코드
다음은 지정한 개수만큼 무작위 문자를 생성하는 함수입니다.
function generateRandomNumber(numberOfCharacters) {
var randomValues = '';
var stringValues = 'ABCDEFGHIJKLMNOabcdefghijklmnopqrstuvwxyzPQRSTUVWXYZ';
var sizeOfCharacter = stringValues.length;
for (var i = 0; i < numberOfCharacters; i++) {
randomValues = randomValues + stringValues.charAt(Math.floor(Math.random() * sizeOfCharacter));
}
return randomValues;
}
console.log(generateRandomNumber(6));코드 동작 원리
Math.random()은 0과 1 사이의 소수 값을 반환합니다. 여기에 문자열 전체 길이(sizeOfCharacter)를 곱한 후 Math.floor()로 내림 처리하면, 문자열 인덱스 범위에 해당하는 정수가 만들어집니다. 이 정수를 charAt()에 전달해 해당 위치의 문자를 추출하고, 반복문을 통해 원하는 개수만큼 이어 붙이면 최종적인 무작위 문자열이 완성됩니다.
프로그램 실행 방법
위 코드를 실행하려면 Node.js 환경에서 아래 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름을 demo270.js로 저장했다고 가정합니다.
출력 결과
실행하면 콘솔에 다음과 같이 6자리 무작위 문자열이 출력됩니다. 실행할 때마다 결과는 달라집니다.
PS C:\Users\Amit\javascript-code> node demo270.js qIcoCT
참고 사항
숫자나 특수문자를 포함한 더 다양한 무작위 문자열이 필요하다면 stringValues 변수에 '0123456789'나 기호 문자들을 추가하기만 하면 됩니다. 또한 보안 목적(토큰, 비밀번호 생성 등)이라면 Math.random() 대신 암호학적으로 안전한 crypto.getRandomValues()를 사용하는 것이 좋습니다.