notion day1 review

김지우·2023년 2월 2일
0

TIL

목록 보기
13/16
post-thumbnail

코드캠프에서 배웠던 기술 스택들은 짧고 빠르게 지나가서 많은걸 배웠음에도 깊게 익히지 못하고 넘어간것들이 많다.

내가 추구하는 개발자의 역량은 기본에서부터 나온다고 생각하기 때문에 수업때 배웠던 자료들을 바탕으로 복습을 하며 블로그에 기록을 하려고한다.

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를 전송합니다.라는 메세지가 출력된다.

profile
백엔드 성장 기록

0개의 댓글