
자바스크립트는 싱글 스레드인데 어떻게 비동기 작업이 가능한걸까?
·
Language/JavaScript
✅ 자바스크립트는 싱글 스레드 언어다이 말은 곧, 자바스크립트 코드의 실행은 하나의 메인 스레드에서 순차적으로 이루어진다는 것을 의미한다.자바스크립트의 모든 코드가 동기식으로 처리된다면 하나의 작업이 끝나기 전까지는 다른 작업이 실행되지 않으므로어떤 작업이 오래 걸린다면 웹 페이지가 멈춘듯한 느낌을 받을것이다.그런데 실제로 우리는 `setTimeout`, `fetch`, `Promise`와 같은 비동기 함수를 자주 사용하고 있고,이로 인해 여러 작업을 동시에 수행할 수 있게 된다. 그렇다면 싱글 스레드인 자바스크립트는어떻게 비동기 작업을 다른 코드와 함께 동시에 처리되는 것처럼 보이게 만들까?이를 이해하기 위해선 먼저 자바스크립트가 어떻게 실행되는지,즉 자바스크립트 런타임이 어떤 구조로 되어있는지를 이해..