Files
2nd/10_Wiki/Topics_Blog/Call Stack.md
T

32 lines
2.3 KiB
Markdown

---
id: P-REINFORCE-AUTO-CAST-001
category: "10_Wiki/💡 Topics/AI"
confidence_score: 0.99
tags: [auto-reinforced, call-stack, computer-science, execution-context, memory-management, recursion]
last_reinforced: 2026-04-20
---
# [[Call Stack]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> "함수들이 쌓아 올리는 기억의 탑: 프로그램이 어떤 순서로 함수를 호출해왔는지, 함수가 끝나면 어디로 돌아가야 하는지를 관리하는 '후입선출(LIFO)' 방식의 지능형 작업 일지이자 메모리 영역."
## 📖 구조화된 지식 (Synthesized Content)
콜 스택(Call Stack)은 컴퓨터 프로그램의 현재 실행 중인 서브루틴(함수)들에 대한 정보를 저장하는 스택 자료구조입니다.
1. **동작 메커니즘**:
* **Push**: 함수를 호출하면 해당 함수의 실행 컨텍스트(변수, 리턴 주소 등)가 스택 맨 위에 쌓임.
* **Pop**: 함수 실행이 종료되면 스택 맨 위에서 제거되고, 이전 함수로 제어권이 넘어감.
2. **주요 이슈**:
* **Stack Overflow**: 재귀 함수가 끝나지 않고 계속 스택을 쌓거나, 함수 중첩이 너무 깊어 메모리 한계를 넘었을 때 발생.
* **Debugging**: 에러 발생 시 출력되는 'Stack Trace'는 이 스택의 기록을 역순으로 보여주어 버그의 원점을 추적하게 도움. (Analysis와 연결)
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌**: 과거의 스택 정책은 단순히 '순차 실행'을 관리하는 정적 정책이었으나, 현대 자바스크립트 등 비동기 언어 정책에서는 '이벤트 루프(Event Loop)' 및 '마이크로태스크 큐'와 상호작용하며 복잡한 비동기 흐름을 관리하는 동적 정책으로 이해됨(RL Update).
- **정책 변화(RL Update)**: 브라우저 성능 최적화 정책에서, 메인 스레드 점유 정책(Main thread blocking)을 막기 위해 콜 스택을 너무 무겁게 유지하지 않고 작업을 쪼개는 '비동기 스택 정책'이 웹 앱 성능의 핵심 지표가 됨. (Blocking과 연결)
## 🔗 지식 연결 (Graph)
- [[Blocking]], [[Analysis]], [[Technical-Architecture]], Memory-Management, Recursion
- **Modern Tech/Tools**: Chrome DevTools Call Stack view, V8 Engine stack management.
---