브라우저 엔진의 작업 처리 우선순위 (feat. 마이크로 테스크 큐, 테스크 큐, 렌더 큐)
브라우저는 렌더링 엔진과 자바스크립트 엔진의 혼합으로 작업이 처리된다.이벤트 루프에 의해 콜 스택이 비워져 있다면 큐에 담겨진 요소들을 선입선출 순서로 콜스택에서 실행시키는데,이 때 큐의 종류에 따라 콜 스택에 담겨지는 우선순위가 달라진다. 첫 번째로 Promise가 반환하는 resolove,reject가 담겨진 마이크로 태스크 큐,두 번째로 렌더링 업데이트 요소들이 담겨진 렌더 큐마지막으로 DOM 이벤트,fetch,setTimeOut,setInterval 등이 담겨진 태스크 큐 순서로 각각의 큐에 담겨진 작업들을 콜 스택에 담은 후 처리되면 그 다음 큐, 그 다음 큐로 실행된다.따라서, 아래와 같이 코드를 작성하더라도 setTimeout의 콜백함수는 0초에 값을 줬더라도 즉시 실행되지않고 1과 3이 출..
2024. 10. 7.