웹 개발
자바스크립트 - 콜 스택
나타콩
2020. 1. 2. 13:46
콜 스택(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만개 정도의 스택을 쌓을 수 있다고 생각하면 되고
그 이상을 쌓으면 오류가 발생하기도 하고 메모리를 과도하게 사용하는
비효율적인 프로그램이 될 수도 있기 때문에 주의해야합니다.