javascript 런타임
프로그래밍 언어가 구동되는 환경
이벤트 기반, 논 블로킹 I/O 모델을 사용해 가볍고 효율적이다.
이벤트 기반: 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식
논 블로킹 I/O 모델 (input, output) - 블로킹 I/O 1) I/O 작업이 진행되는 동안 유저 프로세스는 자신의 작업을 중단한 채 대기하는 방식 2) 긴 시간의 작업일 경우 대기시간이 길어짐
- 논 블로킹 I/O 1) 이전 작업이 완료될 때 까지 기다리지 않고, 다음 작업들을 수행 2) 오래걸리는 작업은 백그라운드에서 처리
브라우저 -Node.js→ 서버, 머신러닝, 데스크탑 앱 …. 분야를 넓힘
싱글 스레드
실행 순서대로 호출스택에 쌓기
백그라운드 필요 작업은 백그라운드로 이동: delay()
백그라운드에서 작업이 완료되면 테크스 큐로 이동: 작업
호출 스택들이 다 완료되면 이벤트 루프가 테스큐 작업을 호출 스택으로 이동