반응형

TIL/Node.js 11

Redis

Redis란? Remote Dictionary Server의 약어인 Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열로 사용하는 빠르고 오픈 소스, 인 메모리 키-값 데이터 스토어이다. Redis는 캐싱, 세션 관리, 게임, 리더 보드, 실시간 분석, 지형 공간, 라이드 헤일링, 채팅/메시징, 미디어 스트리밍 및 게시/구독 앱에서 주로 사용된다. 설치 https://github.com/tporadowski/redis/releases -> 최신 버전 설치 다음 명령을 사용해 redis를 설치한다. $ npm install ioredis 기본 사용 방법 const Redis = require("ioredis"); const redis = new Redis(); // uses defaults unle..

TIL/Node.js 2021.07.21

Cluster

Cluster란? Cluster는 단일 쓰레드 환경인 Node.js 환경을 멀티쓰레드 처럼 동작할 수 있도록 만든 모듈이다. 기본적으로 하나의 프로세스가 32bit에서는 512MB의 메모리, 64bit에서는 1.5GB메모리를 사용하도록 제한되어 있다. V8엔진의 제한을 그대로 반영한 것인데, 설정을 더 늘릴 수는 있지만 그렇게 하기보다는 worker를 늘리는 것을 권장한다. 여러 개의 워커들이 병렬로 동작하며 효율을 극대화하는 것을 바람직한 방향으로 권하는 것. 모든 이벤트를 이벤트 큐로 넘기기 때문에 쓰레드가 하는 일은 그렇게 많지 않다. 대신 이벤트가 큐로 등록되기에 실행 시간이 예측하기 힘들다는 단점이 있다. 그래서 사용하는 것이 Cluster라는 기술이다. worker를 생성하는 두가지 방법 no..

TIL/Node.js 2021.07.21

Sass

Sass란? Sass(Syntactically Awesome StyleSheets)는 CSS pre-processor로서 CSS의 한계와 단점을 보완하여 보다 가독성이 높고 코드의 재사용에 유리한 CSS를 생성하기 위한 CSS의 확장(extension)이다. CSS의 간결한 문법은 배우기 쉬우며 명확하여 프로젝트 초기에는 문제가 없이 보이지만 프로젝트의 규모가 커지고 수정이 빈번히 발생함에 따라 쉽게 복잡해지고 유지 보수도 어려워지는 단점도 가지고 있다. 이러한 CSS의 태생적 한계를 보완하기 위해 Sass는 다음과 같은 추가 기능과 유용한 도구들을 제공한다. 변수의 사용 조건문과 반복문 Import Nesting Mixin Extend/Inheritance CSS와 비교하여 Sass는 아래와 같은 장점..

TIL/Node.js 2021.07.21

Babel

Babel이란? Babel은 자바스크립트 컴파일러로서, 최신의 자바스크립트 코드를 이전 단계의 자바스크립트 코드로 변환 가능하게 해주는 개발 도구, 즉 트랜스파일러(Transpiler)이다. 이와 같은 트랜스파일러(Transpiler)가 필요한 이유는, ES6+를 사용하여 프로젝트를 진행하려면 ES6+로 작성된 코드를 IE를 포함하여 모든 브라우저에서 문제 없이 작동할 수 있는 코드로 변환해야 하기 때문이다. 즉, Babel 패키지를 활용하면 자바스크립트 최신 문법으로 자유롭게 코딩하면, 그것과 웹브라우저간의 호환을 Babel 패키지가 책임져준다. 아래 예제는 ES6의 화살표 함수와 ES7의 지수 연산자를 사용하고 있다. // ES6 화살표 함수와 ES7 지수 연산자 [object_name].map(n ..

TIL/Node.js 2021.07.21

Tedious

Tedious란? Tedious는 Node.js에서 MSSQL을 사용하기 위해 개발된 모듈 패키지이다. 사용 방법 Database 환경 설정 var Connection = require('tedious').Connection; // Create connection to database var config = { authentication: { options: { userName: '[userName]', password: '[password]' }, type: 'default' }, server: '[Server_url]', // server 주소 options: { database: '[db_name]', encrypt: false // 암호화 여부 } }; const connection = new C..

TIL/Node.js 2021.07.21

Express

Express.js란? Express.js는 Node.js의 핵심 모듈인 http와 Connect 컴포넌트를 기반으로 하는 웹 프레임워크다. 그러한 컴포넌트를 미들웨어(middleware)라고 하며, 설정보다는 관례(convention over configuration)와 같은 프레임워크의 철학을 지탱하는 주춧돌에 해당한다. 즉, 개발자들은 특정 프로젝트에 필요한 라이브러리를 어떤 것이든 자유롭게 선택할 수 있으며, 이는 개발자들에게 유연함과 수준 높은 맞춤식 구성을 보장한다. Node.js의 핵심 모듈만 이용해서 중요 앱을 작성한다면 다음과 같은 비슷한 작업을 위해 동일한 코드를 지속적으로 작성함으로써 바퀴를 재발명할 가능성이 높다. HTTP 요청 본문 파싱 쿠키 파싱 세션 관리 URL 경로와 HTTP..

TIL/Node.js 2021.07.21

Module

1. 모듈이란? 모듈이란 "독립된 기능을 갖는 것(함수, 파일)들의 모임" 이다. 옛날 방식인 절차 지향으로 모든 기능을 써내려 가는 것보다, 기능 별로 함수를 만들어 함수를 호출하는 방식으로 프로그래밍을 하면 유지 보수가 훨씬 편해진다. 이러한 모듈 개념을 Node.js에서 사용하고 있다. 모듈은 Node.js에서 제공하는 것이 있고, 또는 누군가가 만들어 놓은 모듈이 있으며, 직접 만들 수도 있다. 모듈을 라이브러리화 시켜서 깃헙에 올릴 수도 있고, 비즈니스 로직에 따라 모듈을 만들어 사용할 수도 있고 굉장히 자유롭다. 모듈은 2가지로 나눌 수 있다. 외장 모듈 내장 모듈 2. 직접 모듈 만들고 불러오기 모듈을 생성하기 위해서는 exports 전역 객체를 사용하고, 모듈을 불러오기 위해서는 requi..

TIL/Node.js 2021.07.21

Event

노드에서 Event란? 노드에서는 대부분의 이벤트를 비동기 방식으로 처리한다. 또한, 비동기 방식으로 이벤트를 전달한다. 이벤트는 한쪽에서 다른 쪽으로 알림 메시지를 보내는 것과 비슷하다. 노드에는 이런 이벤트를 보내고 받을 수 있도록 EventEmitter라는 것이 만들어져 있다. 노드의 객체는 EventEmitter를 상속 받을 수 있으며, 상속 받은 후에는 EventEmitter 객체의 on()과 emit() 메소드를 사용할 수 있다. on() 메소드는 이벤트가 전달될 객체에 이벤트 리스너를 설정하는 역할을 하는데 이 리스너 함수는 객체로 전달된 이벤트를 받아 처리할 수 있다. emitter.addListener(event, listener) : on() 와 동일하다. 이벤트를 생성하는 메소드이다...

TIL/Node.js 2021.07.21

Nodemon

Nodemon이란? Nodemon은 node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉터리를 감시하고 있다가 파일이 수정되면 자동으로 노드 애플리케이션을 재시작하는 확장 모듈이다. 이 확장 모듈을 이용하면 개발 중인 노드 애플리케이션의 소스 코드를 수정할 때마다 매번 노드 명령어를 통해 새로 시작할 필요가 없으므로 매우 편리하다. 설치 nodemon 모듈은 npm 명령으로 쉽게 설치할 수 있다. 노드 애플리케이션을 개발할 때마다 사용되기 때문에 글로벌로 설치한다. # npm install nodemon -g 사용 방법 실행 터미널에서 실행하고자 하는 애플리케이션을 node 명령어 대신 nodemon으로 실행하면 된다. # nodemon app.js [nodemon] 2.0.7 [nodem..

TIL/Node.js 2021.07.20

NPM(Nodejs Package Manager)

I. NPM(Nodejs Package Manager)이란? Node Pacackage Manager. 이하 npm은 이름 그대로 노드 패키지 매니저이다. 세상에는 많은 자바스크립트 프로그래머들이 있고, 그들이 유용한 자바스크립트 패키지들을 이미 만들어 두었고, 그런 코드들이 공개되어 있는 것이 바로 npm이다. npm은 세계 최대 규모의 패키지들을 보유하고 있다. 이러한 패키지들은 노드의 생태계를 더욱 견고하게 만들었다. npm에 업로드 된 노드 모듈을 패키지라고 부른다. 모듈이 다른 모듈을 사용할 수 있는 것처럼, 패키지도 다른 패키지를 사용할 수 있다. 이러한 관계를 의존 관계라고 한다. II. package.json 프로젝트를 진행하다 보면 무수히 많은 패키지들을 추가하게 된다. 이러한 패키지들은..

TIL/Node.js 2021.07.13
반응형