Node.js(정의, 특징, 사용방법, REPL)

2022. 11. 21. 22:13WEB개발/TIL

반응형

Node.js

: 구글 크롬의 자바스크립트 엔진(V8 Engine)에 기반해 만들어진 javascript 런타임

  • javascript가 서버에서 작동하도록 함
자바스크립트 엔진?
: 자바스크립트 코드를 실행하는 프로그램 또는 인터프리터(코드를 한 줄씩 읽어 내려가며 실행하는 프로그램)
런타임?
: 프로그래밍 언어가 구동되는 환경
** 웹 브라우저 없이 실행 가능 **
    > 원래 javascript의 런타임 환경은 웹 브라우저만 존재 했었음

 

 

 

 

Node.js 특징

1) 자바스크립트 언어 사용

2) single thread

: 에러(예외)를 처리하지 못하면 프로그램이 아예 중단됨

  하나가 죽으면 전체가 죽음(다시 실행이 안 됨)

  따라서, 예외 처리가 매우 중요함!

3) 비동기 I/O 방식(Non-blocking I/O)

동기(Synchronous)

: 순차적(한 요청에 서버의 응답이 이루어질 때까지 계속 대기), 먼저 보낸 것의 결과로 다음 것을 보냄

  • 장점: 설계가 매우 간단하고 직관적
  • 단점: 결과가 주어질 때까지 아무것도 못하고 무한 대기해야 함

     ex) 대부분의 홈페이지

 

비동기(Asynchronous)

: 순서가 없음(요청을 하고 결과를 받기 전 다음 요청을 수행)

→ 강제로 순서를 만들어 주어야 함

  • 장점: 요청에 따른 결과가 반환되는 시간 동안 다른 작업을 수행할 수 있음
  • 단점: 동기식보다 설계가 복잡함.

    ex) 스트리밍, 채팅

 

 

 

 

Node.js 사용 방법

다운로드 주소: https://nodejs.org/ko/download/

> Window Installer 클릭 후 설치

> 터미널(cmd)에서 명령어 입력

apt-get update
//(apt-get remove nodejs) //제거
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
apt-get install nodejs
apt-get install npm
npm(node package manager)?
: Node.js의 패키지를 관리할 수 있는 도구
* Javascript로 개발된 각종 모듈의 설치, 업데이트, 구성, 제거 과정을 자동화하여 관리해주는 기능

> Node.js 버전 확인

node -v
npm -v

 

 

참고) REPL

R(Read) → E(Evaluate) → P(Print) → L(Loop)

  • 윈도우에서의 cmd, 맥에서의 terminal처럼 노드에는 REPL콘솔이 있음

 

 

 

 

 

반응형