왜 큐가 필요한지부터 푸는 결
JS는 한 번에 하나만 처리하는 환경이라, 오래 걸리는 일을 그 자리에서 기다리면 그동안 화면이 통째로 멈춥니다. 이벤트 루프는 그걸 막으려고 지금 할 일과 나중에 할 일을 분리해 돌리는 구조라고 이해합니다. 핵심 차이는 나중에 할 일에도 급이 있다는 점입니다. 마이크로태스크는 지금 하던 일이 끝나면 곧바로, 다음 일로 넘어가기 전에 먼저 처리됩니다. 매크로태스크는 그 한 묶음이 다 끝난 뒤 차례가 옵니다. 그래서 같은 나중에라도 얼마나 나중인지가 다릅니다. 과제에서 이걸 모르고, 작업 사이에 화면을 갱신하려 했는데 마이크로태스크가 계속 끼어 화면이 안 그려진 적이 있었습니다. 그때 둘의 순서를 손으로 이해했습니다. 그래서 저는 이 구조를 멈춤을 피하려고 일에 우선순위를 매기는 장치로 봅니다.