본문 바로가기
Server/Node.js

Node.js 란?

by print_soo 2023. 8. 17.

웹 페이지를 만들 때 사용하는 HTML이라는 언어가 있고 함께 쓰는 언어인 JavaScript라는 언어도 있다.

JavaScript는 HTML을 조작하고 클릭을 통해 이벤트를 발생시키도록 하는 언어이다.

 

그렇다면 이 JavaScript는 누가 구동시킬까?

 

바로 '브라우저'가 구동시킨다

브라우저 엔진(JavaScript)
크롬 V8
파이어폭스 Chakra
IE SpiderMonkey

 

여러 브라우저 엔진들 중에서 크롬의 V8이 너무 잘 작동해서 구글에서 V8을 따로 출시하게 된다. 이게 바로 Node.js이다.

 

즉, Node.js란 JavaScript 실행창, 실행환경이다. (= 런타임)

 

Node.js를 사용하면 브라우저가 아닌 로컬 PC에서도 자바스크립트를 실행시켜줄 수 있다. 

 

 


Node.js의 특징 - Non blocking I/O

일반 server VS Node.js server

[일반 server]

1. 1초가 걸리는 작업 좀 해줘
2. 서버는 1초동안 작업을 진행한다.
3. 200초가 걸리는 작업 좀 해줘
4. 서버는 200초 동안 작업을 진행한다.
5. 서버는 200초 동안 다른 작업을 진행하지 못한다.

 

[Node.js server]

1. 200초가 걸리는 작업 좀 해줘
2. 1초가 걸리는 작업 좀 해줘
3. 들어온 순서에 상관없이 먼저 처리 된 순서대로 출력한다.
4. 1초가 걸리는 작업 완료 후 출력
5. 200초가 걸리는 작업 완료 후 출력

 

 

장점

  • 많은 요청도 멈추거나 대기시간 없이 처리가 가능하다. (SNS, 채팅 서비스)
  • 코드가 매우 짧고 쉽다. - 프로토 타입을 만들기 쉽다.

 

단점

  • 웹 서비스가 아닌 용도의 서버로 사용하기에는 추천하지 않는다.