#1_node.js

유상우·2023년 6월 5일
0

Nest.js 프로젝트

목록 보기
1/7

브라우저 환경에서 웹 페이지를 제작하려고 할 때, 필수적으로 쓰이는 언어가 javascript 이다.
하지만 이 javascript를 사용하여 앱을 제작하기 위해서는 브라우저가 필요했기에 이 javascrip를 브라우저 바깥에서 실행 할 수 있는 환경을 개발한 것이 node.js이고 node.js는 javascript 실행기라고 보면 된다.

java 패키지 관리 매니저는 maven, python은 pypi와 같이 node.js도 다른 언어와 같이 패키지를 관리하는 매니저를 만들었는데 그게 바로 npm이다.
npm에서 조금 더 발전한 패키지가 yarn package manager이다.

1. 인증번호 기능

# 인증번호 6자리
function getToken() {
     const token = String(Math.floor(Math.random() * 1000000)).padStart(6,'0')
}

- Math
Math는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체

- Math.random()
0 과 1 사이의 난수를 반환

- padStart(< 자릿수>,<채워질 문자>)
현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환

2. 매개변수 및 인자

  • 인자(argument) 및 매개변수(parameter)는 어떠한 시스템이나 함수의 특정한 설징을 나타내는 변수를 의미
# parameter는 함수를 정의 할 때, 외부로 부터 받아들이는 임의의 값
function(a,b,c) {
}

# argument는 함수를 호출 할 때, 사용하게 되는 일련의 값
function(a,b,c)

3. return

함수 호출을 통해서 함수를 실행하고 나면 return을 사용해서 결과값을 보낸다.

return의 기능

  • 결과 반환
  • 함수 종료
function returnFunction(a,b) {
	return a+b
}

const result = returnFunction(1,2)
console.log(result);

4. undefined, null

  • undefined 및 null은 값을 비운다는 의미로서 같지만, 상황에 따라 쓰임 용도가 다르다. null은 어떤 변수에 값을 강제적으로 비울 때 주로 사용한다.

5. API

client와 DB 사이의 중간 역할을 하는 매개체로서 실제 백엔드 개발자는 API를 개발한다고 보면 된다.
API는 각각의 함수를 지칭하며 client의 요청을 API로 받아 중간에서 DB를 조회하여 데이터를 꺼내오는 그러한 역할을 한다.

퍼사드 패턴

퍼사드는 성벽을 의미하며 실제로 백엔드에서 하나의 함수안에 여러 기능들을 차례 차례 쌓는다는 개념으로 쓰인다.

다음 token을 휴대폰으로 보내는 기능을 가지고 있는 API를 퍼사드 패턴에 맞춰 설계한다면...

  • 퍼사드 패턴 전
function createTokenOfPhone(phoneNumber) {
     // 1. 휴대폰 자릿수 확인
     if(phoneNumber.length !== 10 && phoneNumber.length !== 11) {
          console.log('wrong number');
          return
     }
     // 2. 임의의 token 6자리 만들기
     let tokenLength = tokenNumber.length
     const token = String(Math.floor(Math.random() * 1000000)).padStart(tokenLength,'0')

     // 3. 핸드폰에 token 전송
     console.log(token);
     
}

createTokenOfPhone('01055530781')
  • 퍼사드 패턴 후
function isValidPhoneNumber(phoneNumber) {
     if(phoneNumber.length !== 10 && phoneNumber.length !== 11) {
          return false
     }
}

function getToken() {
     const tokenLength = 6
     const token = String(Math.floor(Math.random() * 1000000)).padStart(tokenLength,'0')
     return token
}

function sendToToken(phoneNumber, token) {
     console.log(`${phoneNumber}에 인증번호 ${token}을 전송`);
}

function createTokenOfPhone(phoneNumber) {
     // 1. 휴대폰 자릿수 확인
     const isValid = isValidPhoneNumber(phoneNumber)
     if(isValid === false) {
          console.log(`Invalid phone number`) 
     } else {
     // 2. 임의의 token 6자리 만들기
     const token = getToken()

     // 3. token 번호를 휴대폰으로 전송
     sendToToken(phoneNumber, token)
     }
}

createTokenOfPhone('01012345678')

다음과 같이 퍼사드 패턴을 하면 다른 개발자들도 해당 코드를 쉽게 파악할 수 있게 되어 협업을 할 때 퍼사드 패턴이 많이 쓰인다. 이러한 과정을 리팩토링 이라고도 한다.

profile
Potentialist

0개의 댓글

관련 채용 정보