본문 바로가기

Node.js

Node.js 란? ( 소개 및 특징 ① 편 _ 자바스크립트 런타임)

▶ Node.js란 ?

크롬 v8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 언어로 작성언어는 자바스크립트를 활용했다.
특징으로는 싱글스레드 이벤트루프와 논블로킹 I/O모델로 높은 처리성능을 가지고 있다. 또한, 내장 HTTP서버 라이브러리를 포함하고 있어서 웹서버에서 아파치 등과 같은 별도로 설치하지 않아도 동작할 수 있다.
 
-  공식 사이트 : https://nodejs.org/ko/about/
-  위키백과 : https://ko.wikipedia.org/wiki/Node.js


▶ Node.js의 특징 

- 자바스크립트 런타임

(런타임이란? 특정언어로 만든 프로그램들을 실행할 수 있는 환경을 의미한다)

노드는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 해준다.

기존 자바스크립트는 브라우저 위에서만 실행 할 수 있는 제약이 있었고, 브라우저 외에 실행하도록 시도를 했지만 실행속도가 나지 않아 호응을 얻지 못했었다.(여기서 브라우저는 자바스크립트의 런타임이다.)

하지만, 구글이 V8 엔진을 사용해 크롬을 출시했는데, V8엔진은 다른 자바스크립트 엔진과 다르게 속도가 빨랐고, 기존에 가지고 있던 속도 문제가 해결되자 라이언 달이라는 사람이 V8엔진 기반의 노드 프로젝트를 시작했다.



노드의 내부는 사진처럼 구성되어있다.

노드는 V8엔진과 libuv라는 라이브러리를 사용하고, libuv라이브러리는 비동기 입/출력, 이벤트 루프에 중점을 둔 라이브러리이다.
보통 I/O(입/출력)처리는 요청이 올 때마다 스레드를 사용했지만, libuv는 비동기 논블로킹I/O 모델을 구현하고 있다.
비동기 방식이 적용될 수 있는 네트워크 통신이나 파일접근 관련한 것 외에도 스레드, 프로세스, 이벤트 루프, DNS, TTY 등 다양한 기능들이 적용되어있다.

 

 

 

 

 

node.js를 처음 시작할 때 알아야 할 특징들을 정리해보려고 한다.
노드의 특징들은 몇가지 더 있기 때문에 node.js의 특징편은 계속 작성할 것이다!

 

 

참고:
https://psyhm.tistory.com/9

https://hyeonu1258.github.io/2018/04/05/node.js%20%EB%82%B4%EB%B6%80%EA%B5%AC%EC%A1%B0/

https://www.kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=28&dbnum=180361&mode=detail&type=techreport