Node?

*node란 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 이라 할 수 있습니다. JavaScript 런타임 이란 JavaScript가 동작, 실행되는 상태를 의미한다.*

Node.js의 특징1

node.PNG

Node.js는 Chrome V8 엔진으로 빌드된 브라우저 외부 환경에서 자바스크립트 애플리케이션 개발에 사용되며, 필요한 모듈, 파일 시스템, HTTP 등의 빌트인 API 를 제공하는 자바스크립트 런타임 환경 이다. 런타임 환경 이란 프로그래밍 언어가 구동되는 환경이다. Node.js 이전에는 자바스크립트가 구동되는 환경은 브라우저뿐이었다. 라이언 달이란 사람이 만들었으며 최근에는 deno 도 만들었다.

*Non-blocking I/O, 단일 스레드(Single Thread)이지만 이벤트 루프를 통한 높은 request 처리 성능을 갖는다. 보통은 DB로 부터 데이터를 취득해 웹페이지에 표시할 때 일반적으로 DB 처리에 대기시간(blocking)이 발생하기 때문에 웹페이지 표시가 지연되는데, Node.js는 모든 API 가 비동기로 동작하여 Non-blocking I/O가 가능하고 단일 스레드에 이벤트 루프로 효과적인 Request 처리 성능을 갖는 것이다.*

데이터 실시간 처리로 빈번한 I/O 가 있는 SPA 환경엔 적합하지만, CPU 사용률이 높은 애플리케이션에는 권장되지 않는다.

REPL 런타임 & JavaScript 런타임

Node.js의 특징2

nodejs.PNG