자바스크립트는 하나의 콜 스택을 가지는 싱글 스레드 프로그래밍 언어
* 싱글 스레드 - 한 번에 하나의 명령 집합
그렇기 때문에 자바스크립트는 동기식으로 작업을 처리할 수 밖에 없는데, 이로 인해서 많은 문제가 발생
-> 이를 해결하는 방식이 자바스크립트 런타임
자바스크립트 런타임 - 오래 걸리는 일은 백그라운드에서 처리하고 간단하게 처리할 수 있는 작업들만 콜 스택에서 수행한다면 효율적으로 처리할 수 있다.
Web API
- 브라우저와 함께 제공
- HTPP 전송, setTimeout, DOM Event 등과 같은 다양한 작업 수행
- 브라우저에서 캐싱, 데이터베이스 저장소를 사용할 수 있게 해준다.
즉, Web API를 사용하여 백그라운드에서 비동기적으로 작업을 처리할 수 있다.
이벤트 루프와 콜백 큐
- 코드를 쭉 실행하다가 모르는 함수가 나오면 콜 스택은 Web API로 전달
- Web API에서는 해당 작업을 자체적으로 처리 후 콜백 큐로 전달
- 이렇게 콜백 큐로 들어온 작업들은 콜 스택이 비어있을 경우에만 콜 스택으로 이동하게 되는데 이 때 이벤트 루프가 콜 스택이 비어있는지 주기적으로 확인하고 콜백 큐에 있는 작업들을 이동시키는 역할을 한다.
'Javascript > Node.js' 카테고리의 다른 글
옵셔널 체이닝 - '?.' (0) | 2021.09.02 |
---|---|
[Node.js] 개념 (0) | 2021.07.20 |
[JavaScript] 자바스크립트 (0) | 2021.07.19 |
Postman (0) | 2021.04.16 |
Express (0) | 2021.04.16 |