Node.js

thislifehyeon·2021년 8월 11일
0

https://nodejs.org/ko/

노드는 v8엔진으로 만들어진 자바스크립트 런타임이다

v8엔진 : 자바스크립트를 기계어로 컴파일 해주는 엔진을 말한다.
런타임 : 프로그래밍 언어가 구동되고 있는 환경을 말한다.

=> '자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이다.'

이는 자바스크립트를 브라우저 밖에서 실행할 수 있게 해준다.

이벤트 기반 논블로킹 I/O 모델

이벤트 : 유저의 클릭이나 네트워크에 리소스를 요청하는 것 등
블로킹 : 다음 함수의 실행이 현재 함수가 종료된 후에 이루어진다.
논블로킹 : 다음 함수의 실행이 현재 함수가 종료되는 것을 기다리지 않고 이루어진다.
I/O : input, output. 입력이 있으면 출력이 있는 모델

=> 클릭, 리소스요청과 같은 이벤트가 동시 다발적으로 이루어지는 I/O 모델

따라서
Node.js는 자바스크립트를 컴파일하여 구동하며 논블로킹 모델이기 때문에 속도가 빠르다.

NPM(node package manager)

세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나.
package.json에 정보가 기록되어 있다.

프로세스, 스레드

프로세스 : 메모리에 올라와 실행되고 있는 프로그램의 인스턴스. 실행되고 있는 프로그램(독립적인 개체).
스레드 : 프로세스 내에서 할당받은 실행의 단위. 스레드는 프로세스 당 CPU의 코어 개수만큼 생성될 수 있습니다.

  • 스레드는 프로세스 내의 메모리 공간을 공유하지만, 각각의 프로세스는 별도의 메모리 공간을 갖습니다.

https://medium.com/@vdongbin/node-js-%EB%8F%99%EC%9E%91%EC%9B%90%EB%A6%AC-single-thread-event-driven-non-blocking-i-o-event-loop-ce97e58a8e21

0개의 댓글