March 23, 2021
노드 내부 구조: Node.js core library & Node.js Bindings & V8 & libUV
이벤트기반: 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식 (이벤트 발생시 무엇을 할지 이벤트 리스너에 콜백을 등록)
이벤트 루프: 이벤트 발생시 호출할 콜백 함수를 관리 & 여러 이벤트 동시에 발생시 콜백의 호출 순서 결정. 노드가 종료될 때까지 이벤트 처리를 위한 작업 반복
노드는 libUV 사용해서 I/O 작업을 논블로킹으로 처리(이전 작업 완료될 때까지 기다리지 않고 다음 작업 수행)
프로세스: 운영체제에서 할당하는 작업의 단위/ 노드나 웹 브라우저 등의 프로그램은 개별적인 프로세서
스레드: 프로세스 내에서 실행되는 흐름의 단위/ 프로세스는 스레드를 여러개 생성해서 여러 작업 동시에 처리 가능
노드 실행 ➡ 1개의 프로세스와 그 프로세서 내부의 여러 개의 스레드 생성/ 이 중에서 내가 직접 제어할 수 있는 스레드는 하나 뿐 => 노드가 싱글스레드라고 여겨짐
노드는 크기 작은 많은 수의 데이터 주고받을 떄 적합
출처