node.js

Node.js는 "비동기 이벤트 기반 자바스크립트 런타임"입니다.

  • Node.js는 여러 요청들을 멀티 스레드 방식으로 처리하지 않는다.
    멀티 스레드 방식이란 요청 마다 하나의 스레드를 생성시켜 작업을 처리 하는 방식이다.

 

  • Node.js는 여러 요청을 싱글 스레드로 처리한다.
    싱글 스레드로 비동기 처리한다. 비동기 처리를 위하여 내부적으로 멀티 스레드를 이용한다.

 

  • 이벤트 기반 비동기 방식
    1. 이벤트가 발생할 경우 콜백함수가 실행되고 태스크 큐로 보내진다.
    2. 이벤트 루프가 스택에 작업이 있는지 확인한다.
    3. 스택에 쌓인 작업이 없다면 태스크 큐에 있는 작업을 스택에 쌓는다. 

 

 

아직 의심되는 부분들

  • 콜백함수의 실행은 어디서 이루어지는가?
  • 태스크 큐에 쌓인 콜백함수는 실행 대기 중인가 실행 완료 값인가?