더북(TheBook)

이제 호출 스택이 비었으니 이벤트 루프가 타이머의 콜백 함수를 호출 스택으로 올리고, 타이머의 콜백 함수인 recurse()가 다시 실행됩니다. recurse() 내부의 타이머는 다시 백그라운드에 보내집니다. 호출 스택에 recurse()가 2개 이상 쌓이지 않으니 호출 스택의 최대 크기를 초과할 일이 없습니다.

그림3-16 콜백 함수가 태스크 큐에서 호출 스택으로 이동 후 같은 상황 반복

재귀 함수를 사용할 때는 연산량이 많으면 웹 브라우저가 느려지는 현상이 발생하므로 연산량을 최소화할 수 있게 코드를 작성해야 합니다.

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