jongviet

Sep 5, 2021 - 자바스크립트 작동 원리 필기 본문

javascript & typescript

Sep 5, 2021 - 자바스크립트 작동 원리 필기

jongviet 2021. 9. 5. 21:36

*9월5일

-non-blocking, asynchronous, single-threaded, callback queue, eventloop 자바스크립트를 가장 잘 설명해주는 단어들이다.

->자바스크립트는 multi가 아닌 single-threaded language이기에 stack에 있는 task 중, 한번에 하나의 task만 수행 가능하다. 이로인해 작업을 synchronous하게 할 시, 특정한 작업이 끝날 때까지 아무런 작업을 하지 않고 대기하기 때문에, 클라이언트로부터 수 많은 요청이 오는 것이 일반적인 요즘에는 적합하지 않다.

->이를 극복하기 위해 등장한 것이 바로 asynchronous하게 작업을 처리하는 것이다. 한번에 a, b, c 작업을 진행 시, a 작업이 끝날 때까지 기다리지 않고, 전달 받은 request를 서버쪽으로 던지고, 지체 없이 b, c 작업을 수행한다. 그 중 먼저 끝난 작업을 순차적으로 response해줘서 클라이언트 단에서는 막힘없는 서비스를 경험하게 된다.

->자바스크립트는 하기 그림과 같이 클라이언트의 요청에 따라 여러 함수들이 실행되게 되고, 하나의 stack에 task들이 쌓이게 된다. 그 후 LIFO 구조로 하나씩 수행되게 되고, await, callback 등이 작동함에 따라 çallback queue에 담긴 후순위 task들이 eventloop를 돌아서 stack에 자리잡고 실행되게 된다.

 

JS process

Comments