AI 코딩 툴이 RAM을 잡아먹는 이유 (그리고 해결 방법)
Source: Dev.to
The Problem
Claude, Code, Codex 혹은 유사한 AI 코딩 어시스턴트를 사용할 때, 시간이 지날수록 머신이 점점 느려지고—RAM 사용량이 증가하고, 팬이 돌아가며, 결국 강제 재시작이 필요해지는 현상을 경험했을 겁니다. 대부분은 AI 도구를 탓하지만, 실제 원인은 보통 고아(child) 프로세스입니다.
Claude/Code 세션을 시작할 때마다 자식 프로세스가 생성됩니다. 세션이 종료될 때—특히 크래시나 강제 종료 후—이 자식 프로세스들이 항상 정상적으로 종료되는 것은 아닙니다. 이들은 고아가 되어 계속 실행되며 RAM을 차지합니다.
How Bad Is It?
제가 직접 겪은 사례는 32 GB RAM을 탑재한 MacBook Pro가 완전히 멈춰버린 경우였습니다:
- Load average: 2.30 (보통은 ~0.4–0.8)
- Idle 프로세스가 차지한 RAM: ~22 GB
Why This Happens
근본 원인은 간단합니다: 프로세스 수명 주기 관리는 어렵기 때문입니다. Claude/Code 세션이 정상 종료될 때는 정리를 시도하지만, 각 세션마다 몇몇 프로세스가 살아남습니다. 일주일간 무거운 사용을 하면 수십 개의 좀비 프로세스가 남아 있게 됩니다.
The Fix: zclean
저는 이러한 고아 프로세스를 자동으로 찾아 정리해 주는 작은 CLI zclean을 만들었습니다.
Installation
npx thestackai zclean init
이 명령은 두 단계의 보호 장치를 설정합니다.
Safety Model
가장 중요한 설계 결정은 부모 프로세스가 살아 있으면 절대 건드리지 않는다는 것입니다. zclean은 다음과 같은 경우에만 프로세스를 종료합니다:
- 터미널 탭에서 실행 중인 의도적인
vite dev서버 → 손대지 않음 - tmux 안에서 실행 중인
node api.js→ 손대지 않음 - 죽은 AI 세션에서 남은 진짜 좀비만 → 종료
See It In Action
zclean
Found 8 zombie processes
PID 26413 node 367 MB orphan 18h (was claude mcp server)
Total: 8 zombies, 20 GB reclaimable
zclean yes
Cleaned 8 zombie processes
Reclaimed 20 GB
Check for Zombies
비활성 node 프로세스가 좀비인지 직접 작업 관리자를 통해 확인하거나, 간단히 다음 명령을 실행하면 됩니다:
npx thestackai zclean
Links
- GitHub:
- NPM:
기여를 환영합니다.