코드캠프에서 배웠던 기술 스택들은 짧고 빠르게 지나가서 많은걸 배웠음에도 깊게 익히지 못하고 넘어간것들이 많다.
내가 추구하는 개발자의 역량은 기본에서부터 나온다고 생각하기 때문에 수업때 배웠던 자료들을 바탕으로 복습을 하며 블로그에 기록을 하려고한다.
Node.js와 npm, yarn을 설치하고 사용하는 방법을 익혔으며, 핸드폰 번호와 인증번호 자릿수를 입력하여 토큰을 받는 API를 하나 만들게 되었다.
API를 만든 후에 yarn init
명령어로 package.jason파일을 만들고 import와 export를 사용할 수 있게 만든 후 Pacade 패턴을 적용하여 실무에 더욱 가깝게 로직을 만들어 보았다.
1. 핸드폰 번호 에러핸들링 로직
export function checkToPhoneNumber(phoneNumber){
if(phoneNumber.length !== 10 && phoneNumber.length !== 11){
console.log("Error, 핸드폰 번호를 정확하게 입력해주세요.");
return false;
} else {
return true;
}
}
2. 인증번호 발급 로직, 에러핸들링 로직
export function getToken(count){
if(count === undefined){
console.log("Error, 인증번호의 자릿수를 입력해주세요.");
return;
} else if(count > 12){
console.log("Error, 인증번호의 자릿수가 너무 높습니다.");
return;
} else if(count <= 0){
console.log("Error, 인증번호의 자릿수가 너무 낮습니다.");
return;
}
const token = String(Math.floor(Math.random() * 10 ** count)).padStart(count, '0')
return token;
}
3. 요청받은 핸드폰 번호로 인증번호를 전송하는 로직(아직 단순하게 console.log로 나타나게끔만 작성 됨)
export function sendTokenToSMS(phoneNumber, count){
console.log(`${phoneNumber} 번호로 인증번호 ${count}를 전송합니다.`);
}
4. 인증번호 요청 API
import {checkToPhoneNumber, getToken, sendTokenToSMS} from "./phone.js"
function createTokenOfPhone(phoneNumber, count){
const isVaild = checkToPhoneNumber(phoneNumber);
if(isVaild === true){
const token = getToken(count);
sendTokenToSMS(phoneNumber, token);
}
}
createTokenOfPhone("01012345678", 6)
다만 여기서 한가지 문제점이 있는데, getToken
함수에서 자릿수를 크게 요청하면 "Error, 인증번호의 자릿수가 너무 높습니다."
가 정상적으로 출력되지만, createTokenOfPhone
함수에서 자릿수를 크게 요청하면 return이 적용이 안되고 01012345678 번호로 인증번호 undefined를 전송합니다.
라는 메세지가 출력된다.