설명을 하기 전에 용어부터 알고 가는 것이 좋겠습니다
프로그램을 실행하기 전에, Nodejs는 싱글쓰레드입니다. 말 그대로 쓰레드가 하나라는 뜻입니다.
싱글쓰레드인데 어떻게 처리 속도가 빠를 수 있을까요??
그 이유는 이벤트 루프(event loop) 에 있습니다.
HI I am event loop!
⬆⬆ 이 아이를 따라가볼게요! ⬆⬆
이벤트 루프는 하나의 작업을 콜백 함수와 함께 작업 쓰레드로 보냅니다.
작업은 함수 단위로 콜 스택에 쌓입니다.
비동기적 특징으로, 작업이 끝났다는 응답을 기다리지는 않습니다. 다만 작업이 종료되면, 쓰레드는 콜백 함수를 실행하고 싶다고 이벤트 루프에 요청합니다.
이벤트 루프는 그 요청을 받고 콜백 함수를 콜백 큐에 등록합니다.
여기까지가 제가 정리해본 Node.js의 기본 구동 방식입니다. 저는 이 정도만 이해하고 개념 책을 보는데 큰 문제는 없었던 것 같아요.
하지만, 사실 힙 영역과 WebAPI 등 생략한 부분도 존재합니다.
이것은 언젠가,,, [심화편] 에서 다뤄보도롤 할게요 힛
안뇽