Static Factory Method Pattern
·
개발이야기/Node.js
소프트 웨어 디자인 패턴 중 팩토리 관련하여 정리를 해보겠습니다. Static Factory Method Pattern 은 결론부터 말했을때 생성자를 직접 사용하여 멤버 변수를 초기화 하지 않고 정적 메소드를 사용하여 인스턴스화 하는 디자인 패턴 입니다. Factory 라는 이름이 붙은 이유는 마치 공장에서 상품을 생산하듯 Factory 메서드로 비슷한 객체를 찍어내듯이 동작을 하기 때문입니다. 우선 Factory Method Pattern을 코드로 예를 들어서 설명을 하겠습니다. class Coffee { constructor(name) { this.name = name + '-' + Math.random(); } makeInfo() { console.log(`I am ${this.name}`); } ..
Singleton Pattern
·
개발이야기/Node.js
Singleton Pattern 이란 최초 단일성을 보장받기 위한 디자인 패턴 입니다. 말을 풀어서 설명을 하면 특정 클래스의 인스턴스를 오직 하나만 유지하고, 동일 클래스에서 새로운 객체를 생성한다 해도 처음 만들어진 객체를 얻습니다. Singleton 을 사용하면 얻는 이점은 인스턴스가 오직 하나만 생성되므로 메모리 성능상 이점이 있습니다. 초기 호출만 시간이 걸리고 두번째 호출부터는 객체 로딩 시간이 줄어들어 성능 향상이 있습니다. 다른 인스턴스들과 데이터 공유하기가 쉽습니다. Node js 에서는 caching에 이점을 얻기때문에 Singleton Pattern 을 사용합니다. Cahed Singleton Example class CacheManager { constructor() { /* Cac..
Promise.all 과 Promise.race
·
개발이야기/Node.js
Promise 는 자바스크립트에서 비동기 처리에 사용되는 객체입니다. 비동기 처리란 특정 코드의 실행이 완료될때까지 다음 코드를 먼저 수행하는 자바스크립트의 특성을 의미합니다. 이 Promise 에서 제공해주는 2개지 메서드중 all 과 race를 확인해 보겠습니다. 먼저 Promise.all 에 대한 예시 코드를 확인해 보겠습니다. const promise1 = new Promise((resolve, reject) => resolve('즉시 호출')); const promise2 = new Promise((resolve, reject) => { setTimeout(() => { resolve(' 3초뒤에 호출 '); }, 3000); }); Promise.all([promise1, promise2])...
File_System
·
개발이야기/Node.js
Node 파일시스템 내장 모듈인 fs 는 파일을 읽고 쓸수 있는 라이브러리 입니다. 'use strict'; const fs = require('fs'); fs.readFile('test.txt', 'utf-8', (err, data) => { if (err) return console.error(err); console.log(data); }); const content = 'something to do list'; fs.writeFile('test1.txt', content, (err) => { if (err) return console.error(err); }); 해당 코드는 text.txt 파일을 있으면 읽어서 console.log() 로 출력을 해주고 text1.txt 파일을 something ..
Node TDD 라이브러리 Mocha
·
개발이야기/Node.js
웹 백엔드 시스템을 서버 개발을 하면서 항상 궁금했던 내용이 있었다. 내가 작성한 코드가 에러 없이 정확하게 동작을 하는지 ? 그리고 그것을 어떻게 검증하는지 ? 생각하지 못한 예외 케이스가 있는지 ? 물론 버그 없는 소프트웨어는 없다고 생각을 한다. 그래도 내가 작성한 코드에 대해서 테스트 케이스를 생각해보고 검증해보는 작업이 개발자로써 꼭 필요하다고 생각이 된다. Node 에는 Mocha 라는 자신이 작성한 코드를 테스트 해볼수 있게 도와줄수있는 라이브러리가 있습니다. Mocha 를 사용하기 위해서는 라이브러리를 설치해야합니다. npm i mocha --save-dev 라이브러리를 설치한뒤 테스트로 작성한 함수를 한번 검증을 해보자 // test.js function easyPwdCheck(passw..
화살표 함수(Arrow Function)
·
개발이야기/Javascript
자바스크립트 ES6(ES2015+) 에서 간략한 방법으로 함수를 선언할수 있는 화살표 함수(Arrow Function)가 존재합니다. 화살표 함수에 대한 표현식은 자비스크립트 참고자료 공식 문서인 MDN Web Docs 에서 아래와 같이 구문이 작성되어있습니다. MDN 문서 참조 // 매개변수 지정 방법 (param1, param2, …, paramN) => { statements } // 매개변수가 여러개인 경우에는 소괄호 생략 X (param1, param2, …, paramN) => expression // 다음과 동일함: => { return expression; } // 함수 몸체가 한줄의 구문이라면 중괄호를 생략할수 있으며 암묵적으로 return 이 됩니다. // 매개변수가 하나뿐인 경우 괄호..
cafe-jun12
cafe-jun12