Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 무작위 문자와 숫자를 생성하는 방법

JavaScript에서 무작위 문자와 숫자 생성하기

JavaScript에서 숫자와 영문 대소문자가 섞인 무작위 문자열을 만들고 싶다면 Math.random() 메서드를 활용하면 간단하게 구현할 수 있습니다. 이번 글에서는 원하는 길이만큼 랜덤 문자열을 생성하는 함수를 단계별로 살펴보겠습니다.

1단계: 사용할 문자 집합 정의

먼저 랜덤 생성에 사용할 문자와 숫자들을 하나의 문자열로 저장합니다.

var storedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

위 문자열에는 숫자(0~9), 소문자(a~z), 대문자(A~Z)가 모두 포함되어 있어 총 62개의 문자 중에서 무작위로 선택하게 됩니다.

2단계: 랜덤 문자열 생성 함수 작성

다음으로 Math.random()charAt() 메서드를 조합하여 원하는 길이의 랜덤 문자열을 생성하는 함수를 작성합니다.

예제 코드

function generateRandom3Characters(size) {
    var generatedOutput = '';
    var storedCharacters =
    '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var totalCharacterSize = storedCharacters.length;
    for ( var index = 0; index < size; index++ ) {
        generatedOutput += storedCharacters.charAt(Math.floor(Math.random() *
        totalCharacterSize));
    }
    return generatedOutput;
}
console.log(generateRandom3Characters(3));

코드 동작 원리:

  • storedCharacters.length로 전체 문자 개수(62)를 구합니다.
  • Math.random()은 0 이상 1 미만의 난수를 반환하므로, 여기에 전체 문자 수를 곱하고 Math.floor()로 정수화하면 유효한 인덱스 범위 내의 값이 나옵니다.
  • charAt()으로 해당 인덱스의 문자를 추출하여 결과 문자열에 이어 붙입니다.
  • 반복문이 매개변수 size로 지정한 횟수만큼 실행되며, 최종적으로 그 길이의 랜덤 문자열이 반환됩니다.

3단계: 프로그램 실행하기

Node.js 환경에서 위 프로그램을 실행하려면 다음 명령어를 사용합니다.

node fileName.js

실행 결과

여기서는 파일 이름을 demo136.js로 지정했습니다. 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\JavaScript-code> node demo136.js
lq4

매번 실행할 때마다 'lq4'처럼 서로 다른 3자리 랜덤 문자열이 출력됩니다. 함수 호출 시 인자 값을 변경하면 원하는 길이의 랜덤 문자열도 손쉽게 생성할 수 있습니다.

참고: 보안이 중요한 경우

Math.random()은 암호학적으로 안전한 난수가 아니므로, 비밀번호 재설정 토큰이나 인증 코드처럼 보안이 중요한 용도라면 crypto.getRandomValues() 또는 Node.js의 crypto.randomBytes()를 사용하는 것이 좋습니다.