Node.js(Javascript) 주요 개념

JuhyeokLee·2022년 1월 11일
0
post-thumbnail

REPL(Read Evaluate Print Loop)

사용자가 입력하고 평가(실행)하고 결과를 사용자에게 반환하는 환경
Ex) CLI 환경, 크롬 개발자도구 콘솔

호출스택(콜스택)

함수들이 호출되면서 스택처럼 쌓이는 스택(LIFO)

태스크 큐

이벤트리스너의 콜백과 같이 비동기 함수를 넣어두는 큐
태스크 큐도 여러개의 큐로 나눠지고 호출 스택에 불러와질 때 우선 순서가 존재 (FIFO)
Ex) setTimeout, setInterval, setImmediate, promise, async await

이벤트 루프

호출스택이 비워질 경우 태스크 큐의 우선순위를 확인하여 함수를 호출 스택으로 불러오는 역할

이벤트기반(Event driven)

호출스택의 함수를 실행하고 비동기 함수들은 태스크 큐에서 대기하다가 이벤트 루프에 의해 호출스택으로 불려 실행되는 전체적인 흐름

논 블로킹 I/O

태스크 큐로 보내서 실행순서가 변경되는 것
ex) FileSysytem, Network

싱글 스레드

한번에 한가지의 일만 해서 만약 어떠한 일이 진행되고 있으면 일이 끝날 때 까지 대기

알아둘 것!!

논 블로킹 I/O와 싱글 스레드
싱글스레드이면 어떤 작업이 진행되고 있을 경우에 대기해야하지만 논 블로킹I/O 이기에 그 오래걸리는 작업을 태스크 큐에 두고 다른 작업을 진행할 수 있게 됨.

모든 콜백함수가 태스크 큐에 들어가는 것이 아니고 이벤트리스너에 달린 콜백함수가 태스크 큐에 들어가게 됨.

profile
성장하는 개발자가 되겠습니다~

0개의 댓글