왜 풀
요청당 Claude Agent SDK 서브프로세스 spin up이 비싸(시작 비용, MCP attach, 시스템 프롬프트 warm-up). Chat-style 워크로드면 conversation_id로 키된 long-lived 클라이언트 풀이 극적으로 빨라. cwkPippa의 ClaudeSessionManager가 정확히 이 풀.
풀이 소유하는 것
풀 소유 — lifecycle(첫 사용에 connect, TTL이나 shutdown에 disconnect), error handling(dead 클라이언트 교체), capacity cap(최대 동시 서브프로세스), metrics(active count, lifetime, last-use timestamp). DB connection pool처럼 다뤄 — 같은 규율 적용.
Stale 서브프로세스 위생
Long-lived 서브프로세스가 잊으면 리소스 leak. 주기적 풀 sweep — N 분 활동 없는 클라이언트 drop, MCP 연결 free, 이유 로그. 풀 크기 bound; full하면 새 세션 거부, queueing forever 대신 failure surface.
원칙: 풀이 자기 컴포넌트. Glue 코드처럼 X, 인프라처럼 빌드.