220110_TIL#1

  1. Node.js 는 Javascript의 실행 도구
  2. Javascript(Node.js) 라이브러리 => npm (npmjs.com) : node package module(manager)
  3. GUI(Graphic User Interface) : 마우스 이용..?
  4. CLI(Command-Line Interface) : 명령어 이용
  5. CLI에서 현재 위치가 궁금할땐 pwd(print working directory) 입력
  6. Node로 실행 : node index.js
  7. // 6자리 인증번호 발급
function getToken() {
    const result = String(Math.floor(Math.random() * 1000000)).padStart(6, "0")
    console.log(result)
}

getToken()
  1. Return = 결과 반환 및 함수 종료
  • 실무
    • 재사용성 고려
    • 안전성 고려
    • 하나의 함수엔 하나의 기능
  • 실무적 코드로의 변환 예시
// n자리 인증번호 발급
function getToken(mycount) {
    const result = String(Math.floor(Math.random() * 10**(mycount))).padStart(mycount, "0")
    console.log(result)
}

getToken(4)
  • 안정성을 추가한 코드 예시
// n자리 인증번호 발급
function getToken(mycount) {
    if(mycount === undefined){
        console.log('ERROR!! 갯수를 확인하고 입력해 주세요!!')
        return
    } else if(mycount <= 0){
        console('ERROR!! 갯수가 너무 적습니다!!')
    } else if(mycount > 10){
        console.log('ERROR!! 갯수가 너무 많습니다!!')
        return
    }


    const result = String(Math.floor(Math.random() * 10**(mycount))).padStart(mycount, "0")
    console.log(result)
}

getToken(6)

  1. API : 프론트에서 버튼을 눌렀을 때 실행되는 함수
  • API 예시
// API 만들기 ------------------------------------------------------------------------------------
function createTokenOfPhone(myphone) {
    // 1. 휴대폰번호 자릿수 맞는지 확인
    if(myphone.length !== 10 && myphone.length !== 11) {
        console.log('ERROR!! 핸드폰 번호를 제대로 입력해 주세요!!')
        return
    }

    // 2. 휴대폰 토큰 6자리 만들기
    const mycount = 6
    if(mycount === undefined){
        console.log('ERROR!! 갯수를 확인하고 입력해 주세요!!')
        return
    } else if(mycount <= 0){
        console('ERROR!! 갯수가 너무 적습니다!!')
    } else if(mycount > 10){
        console.log('ERROR!! 갯수가 너무 많습니다!!')
        return
    }
    const result = String(Math.floor(Math.random() * 10**(mycount))).padStart(mycount, "0")

    // 3. 휴대폰번호로 Token 전송
    console.log(myphone + "번호로 인증번호" + result + "를 전송합니다!")
}
// -------------------------------------------------------------------------------------------

// API 실행하기
createTokenOfPhone("01012345678")

리턴 값
//01012345678번호로 인증번호536611를 전송합니다!
  1. 리팩토링 : 효율적이고 구조화 시켜서 코드를 다시 만든다

  2. 퍼사드패턴(Facade Pattern) 예시

    // 1. 휴대폰번호 자릿수 맞는지 확인
    function checkValidationPhone(myphone) {
        if(myphone.length !== 10 && myphone.length !== 11) {
            console.log('ERROR!! 핸드폰 번호를 제대로 입력해 주세요!!')
            return false
        } else {
            return true
        }
    }
    
    // 2. 휴대폰 토큰 6자리 만들기
    function getToken(mycount) {
        if(mycount === undefined){
            console.log('ERROR!! 갯수를 확인하고 입력해 주세요!!')
            return
        } else if(mycount <= 0){
            console('ERROR!! 갯수가 너무 적습니다!!')
        } else if(mycount > 10){
            console.log('ERROR!! 갯수가 너무 많습니다!!')
            return
        }
        const result = String(Math.floor(Math.random() * 10**(mycount))).padStart(mycount, "0")
        return result
    }
    
    // 3. 휴대폰번호로 Token 전송
    function sendTokenToSMS(fff,ggg) {
        console.log(fff + "번호로 인증번호" + ggg + "를 전송합니다!")
    }
    
    
    // API 퍼사드패턴으로 리팩토링 -------------------------------------------------------------------
    function createTokenOfPhone(myphone) {
        // 1. 휴대폰번호 자릿수 맞는지 확인
        const isValid = checkValidationPhone(myphone)
        if(isValid){
        // 2. 휴대폰 토큰 6자리 만들기
            const mytoken = getToken(4)
        // 3. 휴대폰번호로 Token 전송
            sendTokenToSMS(myphone, mytoken)
        }
    }
    
    // API 실행하기
    createTokenOfPhone("01012345678")
    
    // 리턴 값
    01012345678번호로 인증번호8968를 전송합니다!
  1. Import & Export

    API 함수가 있는 파일과 실행 파일을 나누어 Import와 Export를 각각 추가하여 API 관리

좋은 웹페이지 즐겨찾기