메모리 구조
✒️ 2025-05-15 15:51 내용 수정
수제비 2024 정보처리기사 필기 5판 1권의 내용을 정리
TCPSchool의 내용을 정리
- 컴퓨터에서 프로그램이 실행되기 위해선 먼저 프로그램이 메모리에 로드(load)되어야 한다.
- 프로그램에서 사용할 변수들을 저장할 메모리가 필요하기 때문에 운영체제로부터 메모리 공간을 할당 받는다.
- Java의 Resources/Java/메모리 구조도 참고.

스택 프레임(stack frame)
스택 영역에 저장되는 함수의 호출 정보
- 함수가 호출되면 스택 영역에 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역 변수 등이 저장되며, 이를 스택 프레임이라고 한다.
- 스택 프레임에 있는 정보를 이용하여 함수의 호출이 모두 끝난 뒤 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있다.
- 스택 영역에선
push동작으로 데이터를 저장하고,pop으로 동작 데이터를 인출하는 후입선출(LIFO, Last-In-First-Out) 방식으로 동작한다.

- 스택 오버플로우(stack overflow) : 재귀 호출로 인해 함수가 무한히 호출되면 스택에 스택 프레임이 계속해서 쌓여 여유 공간이 부족해 데이터가 스택 영역을 넘어가서 저장되는 현상이다.
- 프로그램 오작동 및 보안 상에 취약점이 발생할 수 있어 C에선 스택 오버플로우가 발생하면 에러를 발생 시켜 곧바로 프로그램을 종료 시킨다.