
큐(Queue)는 선형 자료구조 중 하나로, 선입선출(FIFO)이라는 명확한 규칙을 기반으로 동작한다. 먼저 들어온 데이터가 먼저 처리되는 구조로, 현실 세계의 대기열과 매우 유사하다. 큐는 단순한 구조를 가지고 있지만 운영체제의 스케줄링, 네트워크 처리, 알고리즘 문제 해결 등 다양한 분야에서 핵심적으로 활용된다. 이 글에서는 2026년 기준 학습 흐름에 맞춰 큐의 개념, 내부 구조, 동작 원리, 특징과 활용 사례를 초보자도 이해할 수 있도록 체계적으로 정리한다.
큐(Queue)란 무엇인가? 기본 개념
큐는 데이터를 뒤에서 삽입하고 앞에서 삭제하는 구조를 가진 선형 자료구조다. 가장 먼저 들어간 데이터가 가장 먼저 나오는 선입선출(FIFO, First In First Out) 방식으로 동작한다. 은행 창구 대기줄이나 프린터 출력 대기열과 같은 현실 세계의 흐름을 그대로 반영한 구조라고 볼 수 있다.
큐에서는 데이터가 삽입되는 위치를 rear, 삭제되는 위치를 front라고 부른다. 삽입 연산은 enqueue, 삭제 연산은 dequeue라고 하며, 이 두 연산만으로 큐의 모든 동작이 이루어진다. 이러한 제한된 접근 방식은 데이터 처리 순서를 안정적으로 유지하는 데 매우 효과적이다.
큐의 구조와 동작 원리
큐의 내부 구조는 비교적 단순하지만, 데이터 흐름을 명확하게 관리하도록 설계되어 있다. 새로운 데이터는 항상 rear에 추가되고, 처리가 완료된 데이터는 front에서 제거된다. 이로 인해 큐 내부에서는 데이터의 순서가 절대 뒤바뀌지 않는다.
큐는 배열이나 연결 리스트를 이용해 구현할 수 있다. 배열 기반 큐는 구현이 간단하지만, front에서 데이터가 제거된 후에도 메모리 공간이 바로 재사용되지 않는 문제가 발생할 수 있다. 이를 보완하기 위해 원형 큐(Circular Queue)가 사용된다. 원형 큐는 배열의 끝과 처음을 연결해 메모리를 효율적으로 활용한다.
연결 리스트 기반 큐는 크기 제한이 없고 데이터 삽입과 삭제가 모두 효율적이지만, 포인터를 관리해야 하므로 메모리 사용량이 증가할 수 있다.
큐의 핵심 특징과 장단점
큐의 가장 큰 특징은 공정성이다. 먼저 들어온 데이터가 반드시 먼저 처리되기 때문에 작업 처리 순서가 매우 명확하다. 이 특성은 시스템 안정성과 직결되며, 동시에 여러 작업이 처리되는 환경에서 특히 중요하다.
장점으로는 데이터 처리 흐름이 예측 가능하고 구현이 직관적이라는 점을 들 수 있다. 반면 단점으로는 중간 데이터에 직접 접근할 수 없다는 점이 있다. 큐는 front와 rear 외의 위치에 접근하는 것이 불가능하므로, 특정 데이터를 임의로 검색하거나 수정하는 작업에는 적합하지 않다.
또한 큐 역시 오버플로우와 언더플로우 문제가 발생할 수 있다. 큐가 가득 찬 상태에서 데이터를 삽입하려 하면 오버플로우가 발생하고, 비어 있는 큐에서 데이터를 제거하려 하면 언더플로우가 발생한다.
큐의 대표적인 활용 사례
큐는 다양한 시스템과 알고리즘에서 핵심적으로 활용된다. 운영체제에서는 프로세스 스케줄링을 위해 큐를 사용해 작업 처리 순서를 관리한다. 네트워크에서는 데이터 패킷을 순서대로 처리하기 위해 큐 구조가 활용된다.
알고리즘 분야에서는 너비 우선 탐색(BFS)이 대표적인 큐 기반 알고리즘이다. BFS는 그래프나 트리 구조에서 가까운 노드부터 차례대로 탐색하는 방식으로, 큐의 FIFO 특성을 그대로 활용한다.
또한 프린터 출력 관리, 고객 대기 시스템, 비동기 작업 처리 등 실생활과 밀접한 다양한 문제에서도 큐 구조가 사용된다.
큐(Queue) 학습 시 꼭 알아야 할 포인트
큐를 학습할 때는 단순히 FIFO 구조를 암기하는 것보다, 왜 큐가 필요한지를 이해하는 것이 중요하다. 큐는 데이터의 처리 순서를 강제로 유지함으로써 시스템의 안정성과 예측 가능성을 높여준다.
또한 큐는 스택, 트리, 그래프와 같은 다른 자료구조와 긴밀하게 연결되어 있다. 큐를 정확히 이해하면 BFS, 시뮬레이션 문제, 비동기 처리 구조를 훨씬 쉽게 이해할 수 있다.
결론
큐(Queue)는 선입선출이라는 단순한 규칙을 기반으로 하지만, 그 활용 범위는 매우 넓다. 데이터 처리 순서를 명확히 유지해야 하는 모든 상황에서 큐는 가장 안정적인 선택이 된다. 큐의 구조와 동작 원리를 정확히 이해하면 알고리즘 문제 해결은 물론, 시스템 구조를 바라보는 시야도 한층 넓어질 것이다.