Node.js는 구글 크롬의 자바 크롬의 JS엔진(V8)로 빌드된 JS런타임이다. 여기서 JS엔진이란 JS로 쓰여진 스크립트로 기계가 실행 가능한 과정을 만들어 내는 머신을 의미한다. JS런타임은 프로그램에 실행동안 사용가능한 내장된 라이브러리를 의미한다.
JS는 일반적으로 크롬과 같은 브라우저에 내장되어 있었다. 즉슨, JS는 그동안 브라우저에 종속되어 있었다. 이런 JS를 브라우저 밖, 즉 컴퓨터 내 다양한 용도로 확장하기 위해 만들어 진것이 Node.js이다.
Node.js를 이용한다면 python과 같이 로컬의 file system도 이용 가능하고, 서버도만들고, 크롤링도 가능하다.
JS를 동일하게 사용해서 서버단 로직을 처리할 수 있음
-> 새로운 언어를 습득하지 않아도 JS를 활용해 서버기술을 개발/응용할 수 있다.
개발이 빠르고 쉽다. 서버 설치부터 실행까지 빠르다
Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 지녔다
이벤트 기반 비동기 방식이라 서버 무리가 적다
npm(node package manger)를 통해 다양한 모듈을 제공한다. npm을 이용해 자신이 필요한 라이브러리와 패키지를 검색해 설치하고 사용할 수 있기 때문에 개발 속도와 효율성이 크게 증가한다
Data Science같이 복잡한 데이터를 처리하기 위해 메모리, 램, cpu 등 하드웨어를 사용해야 하는곳엔 어울리지 않다. 하드코어한 처리를 위해서는 python django가 적합하다.