📚 Reference
📜 Chapter
Stack Trace (스택 추적)
- Stack Trace
- 스택 추적
- 프로그램이 실행 중에 에러가 발생했을 때, 해당 지점까지 도달하기 위해 거쳐온 함수 호출들의 경로를 보여주는 보고서라고 생각하면 된다.
핵심 원리
- JavaScript 엔진은 함수를 호출할 때마다 Call Stack(호출 스택)이라는 곳에 정보를 쌓는다.
- 함수 실행: 스택의 맨 위에 쌓임 (Push)
- 함수 종료: 스택의 맨 위에서 빠져나감 (Pop)
- 에러 발생: 현재 스택에 쌓여 있는 함수들의 목록을 스냅샷처럼 찍어서 보여줌
스택 추적 읽는 법
- 에러 메시지를 보면 보통 아래에서 위로 호출 순서가 기록된다.
function a() {
b();
}
function b() {
c();
}
function c() {
throw new Error("문제가 생겼어요!");
}
a();
이 코드를 실행하면 다음과 같은 Stack Trace가 출력됩니다.
Error: 문제가 생겼어요!
at c (index.js:10:9) <- 에러가 직접 발생한 곳
at b (index.js:6:3) <- c를 호출한 곳
at a (index.js:2:3) <- b를 호출한 곳
at index.js:13:1 <- 가장 먼저 실행된 전역 코드
- 맨 윗줄: 에러 메시지와 종류
- 그 아래 줄들: 함수 이름, 파일 경로, 그리고 Line:Column(줄:칸) 번호