더북(TheBook)

메시지 큐는 다양한 곳에서 활용된다. 운영체제에서는 프로세스의 스케줄링, 라우터에서는 패킷을 처리하기 전 저장하는 버퍼의 목적으로도 쓰인다. 클라우드 애플리케이션을 구성하는 마이크로서비스 간의 정보 교환에도 메시지 큐가 쓰인다. 또한 비동기 처리에도 메시지 큐가 널리 쓰이는데, 이번 장 마지막 부분에서 몇 가지 사례를 살펴볼 것이다. 그 전에 먼저 UDS를 소개하겠다.

유닉스 도메인 소켓(UDS)

소켓(sockets)이라고 하면 여러 가지 의미가 있지만, 여기서 말하는 소켓은 시스템 내에서 스레드 간 정보 교환에 쓰이는 유닉스 도메인 소켓이다. 네트워크 소켓 등의 다른 의미는 10장에서 다룰 것이다.

소켓을 이용한 양방향 선입선출 통신으로 메시지 전달 IPC를 구현할 수 있다. 어떤 스레드가 소켓에 정보를 기록하면, 다른 스레드가 소켓에서 정보를 읽는 식이다. 소켓은 이러한 연결의 엔드포인트를 나타내는 객체다. 두 엔드포인트에 해당하는 스레드가 각자 소켓을 가지고 이들 소켓끼리 연결되는 구도다. 따라서 스레드 간에 정보를 주고받으려면 한쪽 소켓의 출력 스트림에 정보를 기록하고 다른 소켓의 입력 스트림에서 정보를 읽으면 된다.

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