노드는 v8엔진으로 만들어진 자바스크립트 런타임이다
v8엔진 : 자바스크립트를 기계어로 컴파일 해주는 엔진을 말한다.
런타임 : 프로그래밍 언어가 구동되고 있는 환경을 말한다.
=> '자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이다.'
이는 자바스크립트를 브라우저 밖에서 실행할 수 있게 해준다.
이벤트 기반 논블로킹 I/O 모델
이벤트 : 유저의 클릭이나 네트워크에 리소스를 요청하는 것 등
블로킹 : 다음 함수의 실행이 현재 함수가 종료된 후에 이루어진다.
논블로킹 : 다음 함수의 실행이 현재 함수가 종료되는 것을 기다리지 않고 이루어진다.
I/O : input, output. 입력이 있으면 출력이 있는 모델
=> 클릭, 리소스요청과 같은 이벤트가 동시 다발적으로 이루어지는 I/O 모델
따라서
Node.js는 자바스크립트를 컴파일하여 구동하며 논블로킹 모델이기 때문에 속도가 빠르다.
세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나.
package.json에 정보가 기록되어 있다.
프로세스 : 메모리에 올라와 실행되고 있는 프로그램의 인스턴스. 실행되고 있는 프로그램(독립적인 개체).
스레드 : 프로세스 내에서 할당받은 실행의 단위. 스레드는 프로세스 당 CPU의 코어 개수만큼 생성될 수 있습니다.