javascript를 이용하기 위해서는 웹 브라우져를 이용해야 했는데 로컬 환경에서도 javascript를 이용하기 위해 만들어짐. 즉, javascript 런타임(환경)
npm = Node Package Manager 은 node.js 기반 환경에서 실행 되는 모듈을 관리하는 관리자이다. 다른 사람이 만들어 놓은 소스 코드를 무료로 가져 올 수 있다.
npm과 같은 역할을 하는 javascript 패키지 매니저로 페이스북이 만들었다.
//
function Token(count){
const result = String(Math.floor(Math.random() * (10 ** count))).padStart(count,"0")
//4라는 전달 인자가 count 즉, 매개변수로 넘겨져서 입력된 만큼의 자릿수의 숫자가 구해진다.
Token(4)
}
로직
1. 휴대폰 번호가 올바르게 (자릿수가 맞게) 입력 되었는지 확인
2. 인증 토큰의 길이를 입력 받은 숫자 크기로 생성
3. 핸드폰에 토큰 전송
// API 생성
function getPhoneToken(myphone, count) {
// 휴대폰번호 자릿수 맞는지 확인하기
if (myphone.length !== 10 && myphone.length !== 11) {
console.log("에러 발생 : 휴대폰 번호를 확인해주세요");
return;
}
// 토큰 6자리 만들기
if (count === undefined) {
console.log("에러 발생 : 숫자를 입력해주세요");
return;
} else if (count <= 0) {
console.log("에러 발생 : 양수를 입력해주세요");
return;
} else if (count > 10) {
console.log("에러 발생 : 10 아래의 숫자를 입력해주세요");
return;
}
const result = String(Math.floor(Math.random() * 10 ** count)).padStart(count, '0');
console.log(result);
// 핸드폰에 토큰 전송
console.log(myphone + '번호로 인증번호' + result + '를 전송합니다!!!');
}
// API 실행
getPhoneToken('01012345678', 4);
function checkPhonenumber(myphone) {
if (myphone.length !== 10 && myphone.length !== 11) {
console.log('에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!');
return false;
} else {
return true;
}
}
function getToken(count) {
if (count === undefined) {
console.log('에러 발생!!! 갯수를 제대로 입력해 주세요!!!');
return;
} else if (count <= 0) {
console.log('에러 발생!!! 갯수가 너무 적습니다!!!');
return;
} else if (count > 10) {
console.log('에러 발생!!! 갯수가 너무 많습니다!!!');
return;
}
const result = String(Math.floor(Math.random() * 10 ** count)).padStart(count,'0');
return result;
}
function sendToken(number, token) {
console.log(number + '번호로 인증번호' + token + '를 전송합니다!!');
}
function getPhoneToken(phonenumber, count) {
// 1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkPhonenumber(phonenumber);
if (isValid) {
// 2. 핸드폰 토큰 6자리 만들기
const mytoken = getToken(count);
// 3. 핸드폰번호에 토큰 전송하기
sendToken(phonenumber, mytoken);
}
}
getPhoneToken('01012345678', 6);
🚨 1. checkPhonenumber 함수를 생성해 기존 1번 로직 그대로 실행 + return 추가해서 결과 전달 (핸드폰 번호가 올바르면 true, 그렇지 않으면 false ) --> 검증된 결과는 밑에서 isValid 변수에 할당 된다.
function checkPhonenumber(myphone) {
if (myphone.length !== 10 && myphone.length !== 11) {
console.log('에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!');
return false;
} else {
return true;
}
}
//isValid 변수 할당
function getPhoneToken(phonenumber, count) {
// 1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkPhonenumber(phonenumber);
.
.
.
}
🚨 2. 함수 getToken() 핸드폰 토큰 번호 생성 + 결과 return --> 올바른 휴대폰 번호가 입력되지 않았을 때는 토큰 생성할 필요가 없으므로 checkPhonenumber()를 통해 isValid가 true일 때만 생성
function getPhoneToken(phonenumber, count) {
// 1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkPhonenumber(phonenumber);
if (isValid) {
// 2. 핸드폰 토큰 6자리 만들기
const mytoken = getToken(count);
// 3. 핸드폰번호에 토큰 전송하기
sendToken(phonenumber, mytoken);
}
//isValid 값 확인
function getPhoneToken(phonenumber, count) {
// 1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkPhonenumber(phonenumber);
if (isValid) {
// 2. 핸드폰 토큰 6자리 만들기
const mytoken = getToken(count);
}
}
🚨 3. sendToken()로 입력 받은 번호에 토큰을 전송하는 코드를 따로 작성 한다.(휴대폰 번호와 인증 번호를 인자로 받음) --> 번호가 올바를 때만 실행되면 되므로 2번과 마찬가지로 if문 안에 넣어줌
function sendToken(number, token) {
console.log(number + '번호로 인증번호' + token + '를 전송합니다!!');
}
//if문 안에 넣어줌
function sendToken(number, token) {
console.log(number + '번호로 인증번호' + token + '를 전송합니다!!');
}
function getPhoneToken(phonenumber, count) {
// 1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkPhonenumber(phonenumber);
if (isValid) {
// 2. 핸드폰 토큰 6자리 만들기
const mytoken = getToken(count);
// 3. 핸드폰번호에 토큰 전송하기
sendToken(phonenumber, mytoken);
}
}
파일을 분리해서 import와 export를 사용 해 연결하려면 먼저
1. 터미널에서 해당 폴더로 이동
2. yarn init 명령어 입력 후 모든 설정에 엔터를 눌러 기본값으로 설정
3. pacakage.json 파일이 만들어지면 마지막에 "type":"module" 추가
4. 내보내고자 함수를 한 파일로 몰아 넣고 내보내고자 하는 함수 앞에 export 작성
5. 해당 함수를 참조하고자 하는 파일에서 import
ex) import {checkPhonenumber,getToken,sendToken} from '. / 함수가 담긴 파일 이름'