← 질문 목록
#156깊이 0
스택과 큐는 각각 어떤 상황에서 선택해야 하는가?
자료구조 · 알고리즘기초
스택은 가장 최근 데이터를 먼저 처리해야 할 때 쓰고, 큐는 들어온 순서대로 데이터를 처리해야 할 때 선택한다.
| 기준 | 스택 (Stack) | 큐 (Queue) |
|---|---|---|
| 입출력 방식 | LIFO (후입선출) | FIFO (선입선출) |
| 주요 용도 | 되돌리기, 재귀 처리 | 작업 대기열, 버퍼 |
| 알고리즘 | 깊이 우선 탐색 (DFS) | 너비 우선 탐색 (BFS) |
스택은 입력된 역순으로 돌아가는 이력 관리에 유용하며, 큐는 유입된 요청을 순서대로 소화하는 완충 지대에 알맞다.
스택은 함수 호출(Call Stack)이나 실행 취소(Undo)처럼 직전의 상태를 기억해야 하는 곳에 필수적이다. 반면 큐는 이메일 발송 대기열이나 프린터 인쇄 작업처럼 순차적인 처리가 보장되어야 하는 비동기 시스템의 기초가 된다.
구현에 쓰는 자료구조의 비용도 따져야 한다. 스택은 메모리 한계로 인한 오버플로우를 주의해야 하고, 큐는 데이터를 꺼낼 때 발생하는 배열 내 요소 이동 비용을 줄이기 위해 원형 큐나 연결 리스트 구조를 고민해야 한다.
추천 꼬리질문
관련 질문
- 스택과 큐의 가장 큰 차이는 무엇인가?자료구조 · 알고리즘스택과 큐의 선택 기준을 결정하기 위해서는 두 자료구조의 가장 큰 차이점을 이해해야 하므로 동일한 기초 개념을 공유한다.
- 스택과 큐는 어떤 상황에서 구분해 쓰는가?자료구조 · 알고리즘두 질문 모두 스택과 큐의 사용 상황과 선택 기준이라는 동일한 개념을 다루고 있다.
- 우선순위 큐를 힙으로 구현하는 이유는 무엇인가?자료구조 · 알고리즘우선순위 큐와 일반 큐는 모두 데이터를 저장하고 관리하는 큐 계열의 자료구조로서 선택 기준을 공유한다.
- SQL과 NoSQL은 어떤 기준으로 선택하는가?데이터베이스
- 실행 시점과 사용자 인지 여부로 어떤 수단을 고르는가?모바일