노드는 v8 엔진으로 만들어진 자바스크립트 런타임이다.
V8 complies JavaScript directly to native machine code
자바스크립트를 기계어로 컴파일 해준다.
프로그래밍 언어가 구동되고 있는 환경
즉, node.js는 자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이다.
유저의 버튼 클릭이나 네트워크에 리소스를 요청 하는 것 등
Input을 주면 Output을 반환하는 모델
이벤트 기반 및 논블로킹 I/O 모델을 정의하면, 유저의 클릭이나 네트워크에 리소스를 요청하는 이벤트가 논블로킹으로 이루어지는 Input Output model
javascript를 컴파일 하여 구동하고
이벤트 기반의 non blocking 모델로 속도가 빠르다.
별도의 설치를 하지 않아도, node 상에서 쓸 수 있는 모듈이 있다.
node 와 함께 번들링 되어있는 모듈
require("")
방식으로 사용 할 수 있다.
예시
ex)
const fs = require('fs')
const http = require('http')
fs.readFile('./something.json', (err, data) => {
console.log(data);
})
http.get('http://localhost:5000/api', (res) => {
console.log(res)
})
Node Package Manager
세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나
package.json에 그 정보들이 모두 담겨있다.