스택(Stack)과 큐(Queue)는 프로그래밍에서 매우 자주 사용되는 기본 자료구조입니다.
두 구조 모두 데이터를 저장하고 꺼내는 방식에 차이가 있으며, 상황에 따라 적절히 선택해서 사용해야 합니다.
1. 스택(Stack) – 한쪽 끝에서만 삽입/삭제가 가능한 구조
스택은 후입선출(LIFO, Last In First Out) 방식으로 동작하는 자료구조입니다.
즉, 나중에 들어간 데이터가 먼저 나온다는 특징을 갖습니다.
1️⃣ 스택의 핵심 연산
- 푸시(Push) : 데이터를 스택의 맨 위에 넣는 연산
- 팝(Pop) : 스택의 맨 위에서 데이터를 꺼내는 연산
아래 그림처럼 수직으로 쌓아 올린 형태로 이해하면 쉽습니다.
- Push → 위로 쌓기
- Pop → 위에서부터 꺼내기
2️⃣ 스택이 유용하게 쓰이는 상황
- “되돌리기(Undo)” 기능 만들 때
- 웹 브라우저의 “뒤로 가기” 기능
- 최근 저장한 데이터를 가장 먼저 활용해야 할 때

2. 큐(Queue) – 한쪽에서 넣고, 반대쪽에서 꺼내는 구조
큐는 선입선출(FIFO, First In First Out) 방식으로 동작합니다.
즉, 먼저 들어온 데이터가 가장 먼저 나오는 구조입니다.
현실에서 줄을 서는 방식(먼저 온 사람이 먼저 들어감)과 동일합니다.
1️⃣ 큐의 핵심 연산
- 인큐(Enqueue) : 큐의 한쪽 끝(뒤쪽)에 데이터를 삽입
- 디큐(Dequeue) : 큐의 반대쪽 끝(앞쪽)에서 데이터를 꺼냄
2️⃣ 큐가 유용하게 쓰이는 상황
- 프린터 작업 대기열
- 운영체제의 프로세스 스케줄링
- 네트워크 패킷 처리
- 순서대로 데이터를 처리해야 할 때

정리하면
스택과 큐는 가장 기본적이지만 매우 중요한 자료구조입니다.
- 스택은 최근 데이터를 먼저 사용해야 할 때
- 큐는 순서대로 데이터를 처리해야 할 때
각 구조의 특징을 이해하면 프로그램의 흐름을 보다 직관적이고 효율적으로 설계할 수 있습니다.
'컴퓨터 과학' 카테고리의 다른 글
| [자료구조] 해시 테이블 (0) | 2025.12.07 |
|---|---|
| [자료구조] 연결 리스트 (0) | 2025.12.07 |
| [자료구조] 배열 (0) | 2025.12.07 |
| [운영체제] 가상 메모리 - 내부 단편화 (0) | 2025.12.01 |
| [운영체제] 가상 메모리 - 외부 단편화 (0) | 2025.11.30 |