# Node.js 쉽게 이해하기

이 문서는 코딩애플 강의를 듣고 정리한 글입니다.

Node.js 는 Chorme 브라우저의 V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.

쉽게말해 웹 브라우저가 아닌 로컬 PC에서도 JavaScript를 실행할 수 있도록 도와주는 실행창(런타임)이라고 할 수 있다.
브라우저를 켜지 않아도 Node.js만 있으면 터미널과 같은 로컬에서 아래와 같이 자바스크립트 문법을 실행가능하다.

> console.log('hi');
  undefined

> const a = 2;
  undefined

> a + 4
  6

> console.log(a);
  2
1
2
3
4
5
6
7
8
9
10
11

# Node.js의 특징

# Server - 일반 서버와 Node.js 서버의 차이를 이해

일반 프로그래밍으로 만든 서버 Server

요청1 : 영화티켓 1장 주세요.
요청2 : 영화티켓 1장 주세요.
요청3 : 영화티켓 200장 주세요.
요청4 : 영화티켓 1장 주세요.

위처럼 4개의 요청이 들어왔을 때 일반 서버는 요청이 들어운 순서대로 하나씩 처리하게 된다. 이의 경우 일반서버의 문제점을 발견할 수 있는데, 요청3과 같이 오래 걸리는 요청이 들어오게 되면, 요청4는 그만큼 오랜 시간을 기다려야하기 때문에 비효율적으로 처리될 수밖에 없다.

반면, node.js의 Server 처리는 어떨까?

Node.js서버

요청1 : 영화티켓 1장 주세요.
요청2 : 영화티켓 1장 주세요.
요청3 : 영화티켓 200장 주세요.
요청4 : 영화티켓 1장 주세요.

일반 서버에서 받았던 요청과 같은 상황에서 Node.js의 서버는 모든 요청을 받고, 어떤 요청이 먼저 들어왔는지의 여부와 상관없이 빠른 처리가 가능한 요청부터 처리하게 된다. 따라서 일반 서버에서 오랜 시간을 기다려야 했던 요청4 역시 빠르게 티켓을 받아볼 수 있다.

이러한 Node.js의 Non-blocing I/O 특성 덕분에 한번에 매우 많은 요청을 처리해야하는 SNS, 채팅 서비스와 같은 웹서버에 많이 사용되고 있고 있으며 코드가 매우 짧고 쉬워 빠른 개발이 가능하다.

하지만 단점 또한 존재한다. 웹서비스가 아닌 이미지 처리, 연산처리가 필요한 경우 다양한 라이브러리가 없기 때문에 Node.js가 적합하지 않을 수 있다.

# Node.js Install

https://nodejs.org/ko/ (opens new window)

node 설치 버전 확인

> node -v
  v10.16.0
1
2

node 실행

> node

> const name='yujeong';
  undefined

> name
  yujeong
1
2
3
4
5
6
7
Last Updated: 2022. 6. 5. 오후 3:42:39