더북(TheBook)

메시지 큐

메시지 전달 IPC 중에서 널리 쓰이는 방식으로 메시지 큐(message queue)가 있다. 메시지 큐는 명명 파이프와 비슷하게 선입선출 원칙에 따라 메시지를 전달한다. 이름에 괜히 ‘큐’가 들어가는 것이 아니다. 그러나 명명 파이프와는 달리 여러 작업이 함께 메시지를 주고받을 수 있다.

메시지 큐는 시스템 내 작업 간의 결합을 느슨하게 할 수 있는 중요한 수단이다. 정보를 생산하는 작업과 정보를 사용하는 작업이 직접 상호작용하지 않게 해주기 때문이다. 이 점은 개발자가 프로그램의 실행 제어를 하는 데 있어 운신의 폭을 크게 넓혀준다. 예를 들어, 모종의 이유로 수신한 메시지를 처리하지 못했다면 메시지를 다시 큐에 돌려놓을 수도 있다.

다음은 메시지 큐를 사용한 코드의 예다.

# Chapter 5/message_queue.py
import time
from queue import Queue
from threading import Thread, current_thread


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.