Lodash, 더 쉽고 효율적인 코드 작성하기
·
개발이야기/Node.js
자바스크립트/타입스크립트 활용하여 서버를 개발 하면서 반복되는 작업이나 복잡한 데이터 처리로 인한 코드가 길어지는 현상을 어떻게 해결 할까? 를 늘 고민을 하고 있었습니다.Lodash는 제가 하고 있는 고민을 어느 정도 해결해주는 라이브러리입니다.자주 사용하는 함수를 예시와 함께 정리하도록 하겠습니다.데이터 검사_.isEmpty : 값이 비어있는지 확인_.isEmpty 함수는 Lodash 라이브러리에서 제공하는 기능 중 하나로, 입력된 값이 비어있는지 여부를 확인해주는 함수입니다.이 함수는 다양한 유형의 값들에 대해 사용할 수 있습니다. 예를 들어, 배열, 객체, 문자열 등에 대해서 비어있는지 여부를 판단합니다._.isEmpty 함수는 값이 비어있을 경우 true를 반환하고, 값이 존재할 경우 false..
Event Emitter
·
개발이야기/Node.js
EventEmitter 는 NodeJS 에 내장되어있는 옵저버 패턴 입니다. NodeJS 의 EventEmitter의 API Document를 보면 아래와 같이 나와 있습니다. API Document를 그대로 해석을 한다면 " 대부분의 NodeJS Core API 는 특정 종류의 객체 (emiiter) 가 함수 객체(listenr) 를 호출하게하는 이름의 이벤트를 내보내는 관용 이벤트 기반 아키텍쳐로 구축이 된다." 이벤트를 내보내는 모든 객체는 EventEmitter 클래스의 인스턴스 입니다. 객체는 객체가 호출되는 이름으로 하나 이상의 함수를 연결할수 있는 eventEmiiter.on() 함수를 호출합니다. const EventEmitter = require('events'); class MyEmit..
macOS 에서 docker 로 redis 설치후 node.js 로 연동해기
·
개발이야기/Node.js
이번 블로그에서는 Redis 와 node.js 를 연동하여 테스트 API를 호출하는 내용에 대해서 정리를 해보겠습니다. Redis 란 캐시 및 메세지 브로커 로 사용되는 인메모리 데이터 베이스로 RAM (Random Access Memory) 에서 데이터를 저장한다. RAM 특성상 휘발성 기억장치이기 때문에 삭제가 되서는 데이터는 Redis에 적절하지 않습니다. 메모리상에서 데이터 IO 가 발생되기 때문에 매우 빠른 실행속도를 보장받을수 있어 유저가 로그인을 하였을때 세션 관리 등 삭제가 되어도 다시 발급을받을수 있는 데이터 관리에 자주 사용이 됩니다. Docker 로 Redis 이미지 를 받아온후 컨테이너 실행 하기 https://hub.docker.com/_/redis/ redis Quick refe..
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])...
cafe-jun12
'개발이야기/Node.js' 카테고리의 글 목록