더북(TheBook)

백그라운드(background)는 타이머를 처리하고 이벤트 리스너를 저장하는 공간입니다. setTimeout()과 같은 타이머 함수가 실행되면 백그라운드에서 시간을 재다가 지정 시간이 되면 콜백 함수를 태스크 큐로 보냅니다. 또한, addEventListener()(태그에 이벤트 리스너를 다는 함수로, 4.3 이벤트와 이벤트 리스너에서 자세히 다룹니다.)로 추가한 이벤트를 저장했다가 이벤트가 발생하면 콜백 함수를 태스크 큐로 보냅니다. 백그라운드에서 코드를 실행하는 것이 아니라 실행될 콜백 함수들을 태스크 큐로 보낸다는 것을 기억하세요.

태스크 큐(task queue)는 실행될 콜백 함수들이 대기하고 있는 공간입니다. 큐(queue)는 우리말로 ‘줄’이라는 뜻입니다. 사람들이 가게 앞에 줄을 서면 먼저 선 사람부터 차례로 들어가죠? 태스크 큐도 마찬가지입니다. 태스크 큐에 먼저 들어온 함수부터 실행됩니다. 다만, 태스크 큐도 함수를 직접 실행하지 않습니다. 함수는 호출 스택에서만 실행됩니다. 호출 스택에 들어와야 함수가 호출(실행)된다고 생각하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.