320x100
320x100

NodeJS

: 크롬의 자바스크립트 인터프리터 엔진인 V8을 기반으로 만들어진 JavaScript 런타임

: 이벤트 기반, 논 블로킹 I/O 모델을 사용하여 가볍고 효율적임

: npm 패키지 생태계를 통해 세계 최대의 오픈소스 라이브러리를 사용할 수 있음

 

※ 유의사항

: Node는 웹서버가 아니며, JavaScript 애플리케이션이 서버로써 기능하기 위한

 도구를 제공하는 프레임워크임

 

 

 

 

NodeJS의 장점

- 비동기 I/O 처리 / 이벤트 위주

: NodeJS 기반의 라이브러리는 모두 비동기 방식이며, 실행을 멈추지 않음 (non-blocking)

: API가 실행되었을 때 데이터를 반환할 때까지 기다리지 않고 다음 API를 실행

 

- 빠른속도

: V8 엔진을 사용하여 빠른 코드 실행 제공

 

- 단일 쓰레드 / 뛰어난 확장성

: 이벤트 루프와 함께 단일 쓰레드 모델을 사용

: 이벤트 메커니즘은 서버가 멈추지 않고 반응하도록 해주어 서버의 확장성을 키워줌

: Apache 같은 경우 요청 처리를 위해 제한된 쓰레드를 생성하지만 

  NodeJS는 쓰레드를 하나만 사용하고 비동기로 처리하기 때문에 더 많은 요청을 처리할 수 있음

 

- 노 버퍼링

: 데이터를 chunk로 출력하기 때문에 데이터 버퍼링이 없음

 > chunk란 데이터 스트림을 분할한 조각을 의미

 

- 라이센스

: MIT License

 

- NPM과 활발한 개발자 커뮤니티 

 

 

 

 

 

NodeJS를 사용하면 좋은 분야

: 입출력이 잦은 애플리케이션

: 데이터 스트리밍 애플리케이션

: 데이터를 실시간으로 다루는 애플리케이션

: JSON API 기반 애플리케이션

: 실글페이지 애플리케이션

 

 

 

 

 

ExpressJS

: 웹 및 모바일 애플리케이션을 위한 기능을 제공하는 nodeJS 웹 애플리케이션 프레임워크

: 다양한 HTTP 유틸리티 메소드 및 미들웨어 제공

: 기본적인 웹 애플리케이션 기능의 레이어를 제공하여 성능이 좋음

: nodeJS 상에서 동작하며 가장 많이 사용되는 웹 애플리케이션 프레임워크 

 

 

 

 

Express의 구조

- /bin/www

: http 모듈에 express 모듈을 연결하고 포트를 지정하는 부분

: env_node 라는 환경변수를 통해 콘솔 명령어 스크립트 작성

 

 

 

Express 모듈

- debug 

: 콘솔에 로그를 남기는 모듈

 

- app.set('port', port)

: 서버가 실행될 포트 설정

: 키, 값 형태

 

- http.createServer

: 불러온 app 모듈을 콜백함수로 넣어 HTTP 서버 프로그램 생성

 

- listen

: 포트를 연결하고 서버를 실행 

 

 

 

 

 

출처: https://thebook.io/006982/ch06/02-04/
출처: https://thebook.io/006982/ch06/03-01/

NodeJS 서버의 구조

- logger

: 서버의 로그를 남기는 미들웨어

 

- json

: JavaScript Object 형태를 제어하는 미들웨어

 

- cookieparser

: 브라우저 환경에 저장하는 쿠키를 read / write하여 제어 하기위한 파서

 

- 라우터

: Rest API로 많이 사용하며 웹 애플리케이션의 함수를 호출하고 클라이언트로 호출의 결과를 반환하기 위한 미들웨어

 

- 에러 핸들러

: 웹 애플리케이션에서 에러가 발생할 경우 이를 제어하는 미들웨어 

 

- morgan

: 클라이언트의 요청에 대한 정보를 콘솔에 기록

 

 

 

 

 

 

 

 

Refference

 

[Node.js] Express 구조 이해하기

express-generator를 활용해 프로젝트를 생성했을 때 생성되는 파일들의 역할과 express 서버의 구조 및 동작원리를 이해하기 위해 작성하는 포스트입니다. 엄청 길지만 공부한걸 정리해보려고 작성

hyem-study.tistory.com

 

[Node.js] Node.js란?

1. Node.js 란? 공식 사이트의 정의는 아래와 같습니다. NodeJS 는 구글 크롬의 자바스크립트 엔진 (V8 Engine) 에 기반해 만들어진 JavaScript 런타임입니다. Node.js는 이벤트 기반, 논 블로킹 I/O 모델을 사

hyem-study.tistory.com

 

300x250
728x90