가이드/Claude Code의 메모리 과다 사용

Mac에서 Claude Code가 메모리나 CPU를 너무 많이 쓰나요? 찾아서 되찾는 방법

Atta 🐬

Vitals 창립자

게시일

간단한 답

Claude Code는 터미널에서 claude라는 이름의 프로세스로 실행되며, 작업하면서 다른 프로세스를 시작합니다. MCP 서버, 하위 에이전트, 그리고 작업 결과를 확인하는 데 쓰는 개발 서버와 테스트 실행입니다. Claude Code가 무거워지는 이유는 두 가지입니다. 몇 시간 동안 실행된 세션은 메모리와 CPU 사용량이 늘 수 있는데, 종료하고 claude --resume로 이어서 시작하면 정상으로 돌아옵니다. 그리고 Claude Code가 시작한 프로세스는 세션이 끝난 뒤에도 계속 실행될 수 있습니다. 활성 상태 보기에서 claude, node, mcp를 검색해 찾으세요. Mac용 시스템 모니터인 Vitals는 프로젝트 폴더마다 그 안에서 작업 중인 모든 프로세스를 나열하므로, 세션이 남기고 간 것이 한눈에 보입니다.

Claude Code가 무엇을 쓰고 있는지 찾는 방법

  1. 01 활성 상태 보기를 열고 메모리를 클릭한 다음 검색 필드에 claude를 입력합니다. 실행 중인 세션마다 한 행씩 나옵니다. 몇 기가바이트를 쓰거나, 아무것도 요청하지 않았는데 바쁜 행이 다시 시작할 세션입니다.
  2. 02 보기 → 모든 프로세스(계층 표시)를 선택합니다. 터미널 앱 옆의 삼각형을 열면 각 세션과 그 세션이 시작한 모든 것이 아래에 나옵니다.
  3. 03 무거운 세션을 다시 시작합니다. Control-C를 두 번 눌러 종료한 다음, 같은 폴더에서 claude --resume를 실행하고 대화를 고릅니다. 멈춘 곳에서 이어집니다.
  4. 04 검색 필드를 지우고 mcp를 검색한 다음 node를 검색합니다. Claude Code 세션을 모두 닫은 뒤에도 남아 있는 행은 남겨진 프로세스입니다.
  5. 05 터미널에서 ps -axo pid,ppid,rss,etime,command | grep -i mcp를 실행하면 상위 프로세스와 함께 나열됩니다. 상위 프로세스가 1이면 그 프로세스를 시작한 세션이 사라졌다는 뜻입니다. kill 뒤에 프로세스 번호를 붙여 중단합니다.

Claude Code에서 /mcp를 실행하면 세션이 시작하는 MCP 서버가 나열됩니다. 서버마다 별도의 프로세스이므로, 쓰지 않는 것은 제거하세요.

Claude Code는 명령어 라인 프로그램이라서 자체 윈도우도 없고 Dock에도 나오지 않습니다. 사용량은 터미널 앱 아래에, 또는 Claude Code를 실행한 터미널이 들어 있는 편집기 아래에 나타납니다. 또 Claude Code는 다른 프로그램을 시작하는 프로그램입니다. MCP 서버도, 하위 에이전트도 하나하나가 프로세스이고, 테스트를 실행하거나 개발 서버를 시작하면 그것도 프로세스입니다. 사람들이 Claude Code 탓으로 돌리는 메모리의 대부분은 Claude Code가 시작한 것들이 쓰고 있습니다. 아래 표에서 무엇이 무엇인지 구분합니다.

Claude Code의 메모리와 CPU가 쓰이는 곳

보이는 것무엇인지할 일
claude가 몇 GB를 사용함 몇 시간 동안 열려 있던 세션 종료하고 claude --resume 실행하기
claude가 유휴 상태에서도 바쁨 같은 원인: 긴 세션은 느려짐 세션 다시 시작하기, Claude Code 업데이트하기
node 프로세스가 많음 MCP 서버, 세션마다 서버당 하나씩 /mcp로 쓰지 않는 서버 제거하기
모든 세션을 닫은 뒤에도 남아 있는 프로세스 멈추지 않은 MCP 서버, 하위 에이전트 또는 헤드리스 브라우저 상위 프로세스가 1인 것을 찾아 종료하기
next-server, 테스트 러너 또는 빌드의 CPU 사용량이 높음 Claude Code가 작업 결과를 확인하려고 시작한 것 직접 중단하거나 Claude Code에 중단을 요청하기

긴 세션은 커집니다

세션은 대화 전체, 읽은 모든 파일, 모든 명령의 출력을 계속 갖고 있습니다. 몇 시간이 지나면 이것이 쌓이며, Claude Code의 이슈 트래커에는 세션이 수 기가바이트에 이르렀거나 유휴 상태에서도 CPU 코어 하나를 계속 썼다는 보고가 있습니다. 보고들이 말하는 해결 방법은 같습니다. 세션을 종료하고 이어서 시작하는 것입니다. 대화는 진행하는 동안 저장되므로 claude --resume를 써도 잃는 것 없이 깨끗한 프로세스에서 시작합니다.

Claude Code는 다른 도구보다 최신 상태로 유지하는 것이 더 중요합니다. 새 버전이 자주 나오며, 메모리 문제도 버전 사이에 고쳐지는 것 중 하나입니다. claude update로 업데이트합니다.

세션이 남기고 가는 것

세션이 끝나면 세션이 시작한 프로세스도 함께 끝나야 합니다. 하지만 항상 그렇지는 않습니다. MCP 서버, 하위 에이전트, 헤드리스 브라우저는 상위 프로세스를 잃고도 계속 실행되면서, 아무도 쓰지 않는 메모리를 붙잡고 있을 수 있습니다. 이에 대해 글을 쓴 한 개발자는 하루 작업 뒤 이런 프로세스 37개가 6GB 넘게 붙잡고 있는 것을 확인했습니다.

한번 살펴보면 쉽게 알아볼 수 있습니다. 터미널이 없고, 상위 프로세스가 1이며, 시작 시간이 몇 시간 전입니다. 종료해도 안전합니다. 엄밀히 말해 좀비 프로세스는 다른 것입니다. 이미 끝난 프로세스이며 메모리를 쓰지 않습니다. 여기서 사람들이 좀비라고 부르는 것은 살아서 메모리를 붙잡고 있는 고아 프로세스입니다.

개발 서버, 테스트, 빌드

Claude Code는 작업 결과를 확인하려고 개발 서버를 시작하거나, 테스트를 실행하거나, 프로젝트를 빌드합니다. 백그라운드에서 시작한 개발 서버는 작업이 끝난 뒤에도 계속 실행되고, 아무도 중단하지 않으면 세션을 닫은 뒤에도 실행됩니다. 프로젝트 두세 개에 각각 잊어버린 개발 서버가 있는 것은 메모리가 넉넉한 Mac에서 메모리가 부족해지는 흔한 이유입니다.

세션을 끝내기 전에 Claude Code에 시작한 것을 중단해 달라고 하거나, 어떤 포트가 수신 대기 중인지 확인하세요. 쓰지 않는 포트에 있는 서버는 아무도 쓰지 않는 서버입니다.

여러 세션을 한꺼번에 실행할 때

작업마다 또는 브랜치마다 하나씩 에이전트를 병렬로 실행하면 위의 모든 것이 그만큼 곱해집니다. 세션마다 자체 메모리, 모든 MCP 서버의 사본, 자체 개발 서버를 갖습니다. 16GB Mac에서는 이것이 여유 있는 상태와 메모리 압력이 노란색인 상태를 가릅니다. 끝난 세션은 닫고, 서버마다 다른 포트를 지정해 두 번째 서버가 조용히 실패하고 재시도하지 않게 하세요.

Vitals가 더해 주는 것

Vitals는 윈도우가 없는 프로세스까지 포함해 프로젝트마다 자원을 얼마나 쓰는지 보여 줍니다.

  • 프로젝트 탭: 어떤 터미널이나 편집기가 시작했든 프로젝트 폴더에서 작업 중인 모든 프로세스를 표시하고, 프로젝트 전체의 메모리, CPU, 에너지를 함께 표시
  • 각 프로젝트가 수신 대기 중인 포트. 실행된 채 유휴 상태로 남아 있는 개발 서버를 짚어 주고, 중단할지 물어봄
  • Claude Code는 업데이트되어도 하나의 도구로 집계하므로, 하루 동안의 메모리가 한 줄로 표시됨
  • 앱의 메모리가 계속 늘거나 몇 분 동안 CPU를 계속 쓸 때 보내는 알림
  • 메뉴 막대에서 어떤 앱이든 종료, 묻고 나서 실행

알아 두면 좋은 점

  • Vitals는 프로세스와 그 사용량을 보여 줍니다. Claude Code의 대화를 읽지 않으며, 세션이 무슨 작업을 하는지도 알지 못합니다.
  • Vitals는 스스로 아무것도 종료하지 않습니다.
Vitals 구입 $9 출시 할인 기간 $9, 이후 $29. 14일 이내 환불.

자주 묻는 질문

Claude Code가 메모리를 많이 쓰는 이유는?

몇 시간 동안 열려 있던 세션은 커지고, 세션이 시작하는 MCP 서버, 하위 에이전트, 개발 서버는 각각 별도의 프로세스입니다. 세션을 종료하고 claude --resume를 실행하면 깨끗한 프로세스에서 이어 갈 수 있습니다.

Claude Code를 다시 시작하면 대화가 사라지나요?

아니요. 대화는 진행하는 동안 저장됩니다. 같은 폴더에서 claude --resume를 실행하고 대화를 선택하면 이어 갈 수 있습니다.

Claude Code를 쓸 때 node 프로세스가 많은 이유는?

대부분 MCP 서버입니다. 서버마다 별도의 프로세스로, 세션마다 하나씩 실행됩니다. Claude Code에서 /mcp를 실행하면 어떤 서버가 설정되어 있는지 볼 수 있습니다.

Claude Code가 실행된 채 남겨 둔 프로세스는 어떻게 찾나요?

모든 세션을 닫은 다음 활성 상태 보기에서 mcp와 node를 검색하세요. 터미널에서 ps -axo pid,ppid,rss,command를 실행하면 각 프로세스의 상위 프로세스가 나옵니다. 상위 프로세스가 1이면 남겨진 것입니다.

남아 있는 MCP 서버 프로세스를 종료해도 안전한가요?

네, 열려 있는 Claude Code 세션이 없다면 안전합니다. 세션은 다음에 실행될 때 필요한 서버를 다시 시작합니다.

Claude Code에는 메모리가 얼마나 필요한가요?

새 세션은 몇백 메가바이트를 씁니다. 나머지는 세션이 무엇을 시작하느냐에 달려 있습니다. MCP 서버, 개발 서버, 테스트 실행 등입니다. 여러 세션을 병렬로 실행하면 이 모든 것이 그만큼 곱해집니다.

Mac에서 Claude Code가 무엇을 실행하고 있는지 보여 주는 앱이 있나요?

Vitals의 프로젝트 탭은 프로젝트 폴더마다 작업 중인 모든 프로세스를 메모리, CPU, 포트와 함께 나열하고, 유휴 상태로 남아 있는 개발 서버를 짚어 줍니다.

용어집에서 보기

다른 가이드