프로세스 격리가 강하지만 연결마다 메모리와 생성 비용이 큽니다.
다중 클라이언트 전략
fork, thread, 이벤트 방식은 모두 여러 연결을 처리하지만 메모리, 문맥 전환, 동기화 부담이 다릅니다.
코드가 직관적이지만 공유 리스트와 broadcast에는 lock 설계가 필요합니다.
채팅 메시지는 TCP 경계가 아니므로 길이 또는 구분자를 명확히 둡니다.
느린 클라이언트에게 쓰기가 막히면 전체 broadcast 지연을 만들 수 있습니다.
잠금을 오래 잡은 채 send를 호출하지 않도록 대상 목록만 복사합니다.
1,000 연결에서 1,000 스레드는 메모리와 스케줄링 부담이 큽니다.
동시성 모델과 메시지 경계 문제를 함께 설명합니다.