파사드 패턴으로 코드 짜보기
Facade Pattern 퍼사드는 '건물의 정면'이라는 뜻입니다. 간단하게 설명하면, 안에 여러 가지 복잡한 로직이 있더라도, 밖에서 보이는 정면에 있는 함수에서는 비교적 간단하게 흐름을 파악할 수 있습니다.
위가 퍼사드 패턴.
퍼사드 패턴을 만드는 과정은 리팩토링을 하는 과정이 된다.
부분 함수들을 한데 모아서 사용하는 최종 함수를 의미한다.
function customRegistrationNumber(getNumber) {
const isValid = checkRegistrationNumber(getNumber);
if (isValid) {
hideRegistrationNumber(getNumber)
}
}
//번호맞게 입력했는지 확인
//토큰 받아서 가려서 출력하는 코드
function checkRegistrationNumber(getNumber) {
if ([...getNumber][6] !== "-") {
console.log("에러 발생!!! 형식이 올바르지 않습니다.")
return false;
} else if ([...getNumber].length !== 14) {
console.log("에러 발생!!! 개수를 제대로 입력해주세요.")
return false;
} else {
return true;
}
}
function hideRegistrationNumber(getNumber) {
let copyGetNumber = [...getNumber];
for (let i = 0; i < copyGetNumber.length; i++) {
if (i >= 8) {
copyGetNumber[i] = '*';
}
}
const hidenGetNumber = copyGetNumber.join("")
console.log(hidenGetNumber);
}
// hideRegistrationNumber("210510-1010101");
customRegistrationNumber("210510-1010101");
customRegistrationNumber("210510-1010101010101");
customRegistrationNumber("2105101010101");
import와 export 해보기
부분 함수들에는 각 export를 붙여준다.
그리고 import 해올 때는 구조분해할당 + 아래처럼 import 해올 때 파일에 js 형식을 붙여주지 않으면 에러가 발생한다.
import { checkRegistrationNumber, hideRegistrationNumber } from './resident-registration-number'
function customRegistrationNumber(getNumber) {
const isValid = checkRegistrationNumber(getNumber);
if (isValid) {
hideRegistrationNumber(getNumber)
}
}
customRegistrationNumber("210510-1010101");
customRegistrationNumber("210510-1010101010101");
customRegistrationNumber("2105101010101");
export function checkRegistrationNumber(getNumber) {
if ([...getNumber][6] !== "-") {
console.log("에러 발생!!! 형식이 올바르지 않습니다.")
return false;
} else if ([...getNumber].length !== 14) {
console.log("에러 발생!!! 개수를 제대로 입력해주세요.")
return false;
} else {
return true;
}
}
수정하고도 그런데 코드에 에러가 발생한다.??? 바로 import, export를 사용하기위해 json을 받아서 모듈을 사용해야하기 때문.
export 와 import를 사용하기 위해선
yarn init 명령어를 통해 package.json에서 모듈을 사용해야한다.
{
"name": "portfolio",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"type": "module"
}
출력이 잘 된다.
'🪢node > node 이론 정리' 카테고리의 다른 글
Date 객체 사용해보기 + .toString().padStart(자릿수, 문자) (0) | 2023.10.06 |
---|---|
구조분해할당+함수 선언 시 구조 분해 할당의 형태로 매개변수를 정의 하는 형태 (0) | 2023.10.06 |
우분투에 vscode 연동 (0) | 2023.10.04 |
터미널 통해 wsl 우분투 설치 및 버전 확인 + node.js 설치 (0) | 2023.10.03 |
그 사람과 닮은 포켓몬 찾아주는 웹 어플 (0) | 2023.03.21 |