JavaScript의 호출 스택(Call Stack)은 프로그램에서 함수의 호출과 실행을 추적하는 메커니즘입니다. 이는 자바스크립트 엔진이 함수 실행의 순서를 관리하는 방식입니다. 호출 스택은 LIFO(Last In, First Out) 방식으로 작동하는 스택 구조를 가집니다. 즉, 가장 마지막에 호출된 함수가 가장 먼저 완료되어 스택에서 제거됩니다.
function firstFunction(){
secondFunction();
console.log("첫 번째 함수 호출");
}
function secondFunction(){
thirdFunction();
console.log("두 번째 함수 호출");
}
function thirdFunction(){
console.log("세 번째 함수 호출");
}
firstFunction();
위의 코드 실행 과정에서 호출 스택의 상태는 다음과 같이 변화합니다:
firstFunction 호출 → 스택: [firstFunction]secondFunction 호출 → 스택: [firstFunction, secondFunction]thirdFunction 호출 → 스택: [firstFunction, secondFunction, thirdFunction]thirdFunction 완료 → 스택: [firstFunction, secondFunction]secondFunction 완료 → 스택: [firstFunction]firstFunction 완료 → 스택: []FILO(First In, Last Out)과 FIFO(First In, First Out)는 데이터 구조에서 자료의 순서를 관리하는 두 가지 주요 방식입니다. 이들은 특히 큐(Queue)와 스택(Stack) 자료구조에서 각각 사용됩니다. 이러한 자료구조는 프로그래밍에서 다양한 알고리즘과 프로세스 관리, 데이터 저장 및 접근 방식을 구현하는 데 사용됩니다.