javaScript 런타임 (동기, 비동기)
비동기 방식과 멀티 쓰레드 방식의 차이를 알아보다가 javaScript 런타임 환경에서 비동기 방식이 어떻게 작동하는지에 대해서 적어본다. javaScript(이하 js)엔진은 싱글 스레드 구성이다. js엔진 내부에는 Heap 메모리와 Stack 이 각 하나 존재하며 대부분의 요청은 Stack 에서 처리한다. 하지만 하나의 Stack으로는 당연하게도 비동기 방식이 되지 않는다. (블로킹) 그렇기에 ajax와 같은 비동기 방식은 브라우저에 있는 WebApi와 taskQue, Event Loop를 활용한다. 간단하게 정리하면 setTimeOut 혹은 ajax와 같은 호출이 발생하면 WebApi에 해당 신호를 저장하여 실행한 결과 값을 taskQue에 순서대로 저장한다. 이렇게 저장된 리턴 값들은 js 엔진에..
javaScript
2023. 1. 6. 17:16