harnesslog.dev

Claude Code, AI, 개발 이야기

KO · EN
H
hwangjungmin

Claude Code는 세션마다 자식 프로세스를 여러 개 만든다. MCP 서버, 하위 에이전트, 헤드리스 Chromium, esbuild 감시자 같은 것들인데, 정상 종료하면 대부분 정리되긴 한다. 근데 충돌이나 강제 종료 시에는 그렇지 않다. 부모 프로세스는 사라졌는데 자식들은 계속 살아서 RAM을 조용히 잡아먹는 거다.

GitHub 이슈 보면 힙이 93GB까지 늘어난 사례, 대화창 하나 열었더니 프로세스 두 개가 각각 11.6GB씩 차지한 사례도 있더라고. 하루 종일 세션 열고 닫다 보면 금방 쌓인다.

zclean은 두 가지 방식으로 정리한다. Claude Code가 종료될 때 즉시 실행되는 SessionEnd 훅, 그리고 훅이 놓친 걸 잡는 시간별 백그라운드 스캔이다. 부모 프로세스가 살아있는 건 건드리지 않고 고아 상태인 것만 대상으로 한다.

나는 Mac에서 Claude Code 세션을 여러 개 띄워두고 열고 닫고 백그라운드로 돌리면서 쓰는 편인데, 이유도 모르고 메모리가 계속 차던 게 zclean 설치 후로 한결 나아졌다.