데이터 사이언스/알고리즘
Stack Overflow
데이터분석가 이채은
2025. 2. 14. 19:36
스택(Stack) 메모리 개념
컴퓨터의 메모리는 "스택(Stack)과 힙(Heap)" 두 영역으로 나뉜다.
메모리 구조 | 설명 |
스택(Stack) 메모리 | 함수 호출 시 지역 변수, 매개변수가 저장됨 (작은 용량, LIFO 구조) |
힙(Heap) 메모리 | 동적 할당된 데이터가 저장됨 (크기가 크지만, 관리 필요) |
- 스택 메모리는 한정적이며, 너무 많이 사용하면 Stack Overflow 발생
2025.01.20 - [데이터 사이언스/알고리즘] - Heap Overflow
Stack Overflow 발생 원인
- 무한 재귀(Recursive Function)
- 재귀 호출이 계속 발생하면서 스택이 꽉 참
- 너무 깊은 재귀 호출
- 너무 깊이 호출하면 스택 메모리가 초과됨
- 비효율적인 재귀 알고리즘 (예: 피보나치)
- 중복된 계산이 많아 스택을 과도하게 사용 → 메모이제이션(DP) 필요
Stack Overflow 해결 방법
- 재귀 호출 대신 반복문 사용
- 재귀 대신 for 문을 사용하면 스택 사용 없이 해결 가능
- 메모이제이션(DP) 활용
- 이전 값을 저장하여 중복 계산을 방지 → 스택 낭비 줄이기