• node.js란?
  • 특징

node.js

  • node.js는 무엇일까?

요약

"확장성"을 중심으로 하는 높은 처리 성능을 가진소프트웨어 플랫폼이며, 비동기 이벤트 주도 JavaScript 런타임으로써 Node.js 는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었다. 더나아가 내장 HTTP 서버 라이브러리를 포함하고 있어 별도의 소프트웨어 없이 웹서버에서 동작가능하다.

위키백과가 설명하는 node.js

Node.js 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.
내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

 

node.js 공식홈페이지에서 설명하는 node.js

비동기 이벤트 주도 JavaScript 런타임으로써 Node.js 는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었습니다. 
왜냐하면, Node.js 에서 I/O를 직접 수행하는 함수는 거의 없으므로 프로세스는 결과 블로킹 되지 않습니다. 아무것도 블로킹 되지 않으므로 Node.js 에서는 확장성 있는 시스템을 개발하는 게 아주 자연스럽습니다.
Node.js 는 좀 더 발전된 이벤트 모델을 선택해서 라이브러리가 아닌 런타임 생성자로 이벤트 루프 제공합니다

용어 정리

+ 블로킹: Node.js 프로세스에서 추가적 js의 실행을 위해 js가 아닌 작업이 완료될 때까지 기다려야만 하는 상황
+ 이벤트 루프: 작업 요청 후, 완료되었을 때 어떤 작업을 진행할지에 대한 콜백 함수를 지정하여
동작 완료 시, 해당 콜백함수 실행하는 동작 방식이다. 

이벤트루프에 큐 형식의 자료구조가 포함있다. 하지만 이벤트 루프는 이 큐를 돌면서 실행하지 않고, 스택을 처리한다.

이벤트루프는 round-robin 방식으로 차례 차례 돌면서 처리되는 특정 작업들의 단계들로 이루어져 있다.



https://nodejs.org/ko/about/

 

About | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

https://nodejs.org/ko/docs/guides/blocking-vs-non-blocking/

 

블록킹과 논블록킹 살펴보기 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

https://nodejs.org/ko/docs/guides/event-loop-timers-and-nexttick/

 

Node.js 이벤트 루프, 타이머, `process.nextTick()` | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

https://ko.wikipedia.org/wiki/Node.js

 

Node.js - 위키백과, 우리 모두의 백과사전

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한

ko.wikipedia.org

 

+요새 프론트엔드에서 node.js를 런타임환경으로 많이 사용한다.

왜 많이 사용하게될까? 답은 댓글로 gogo~~

 

 

 

출처: https://zereight.tistory.com/855

+ Recent posts