본문 바로가기

웹 개발

자바스크립트 - 콜 스택

콜 스택(call stack)이란 실행이 되었을 때 호출이 되는 것들이 메모리에 적재되고

마치 스택과 같은 구조로 적재되는 것입니다.

실행 컨텍스트라고도 하는 이것은 자바스크립트의 동작원리 라고 볼 수 있습니다.

 

함수선언이 다음과 같이 되어있다고 가정합니다

function first(){
    second();
    console.log("first");
}

function second(){
    third();
    console.log("second");
}

function third(){
     console.log("third");
}

first();

 

실행이 되면 다음과같이 아래서부터 호출스택이 쌓이게 됩니다.

third
second
first
main

 

메인에서부터 third까지 호출되는 순서대로 하나씩 쌓이고

실행이 될때는 third부터 역순으로 실행이됩니다.

실행이 끝나면 그 함수영역은 스택에서 pop이 되게 됩니다.

 

보통 1만개 정도의 스택을 쌓을 수 있다고 생각하면 되고

그 이상을 쌓으면 오류가 발생하기도 하고 메모리를 과도하게 사용하는

비효율적인 프로그램이 될 수도 있기 때문에 주의해야합니다.