여러 클라이언트를 동시에
지금까지 만든 서버에는 모두 같은 약점이 있었습니다. 한 번에 한 클라이언트만 상대할 수 있다는 점입니다. 한 손님과 대화하는 동안 다른 손님은 문밖에서 기다려야 했습니다. 현실의 서버는 그래서는 안 됩니다. 수십, 수백, 수천 명이 동시에 접속해도 모두를 매끄럽게 상대해야 합니다.
이 PART에서는 그 한계를 돌파합니다. 먼저 왜 기존 서버가 한 명밖에 못 받는지 그 본질을 파헤칩니다. 그다음 가장 직관적인 해법인 프로세스와 스레드로 일을 나누는 방법을 배우고, 그 방법의 비용도 함께 살펴봅니다. 이어서 전혀 다른 발상인 I/O 멀티플렉싱을 만납니다. 한 가닥의 흐름으로 여러 소켓을 동시에 지켜보는 select와 poll입니다. 마지막으로 이 모든 것을 모아, 여러 사람이 동시에 떠드는 멀티 클라이언트 채팅 서버를 만듭니다.
이 PART를 마치면 동시성이라는 서버 프로그래밍의 가장 중요한 주제를 손에 넣게 됩니다. 그리고 더 깊은 고성능 세계로 들어가는 PART 06의 입구에 서게 됩니다.