바르고 뜨겁게

[NodeJS] 노드란 무엇인가? 본문

자바스크립트/Node Js

[NodeJS] 노드란 무엇인가?

RightHot 2018. 12. 13. 00:48

노드는 런타임 가상머신(Vm)이다.

노드를 깔면 노드안에 가상머신이 있기 때문에 어느 환경에서나 자바스크립트를 사용가능하다.

원래 자바스크립트는 웹브라우저내에서 동작하지만 노드의 등장으로 웹브라우저 밖에서도 사용할 수 있게 되었다.


node 결과는 크롬의 개발자 도구의 console 창과 똑같다. 둘다 REPL(Read, Evaluate, Print, Loop) 방식을 사용하기 때문이다.

노드의 특징: 이벤트기반, 논블로킹 I/O모델, 싱글쓰레드



이벤트 기반 (event-driven)

호출스택과 태스크큐에 작업이 없더라도, 이벤트 리스너가 이벤트를 기다리고 있는 것


논블로킹 I/O

호출스택에서 태스크큐로 보내서 눈에 보이는 코드와 다르게 실행 순서를 바꾸는 개념

자바스크립트는 싱글쓰레드이기 때문에 동시작업이 불가능, 싱글쓰레드를 극복하기 위해 사용되는 개념

PS. 파일시스템의 경우 멀티쓰레드로 동작함



Comments