콜 스택 (호출 스택)

개념

프로그램이 함수 호출을 추적할 때 사용한다

현재 어떤 함수가 동작하고 있는지, 그 함수 내에서 어떤 함수가 동작하는지, 다음에는 어떤 함수를 동작하여야 하는지 등을 제어한다

스택의 LIFO (후입선출) 특성을 생각하면 호출 스택도 비슷한 원리로 동작함을 알 수 있다

메모리 구조에서 스택이 의미하는 것이 바로 이 콜 스택이다

힙이랑 다른 점

동작 방식

const say = () => {
	return "hi i am mouth";
}

const mouth = () => {
	say();
}

const body = () => {
	mouth();
}

body();

위와 같은 함수 구조가 있다고 생각해보자

  1. 스크립트가 함수를 호출하면 인터프리터는 이를 호출 스택에 추가하고, 함수를 수행하기 시작한다
  2. body 함수 내부의 코드를 실행한다
  3. mouth 함수 내부의 코드를 실행한다
  4. say 함수 내부의 코드를 실행한다