온라인 강의 자료모음 기업교육

대표적인 자료구조: 큐

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
AI · 풀스택 · 데이터 로드맵 Dave Lee 한 강사가 설계부터 강의까지 모두
사이트 바로가기

4. 대표적인 자료구조: 큐 (Queue)

1. 큐 구조

  • 줄을 서는 행위와 유사
  • 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
    • 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일
    • FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대

No description has been provided for this image

엑셀로 이해해보기

2. 알아둘 용어

  • Enqueue: 큐에 데이터를 넣는 기능
  • Dequeue: 큐에서 데이터를 꺼내는 기능
  • Visualgo 사이트에서 시연해보며 이해하기 (enqueue/dequeue 만 클릭해보며): https://visualgo.net/en/list

3. 파이썬 queue 라이브러리 활용해서 큐 자료 구조 사용하기

  • queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공
  • 프로그램을 작성할 때 프로그램에 따라 적합한 자료 구조를 사용
    • Queue(): 가장 일반적인 큐 자료 구조
    • LifoQueue(): 나중에 입력된 데이터가 먼저 출력되는 구조 (스택 구조라고 보면 됨)
    • PriorityQueue(): 데이터마다 우선순위를 넣어서, 우선순위가 높은 순으로 데이터 출력

일반적인 큐 외에 다양한 정책이 적용된 큐들이 있음

3.1. Queue()로 큐 만들기 (가장 일반적인 큐, FIFO(First-In, First-Out))

In [8]:
import queue

data_queue = queue.Queue()
In [2]:
data_queue.put("funcoding")
data_queue.put(1)

본 자료 내용을 더 깊이 있게 다룬 온라인 강의를 제공합니다

자료구조와 알고리즘 (파이썬편)

자료구조, 알고리즘 정리, 코딩테스트 대비

In [3]:
data_queue.qsize()
Out[3]:
2
In [4]:
data_queue.get()
Out[4]:
'funcoding'
In [7]:
data_queue.qsize()
Out[7]:
0
In [6]:
data_queue.get()
Out[6]:
1

3.2. LifoQueue()로 큐 만들기 (LIFO(Last-In, First-Out))

데이터 분석/과학 전문가가 되기 위한 체계적인 로드맵입니다

가장 빠른 데이터 분석/과학 풀로드맵 (2025)

데이터 수집 → 분석 → 머신러닝/딥러닝 전과정

In [9]:
import queue
data_queue = queue.LifoQueue()
In [10]:
data_queue.put("funcoding")
data_queue.put(1)
In [11]:
data_queue.qsize()
Out[11]:
2
In [12]:
data_queue.get()
Out[12]:
1

3.3. PriorityQueue()로 큐 만들기

풀스택 개발자가 되기 위한 체계적인 로드맵입니다

가장 빠른 풀스택 개발 로드맵 (2025)

파이썬 → Flask → FastAPI → Flutter 전과정

In [15]:
import queue

data_queue = queue.PriorityQueue()
In [16]:
data_queue.put((10, "korea"))
data_queue.put((5, 1))
data_queue.put((15, "china"))
In [17]:
data_queue.qsize()
Out[17]:
3
In [18]:
data_queue.get()
Out[18]:
(5, 1)
In [19]:
data_queue.get()
Out[19]:
(10, 'korea')

본 자료 내용을 더 깊이 있게 다룬 온라인 강의를 제공합니다

자료구조와 알고리즘 (파이썬편)

자료구조, 알고리즘 정리, 코딩테스트 대비

참고: 어디에 큐가 많이 쓰일까?

  • 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용됨 (운영체제 참조)

큐의 경우에는 장단점 보다는 (특별히 언급되는 장단점이 없음), 큐의 활용 예로 프로세스 스케쥴링 방식을 함께 이해해두는 것이 좋음

4. 프로그래밍 연습

연습1: 리스트 변수로 큐를 다루는 enqueue, dequeue 기능 구현해보기
In [21]:
queue_list = list()

def enqueue(data):
    queue_list.append(data)
    
def dequeue():
    data = queue_list[0]
    del queue_list[0]
    return data
In [22]:
for index in range(10):
    enqueue(index)

데이터 분석/과학 전문가가 되기 위한 체계적인 로드맵입니다

가장 빠른 데이터 분석/과학 풀로드맵 (2025)

데이터 수집 → 분석 → 머신러닝/딥러닝 전과정

In [23]:
len(queue_list)
Out[23]:
10
In [26]:
dequeue()
Out[26]:
2