크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임으로, 이벤트 기반, 논블로킹 I/O 모델을 사용해 가볍고 효율적입니다.
쉽게 말하자면 노드제이에스는 웹브라우저 밖에서도 자바스크립트를 실행할 수 있는 환경입니다.
Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
2009년에 Ryan Dahl이라는 프로그래머가 JSConf EU 컨퍼런스에서 발표하면서 등장했습니다.
서버를 만들기 위해서 사용되던 그 당시 프레임워크들의 단점을 지적하며 해결하기 위해 node.js를 만들었습니다.
- 자바스크립트는 수많은 웹 개발자들이 이미 사용하는 언어
- 비동기 입출력 / 이벤트 기반 입출력 방식 사용
- 모듈과 패키지를 사용하면서 서버 프로그램 구성
- 이미 다른 사람들이 만들어 놓은 모듈들이 굉장히 많음
이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식입니다.
이벤트로는 클릭이나 네트워크 요청 등이 있을 수 있습니다.
이벤트 기반 시스템에서는 특정 이벤트 발생할 때 무엇을 할지 미리 등록해두어야 하며
이를 이벤트 리스너에 콜백 함수를 등록한다고 표현합니다.
버튼을 클릭할 때 경고창을 띄우도록 설정하는 것을 예로 들자면 클릭 이벤트 리스너에 경고창을 띄우는 콜백 함수를 등록해두면 클릭 이벤트가 발생할 때마다 콜백함수가 실행되어 경고창이 뜨는 것입니다.
하나의 요청 처리가 끝날 때까지 기다리지 않고 다른 요청을 동시에 처리 -> Non-Blocking IO
Non-Blocking IO란, 입출력 처리는 시작만 해둔 채 완료되지 않은 상태에서 다른 처리 작업을 계속 진행할 수 있도록 멈추지 않고 입출력 처리를 기다리는 방법
Walmart, LinkedIn, PayPal, YouTube, Yahoo!, Amazon.com, Netflix 등 여러 곳에서 노드를 활용하고 있습니다.
참고한 자료
| [Node.js] Express 서버 만들기 (0) | 2021.06.25 |
|---|
댓글 영역