공부할 것 !

메모리 구조 이해하기

sejin2 2024. 5. 12. 18:36

컴퓨터의 메모리 구조는 크게 스택(Stack), 힙(Heap), 데이터(Data), 코드(Code) 영역으로 나눌 수 있다.
각 영역은 프로그램이 실행되는 동안 다양한 역할을 수행한다.

1. 코드(Code) 영역

  • 코드 영역은 실행할 프로그램의 기계어 코드가 저장되는 곳이다.
  • 이 영역에는 함수, 루프, 변수 등 프로그램을 구성하는 모든 명령어가 포함된다.

2. 데이터(Data) 영역

  • 데이터 영역은 전역 변수와 정적 변수(static variable)가 저장되는 곳이다.
  • 프로그램의 실행 시간 동안 초기화된 데이터와 초기화되지 않은 데이터(subsection)로 나뉜다.

3. 스택(Stack) 영역

  • 스택 영역은 함수의 호출과 관련된 임시 데이터, 지역 변수, 매개 변수, 반환 값 등을 저장한다.
  • 함수의 호출이 시작될 때 생성되고, 종료될 때 메모리에서 해제된다.
  • LIFO(Last In First Out) 원칙에 따라 데이터가 관리된다.

4. 힙(Heap) 영역

  • 힙 영역은 사용자에 의해 동적으로 할당되고 해제되는 메모리이다.
  • 이 영역은 주로 크기가 커서 스택 영역에 저장하기 어려운 데이터를 저장하거나, 프로그램 실행 도중 생성되어야 하는 객체와 배열 등을 저장한다.
  • 힙 영역은 메모리 누수가 발생하기 쉬운 영역으로, 사용 후에는 반드시 메모리를 해제해야 한다.