Javascript/Node.js

[Node.js] 자바스크립트 런타임

Frankie 2021. 7. 19. 22:07

자바스크립트는 하나의 콜 스택을 가지는 싱글 스레드 프로그래밍 언어

 

* 싱글 스레드 - 한 번에 하나의 명령 집합

 

그렇기 때문에 자바스크립트는 동기식으로 작업을 처리할 수 밖에 없는데, 이로 인해서 많은 문제가 발생

-> 이를 해결하는 방식이 자바스크립트 런타임

 

자바스크립트 런타임 - 오래 걸리는 일은 백그라운드에서 처리하고 간단하게 처리할 수 있는 작업들만 콜 스택에서 수행한다면 효율적으로 처리할 수 있다.

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