Stack, Queue, Heap

썩은요플렛's avatar
Dec 13, 2023
Stack, Queue, Heap
Contents
Stack
 

Stack

 
First In Last Out 즉 먼저 들어간 원소가 나중에 나온다. stack에 먼저 들어간 원소가 밑으로 가고 계속해서 쌓이는 것이 stack의 특징 호출 시에 가장 위에 있는 것이 가장 먼저 호출 된다
 

Queue

First In First Out Stack과는 반대로 먼저 들어간 원소가 먼저 나오는 것을 말한다. 작업 스케줄링과 트래픽 관리, 프린터 작업의 대기열 등에서 Queue를 사용한다.
 
 

Heap 메모리

동적 메모리 할당이 이루어지는 메모리 영역. 프로그램이 실행되는 동안 필요에 따라 메모리를 할당하고 해제 할 수 있음. 힙 메모리는 주로 객체나 데이터를 동적으로 할당하기 위해 사용되며, 수명에 일정하지 않은 데이터를 관리하기에 좋다.
 
💡
특징
 
  • 동적 할당: 프로그램 실행 중에 필요할 때 메모리를 할당하고, 사용이 끝나면 해제할 수 있습니다. 이는 정적 할당이나 스택 할당과 대조된다.
  • 유연성: 힙 메모리는 크기가 정해져 있지 않고, 프로그램의 요구에 따라 자유롭게 크기를 변경할 수 있습니다. 이로 인해 메모리 사용의 효율성이 높아진다.
  • 메모리 관리: 힙 메모리 관리는 개발자가 직접 해야 하며, 이를 위해 malloc, free (C 언어)와 같은 함수나 new, delete (C++)와 같은 연산자를 사용한다. 가비지 컬렉션(Garbage Collection)을 지원하는 언어에서는 런타임 시스템이 메모리를 자동으로 관리합니다.
  • 성능: 힙 메모리 할당과 해제는 상대적으로 비용이 많이 드는 연산이다. 스택 메모리와 달리, 힙 메모리는 포인터를 통해 접근하며, 메모리 단편화(fragmentation)가 발생할 수 있다.
 
Share article

RottenYogurt's Development Blog