본문 바로가기
programming_kr/기술면접

Javascript에서 Microtask에 대해서 설명하여 보세요.

by JSsunday 2023. 2. 11.
728x90

면접관 :

Javascript에서 Microtask에 대해서 설명하여 보세요.

 

면접자 : 

비동기 작업을 처리하려면 관리가 필요한데 EMCA에서는 PromiseJobs라는 내부 큐를 명시합니다. V8 엔진에서는 이를 V8 엔진에선 이를 '마이크로태스크 큐(microtask queue)'라고 부릅니다. 

  • 마이크로태스크 큐는 먼저 들어온 작업을 먼저 실행합니다(FIFO, first-in-first-out)
  • 실행할 것이 아무것도 남아있지 않을 때만(call stack이 비어있을 때) 마이크로태스크 큐에 있는 작업이 실행되기 시작합니다.

실제로 코드가 실행되면서 일반적인 함수들은 콜스택에 쌓이게 되고 마이크로태스크는 마이크로태스크 큐에, 매크로태스크는 매크로태스크 큐에 쌓이게 됩니다. 이벤트루프가 주기적으로 돌면서 콜스택이 비어있는지 확인하게 되고 비어있을 경우 마이크로태스크, 매크로태스크 순으로 콜스택으로 가져와 실행하게 됩니다.

728x90

댓글