Node.js 는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.
💎 개인 정리 : Chrome V8엔진으로 성능이 향상된 자바스크립트를 크롬외부에서도 사용할 수 있게 만들어준 V8엔진 기반 자바스크립트 실행기( 주로 백엔드 서버 구축에 사용된다. )
✅ Chrom V8 : 웹 브라우저를 만드는데 기반을 제공하는 오픈 소스 자바스크립트 엔진
✅ 런타임 : 컴퓨터 프로그램이 실행되고 있는 동안의 동작
개발자 Ryan Dahl은 성능이 높아진 프로그래밍 언어 JavaScript의 사용을 웹 브라우저에 국한시기키 않고 웹 브라우저 외부에서도 사용하기 위해 개발을 진행하던 중 2009년 5월 27일 오픈 소스 JavaScript 엔진인 크롬 V8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼 Node.js를 처음 출시하게된다.
1. Event-driven
사용자의 명령·마우스 클릭·다른 프로그램의 메시지·키보드 글쇠 입력 등의 ‘사건’에 따라, 제어 흐름이 결정되어 일을 하도록 하게끔 만들어진 프로그래밍 언어 방식을 뜻한다.
2. Non-blocking I/O
호출된 함수가 바로 리턴해서 호출한 함수에게 제어권을 넘겨주고, 호출한 함수가 다른 일을 할 수 있는 기회를 줄 수 있으면 NonBlocking이다.
그렇지 않고 호출된 함수가 자신의 작업을 모두 마칠 때까지 호출한 함수에게 제어권을 넘겨주지 않고 대기하게 만든다면 Blocking이다.
NodeJS 는 V8엔진 기반으로 비동기 이벤트 드리븐 방식을 사용하기 때문에 속도가 빠르다는 장점을 가지고 있다.
참조 :