브라우저 환경에서 웹 페이지를 제작하려고 할 때, 필수적으로 쓰이는 언어가 javascript 이다.
하지만 이 javascript를 사용하여 앱을 제작하기 위해서는 브라우저가 필요했기에 이 javascrip를 브라우저 바깥에서 실행 할 수 있는 환경을 개발한 것이 node.js이고 node.js는 javascript 실행기라고 보면 된다.
java 패키지 관리 매니저는 maven, python은 pypi와 같이 node.js도 다른 언어와 같이 패키지를 관리하는 매니저를 만들었는데 그게 바로 npm이다.
npm에서 조금 더 발전한 패키지가 yarn package manager이다.
# 인증번호 6자리
function getToken() {
const token = String(Math.floor(Math.random() * 1000000)).padStart(6,'0')
}
- Math
Math는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체
- Math.random()
0 과 1 사이의 난수를 반환
- padStart(<총 자릿수>,<채워질 문자>)
현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환
# parameter는 함수를 정의 할 때, 외부로 부터 받아들이는 임의의 값
function(a,b,c) {
}
# argument는 함수를 호출 할 때, 사용하게 되는 일련의 값
function(a,b,c)
함수 호출을 통해서 함수를 실행하고 나면 return을 사용해서 결과값을 보낸다.
function returnFunction(a,b) {
return a+b
}
const result = returnFunction(1,2)
console.log(result);
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')
다음과 같이 퍼사드 패턴을 하면 다른 개발자들도 해당 코드를 쉽게 파악할 수 있게 되어 협업을 할 때 퍼사드 패턴이 많이 쓰인다. 이러한 과정을 리팩토링 이라고도 한다.