[Node.js] Node.js란
📌Node.js란 무엇인가
크롬 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 등 여러 곳에서 노드를 활용하고 있습니다.
참고한 자료