핵심 인사이트 (3줄 요약)
- 본질: 스택(Stack)은 LIFO, 큐(Queue)는 FIFO 원칙을 따르는 기본 자료 구조다.
- 가치: 호출 스택, 작업 대기열, BFS/DFS 등에서 자주 쓰인다.
- 판단: 데이터 흐름의 순서를 설계할 때 가장 먼저 떠올려야 하는 기본 도구다.
Ⅰ. 개요 및 필요성
스택과 큐는 자료 구조의 가장 기본적인 두 축이다. 순서를 어떻게 처리할지에 따라 둘 중 하나를 고르면 된다.
단순하지만 활용 범위가 매우 넓다.
- 📢 섹션 요약 비유: 접시를 쌓아 두는 방식과 줄을 서는 방식의 차이다.
Ⅱ. 아키텍처 및 핵심 원리
Stack: push / pop
Queue: enqueue / dequeue
| 구조 | 원리 | 예 |
|---|---|---|
| Stack | LIFO | 함수 호출, 되돌리기 |
| Queue | FIFO | 작업 대기, BFS |
스택은 마지막에 넣은 것이 먼저 나오고, 큐는 먼저 들어온 것이 먼저 나온다.
- 📢 섹션 요약 비유: 나중에 놓은 책이 맨 위, 먼저 온 손님이 먼저 입장하는 것이다.
Ⅲ. 비교 및 연결
| 구분 | Stack | Queue |
|---|---|---|
| 순서 | LIFO | FIFO |
| 주요 연산 | push/pop | enqueue/dequeue |
| 용도 | 재귀/역추적 | 스케줄링/대기열 |
| 관련 개념 | 의미 |
|---|---|
| Deque | 양방향 |
| Circular Queue | 원형 큐 |
스택과 큐는 알고리즘의 흐름과 운영 시스템의 작업 처리에서 모두 중요하다.
- 📢 섹션 요약 비유: 쌓는지, 줄 세우는지에 따라 처리 방식이 달라진다.
Ⅳ. 실무 적용 및 기술사 판단
체크리스트
- LIFO와 FIFO를 구분하는가?
- 연산의 시간 복잡도를 아는가?
- 스택 오버플로/언더플로를 고려하는가?
- 큐의 병목과 순서를 관리하는가?
- 상황에 맞는 구조를 고르는가?
안티패턴
- 스택과 큐를 혼동하는 설계
- 대기열 순서를 무시하는 설계
- 재귀 깊이와 스택 한계를 무시하는 설계
- 목적 없이 자료 구조를 선택하는 설계
기술사 관점에서는 스택과 큐를 "순서 제어의 기본 자료 구조"로 설명해야 한다.
- 📢 섹션 요약 비유: 쌓을지, 줄 설지 먼저 정해야 한다.
Ⅴ. 기대효과 및 결론
스택과 큐를 이해하면 알고리즘과 시스템 설계를 더 명확히 할 수 있다.
결론적으로 스택은 LIFO, 큐는 FIFO를 구현하는 기본 자료 구조다.
- 📢 섹션 요약 비유: 순서가 바뀌면 결과도 달라진다.
관련 개념 맵
Stack
↓
LIFO
↓
Queue
↓
FIFO
관련 키워드 및 발전 흐름도
List
↓
Stack / Queue
↓
Deque
↓
Scheduling / Traversal
어린이를 위한 3줄 비유 설명
쌓아 두면 나중에 올린 게 먼저 나와요.
줄 서면 먼저 온 사람이 먼저 가요.
스택과 큐는 그런 순서예요.