반응형
PAD
padStart와 padEnd 함수는 ES8(ES2017)에 새롭게 추가된 기능이다. pad는 좌우에 특정한 문자열로 채우는 기능이다. 좀더 자세히 얘기하면 첫번째 파라미터인 maxLength를 받아 문자열의 길이가 maxLength보다 작을 경우 나머지를 특정한 문자열로 채워주는 기능이다. 이때 두번째 문자열을 넘겨주지 않으면 빈 공백으로 문자열을 채운다.
const result = String(Math.floor(Math.random() * 1000000)).padStart(6, "0");
console.log('result', result)
Token
console.log("안녕하세요 !")
function getToken(num) {
const result = String(Math.floor(Math.random() * 10 ** num)).padStart(num, "0");
console.log('result', result)
}
getToken(10)
1.Math
i. Floor -> 소수점 컷
ii.Pad -> 빈자리 대체
Token-조건
console.log("안녕하세요 token-count !")
function getToken(num) {
if (num <= 0 || num === undefined || num === null) {
console.log('에러 발생 !! 갯수 제대로 입력 요망 ')
return;
}
if (num >= 10) {
console.log("에러 발생 !! 갯수가 너무 많다.")
return;
}
const result = String(Math.floor(Math.random() * 10 ** num)).padStart(num, "0");
console.log('result', result)
}
getToken(3)
Token-API
<1 단계>
console.log("안녕하세요 token-count !")
function createTokenOfPhone(PhoneNum) {
//1. 휴대폰번호 자릿수 맞는지 확인하기
if (PhoneNum.length !== 10 && PhoneNum.length !== 11) {
console.log("<에러발생!> 휴대폰번호를 다시 한번 확인해주세요")
return
}
//2. 핸드폰 토큰 6자리 만들기
const num = 6;
if (num <= 0 || num === undefined || num === null) {
console.log('<에러발생!>갯수 제대로 입력 요망 ')
return;
}
if (num >= 10) {
console.log("<에러발생!> 갯수가 너무 많다.")
return;
}
const result = String(Math.floor(Math.random() * 10 ** num)).padStart(num, "0");
//3. 핸드폰번호에 토큰 전송하기 !
console.log(PhoneNum + " 번호로 인증번호 " + result + "를 전송합니다 !! ");
}
createTokenOfPhone("01096596509")
<2단계>: 리팩토링 -> 퍼사드패턴
console.log("안녕하세요 token-count-api-facade !")
function checkValidatePhoneNum(PhoneNum) {
if (PhoneNum.length !== 10 && PhoneNum.length !== 11) {
console.log("<에러발생!> 휴대폰번호를 다시 한번 확인해주세요")
return false;
}
else {
return true;
}
}
function createToken(count) {
if (count <= 0 || count === undefined || count === null) {
console.log('<에러발생!>갯수 제대로 입력 요망 ')
return;
}
if (count > 10) {
console.log("<에러발생!> 갯수가 너무 많다.")
return;
}
const result = String(Math.floor(Math.random() * 10 ** count)).padStart(count, "0");
return result;
}
function sendTokenToSMS(PhoneNum, token) {
console.log(PhoneNum + " 번호로 인증번호 " + token + "를 전송합니다 !! ");
}
function createTokenOfPhone(PhoneNum, count) {
//1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkValidatePhoneNum(PhoneNum);
//2. 핸드폰 토큰 6자리 만들기
if (isValid) {
const token = createToken(count);
if (token === undefined) {
return;
}
else { sendTokenToSMS(PhoneNum, token); }
}
//3. 핸드폰번호에 토큰 전송하기 !
}
createTokenOfPhone("01096596509", 6)
tip -> import export 문법 사용시
npm init
{
"name": "01-05-token-count-api-facade-import",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"type": "module"
}
"type" : "module"
반응형
'Web Dev > Javascript' 카테고리의 다른 글
Javascript : 웹페이지 원하는 위치에 애니메이션 focus 주는 방법 feat JQuery 방법 (0) | 2023.06.12 |
---|---|
Javascript 문법 - 구조분해할당(Destructing) (0) | 2023.05.24 |
Javascript : table 태그 name ,id 값으로 행과 열 구분하여 checkbox 체크 가능 범위 조절하는 함수 (0) | 2023.05.17 |
JavaScript 자바스크립트의 관대함 this, argument (0) | 2023.03.23 |
JS Rest 파라미터 사용 방법 간단한 예제로 알려드립니다 (0) | 2023.03.21 |
Javascript 문법 - 얕은 복사 (spread연산자) / 깊은 복사(JSON메서드) : 백엔드 (0) | 2023.03.02 |