
Node.js란?
Node.js는 크롬 브라우저의 V8 자바스크립트 엔진으로 만들어진 자바스크립트 런타임입니다.
Node.js는 단순히 웹서버 개발 용도로만 사용되는 것이 아닌,
클라이언트 앱 개발, 네이티브 앱 개발, 프론트엔드 개발 등 다양한 분야에서 사용되고 있으며
JavaScript를 웹브라우저 밖에서 사용할 수 있게 만든 장본인입니다.
Node.js 특징
-
V8 JavaScript Engine
-
이벤트 기반
-
비동기 논블로킹 I/O
자바스크립트 런타임
노드는 자바스크립트 런타임 환경입니다. 구글이 크롬을 출시하면서 V8 엔진을 사용했고 라이언 달(Ryan Dahl)은 이를 이용해서
2009년 처음 노드를 만들기 시작했습니다.
이벤트 기반
이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식입니다.
이벤트는 클릭이나 네트워크 요청 등을 예로 들 수 있습니다.
이벤트 리스너와 콜백함수를 미리 등록 해놓고 이벤트가 발생하면 콜백함수가 호출되어 사용자의 요청에 반응하는 방식입니다.
비동기 논블로킹 I/O
논블로킹 방식은 오래 걸리는 작업을 효율적으로 처리할 수 있습니다. 오래 걸리는 함수를 백그라운드로 보내서 다음 코드를 먼저 실행시키고 그 결과를 돌려받는 방식으로 작업을 처리합니다.
예를 들면 짜장면 배달을 하고 다 먹을 때까지 기다렸다가 그릇을 받아가는것이 아닌, 배달을 먼저 마치고 그릇은 나중에 찾아오는 방식으로 효율성을 높입니다. - Youtube 얄팍한 코딩사전
이를 위해 콜백 함수를 많이 사용하게 되며 콜백지옥이라는 말이 나오기도 했으나 Promise, Async/Await 문법으로 극복하게 됩니다
'개발 > Node.js' 카테고리의 다른 글
Express 웹소켓 에러 (0) | 2020.08.17 |
---|