이번에 배울 개념은 입출력 다중화, I/O Multiplexing 이다. 멀티플렉싱의 사전적 의미를 보면, "하나의 통신채널을 통해서 둘 이상의 데이터(시그널)을 전송하는데 사용되는 기술" 이다. 다시 말하자면, 효율성을 높히기 위해 물리적인 장치를 최소한으로 사용하여 최대한의 데이터를 전송하는 기술이다. 이 개념을 네트워크 소켓에 적용 시키면, 다수의 프로세스를 생성하지 않고도 여러 개의 클라이언트에게 서비스를 제공할 수 있는 기술이 되겠다. 프로세스를 생성하는 데에는 상당히 많은 작업이 요구된다. 많은 양의 연산작업, 잡아먹는 메모리 공간 등등.. 그리고 프로세스 간의 통신 (IPC)도 솔직히 복잡하다. 그래서 I/O 멀티플렉싱이 의미를 가진다. 기존의 I/O 모델들을 살펴보고 멀티플렉싱에 대해 자세..