Facade는 "건물의 정면"을 의미하는 단어
어떤 소프트웨어의 다른 커다란 코드 부분에 대하여
간략화된 인터페이스를 제공해주는 디자인 패턴을 의미
퍼사드 객체는 복잡한 소프트웨어 바깥쪽의 코드가
라이브러리의 안쪽 코드에 의존하는 일을 감소시켜 주고,
복잡한 소프트웨어를 사용 할 수 있게 간단한 인터페이스를 제공
// 인증번호 요청 API
// 함수이름 createTokenOfPhone
// 1. 핸드폰번호의 매개변수가 10 ~ 11 검증 필요
// 2. 토큰 생성(getToken)
// 3. 토큰 핸드폰에 전송!!!
const createTokenOfPhone = (pnumber, count) => {
// 1. 휴대폰 번호 자리수 맞는지 확인하기
if(pnumber.length !== 10 && pnumber.length !== 11){
console.log('에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!')
return
}
// 2. 핸드폰 토큰 6자리 만들기
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');
console.log(result);
// 3. 핸드폰번호에 토큰 전송하기
console.log(pnumber + "번호로 인증번호" + result + "를 전송합니다.")
}
createTokenOfPhone('01012345678', 6);
function checkValidationPhone(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(
mycount,
'0',
);
return result;
// console.log(result)
}
function sendTokenToSMS(fff, ggg) {
console.log(fff + '번호로 인증번호' + ggg + '를 전송합니다!!');
}
function createTokenOfPhone(myphone, count) {
// 1. 휴대폰번호 자릿수 맞는지 확인하기
const isValid = checkValidationPhone(myphone);
if (isValid) {
// 2. 핸드폰 토큰 6자리 만들기
const mytoken = getToken(count);
// 3. 핸드폰번호에 토큰 전송하기
sendTokenToSMS(myphone, mytoken);
}
}
createTokenOfPhone('01012345678', 6);