[자료구조] Stack 과 Heap

자몽이·2025년 10월 27일

자료구조

목록 보기
5/5
post-thumbnail

Stack 과 Heap 에 대해 알아보자.


Stack 이란 ❔


Stack에는 값 형식(value Type)이 저장되는 메모리 공간이다.
Stack은 쌓는 구조 (LIFO)로 동작한다.
함수가 호출될 때 마다 Stack Frame에 지역변수, 매개변수, 리턴 주소가 쌓인다.

  • 메모리 할당/해제가 자동으로 이루어진다.
  • 함수가 끝나면 해당 Stack이 자동으로 제거된다.
  • 값 형식 변수는 Stack에 직접 저장된다.


Heap 이란 ❔


Heap은 동적으로 생성되는 객체를 저장하는 영역이다.
대표적으로 new 키워드로 만든 객체나 배열이 Heap에 저장된다.


  • 메모리를 직접 해제하지 않아도 된다. (GC가 정리)
  • 참조형(Reference Type) 변수가 Heap을 참조한다.
  • Stack에는 Heap의 주소만 저장된다.


가비지 컬렉션(GC)


Heap에 있는 객체는 더 이상 참조되지 않으면 자동으로 정리된다.
이를 Garbage Collection이라 부른다.
C#에서는 GC 타이밍을 개발자가 직접 제어하지 않는다.
필요 이상으로 new를 남발하지 않는 습관이 중요하다.

profile
개발자가 되는 그 날 까지

0개의 댓글