이벤트 기반

 

  • 이벤트 기반이란 이벤트 발생시 미리 지정해둔 작업을 수행하는 방식을 의미합니다.

  • 이 시스템에서는 특정 이벤트가 발생할 때 무엇을 할지 미리 등록 해두어야 합니다.

  • 이것을 이벤트 리스너에 콜백(callback)함수를 등록한다고 표현합니다.

  • 이벤트 기반 방식으로 동작하는 노드에서는 발생한 이벤트가 없거나 이벤트의 처리가 끝나면 다음 이벤트가 발생할 때까지 대기합니다.

 

이벤트 루프

 

  • 여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백함수를 호출할지를 이벤트 루프가 판단합니다.

  • 함수 호출 부분을 발견했다면 호출한 함수를 호출 스택에 넣습니다.

  • 호출스택은 나중에 들어온 내용이 먼저 출력되는 Last-In-First-Out 형태입니다.

  • 정리하자면, 이벤트 발생 시 호출할 콜백 함수들을 관리하고, 호출된 콜백 함수의 실행 순서를 결정하는 역할을 담당합니다. 노드가 종료될 때까지 이벤트 처리를 위한 작업을 반복 하므로 루프라고 불립니다.

 

태스크 큐

 

  • 이벤트 발생 후 호출되어야 할 콜백 함수들이 기다리는 공간입니다. 콜백들이 이벤트 루프가 정한 순서대로 줄을 서 있어서 콜백 큐라고도 부릅니다.

  • 태스크 큐는 먼저들어온 내용이 먼저 출력되는 First-In-First-Out 형태입니다.

  • 태스크 큐는 여러 개의 큐로 구성되어 정해진 규칙에 따라 콜백 함수들을 호출 스택으로 부릅니다.

  • 이벤트 루프는 호출 스택이 비어있으면 태스크 큐에서 함수를 하나씩 가져와 호출 스택에 넣고 실행합니다.

 

백그라운드

 

  • 타이머나 I/O 작업 콜백 또는 이벤트 리스너들이 대기하는 곳입니다.

+ Recent posts