1. 자바 스크립트 런타임
노드는 자바스크립트의 런타임이다. (런타임은 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻한다. )
기존의 자바 스크립트는 프로그램을 인터넷 브라우저위에서만 실행할 수 있었다.
2. 이벤트 기반
이벤트 기반은 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식이다. ex. 클릭, 네트워크 요청
이벤트는 미리 등록을 해둬야하는데 이것을 이벤트 리스너에 콜백 함수를 등록한다고 표현한다. 노드도 이벤트 리스너에 등록해둔 콜백 함수를 호출한다.
*이벤트 루프란?
여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백 함수를 호출할지 결정한다.
*태스크 큐란?
이벤트 발생 후 호출되어야 할 콜백 함수들이 기다리는 공간이다
*백그라운드란?
타이머나 I/O 작업 콜백 또는 이벤트 리스너들이 대기하는 곳이다. ex. setTimeout(run, 3000); 이면 run은 백그라운드에서 3초 대기했다 태스크 큐로 이동한다. 그 이후에 호출 스택으로 올린다.
3. 논 블로킹 I/O
오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 그 함수가 다시 태스크 큐를 거쳐 호출 스택으로 올라오기를 기다리는 방식이다. I/O 작업에서 시간적 이득을 많이 볼 수 있다.
setTimeout(콜백, 0)은 코드를 논블로킹으로 만들기 위해 사용하는 기법이다.
4. 싱글 스레드
노드는 싱글스레드, 멀티 프로세싱 방식이다. ➡️ I/O가 많은 작업에 적합하다.
'Backend Study > Node.js' 카테고리의 다른 글
Node.js 모듈 이용하기 (0) | 2022.08.04 |
---|---|
Node.js 설치하기 (0) | 2022.08.03 |
자바 스크립트 var, let, const 차이점 (0) | 2022.08.02 |
Node.js 파라미터 전달받기 (0) | 2022.07.22 |
Node js. 시작하기 (npm, express ..) (0) | 2022.07.22 |