메모리 관리
Claude Code는 대규모 코드베이스에서도 효율적으로 작동하도록 설계되었습니다. 컨텍스트 윈도우를 최적화하고 메모리 사용을 관리하는 다양한 전략을 제공합니다.
컨텍스트 윈도우 이해하기
Claude Code는 제한된 컨텍스트 윈도우 내에서 작동합니다. 효율적인 메모리 관리를 통해 더 많은 정보를 처리할 수 있습니다.
📊 컨텍스트 크기
- Claude 3 Opus: 200,000 토큰
- Claude 3 Sonnet: 200,000 토큰
- Claude 3 Haiku: 200,000 토큰
1 토큰 ≈ 0.75 단어 (영어 기준)
메모리 최적화 전략
1. 스마트 파일 선택
Claude Code는 필요한 파일만 선택적으로 읽어 메모리를 절약합니다.
> src 폴더의 TypeScript 파일만 분석해줘
> 최근 7일 이내 수정된 파일만 확인해줘
> 테스트 파일은 제외하고 분석해줘
2. 대화 히스토리 관리
오래된 대화 내용을 자동으로 요약하여 컨텍스트를 절약합니다.
# 대화 초기화
> /reset
# 특정 컨텍스트만 유지
> 이전 대화는 잊고 새로 시작해줘
3. 점진적 탐색
전체 코드베이스를 한 번에 로드하지 않고 필요에 따라 점진적으로 탐색합니다.
> 먼저 프로젝트 구조를 간단히 설명해줘
# Claude가 전체 구조를 파악
> 이제 인증 모듈을 자세히 분석해줘
# 특정 모듈에 집중
설정 파일을 통한 메모리 관리
.claude 파일을 통해 프로젝트별 메모리 관리 정책을 설정할 수 있습니다.
{
"memory": {
"contextWindow": {
"maxTokens": 100000,
"reserveForOutput": 4000
},
"fileFilters": {
"exclude": [
"node_modules/**",
"dist/**",
"*.min.js",
"*.map"
],
"maxFileSize": "1MB"
},
"conversationHistory": {
"maxMessages": 20,
"summarizeAfter": 10
}
}
}
대규모 프로젝트 작업 팁
🏗️ 모노레포 작업
- 작업할 패키지를 명시적으로 지정
- 패키지별로 별도 세션 사용 고려
- 공통 코드는 필요할 때만 참조
효율적인 작업 예시
> packages/auth 패키지만 작업할게
> 이 패키지의 외부 의존성을 최소화하고 싶어
> 다른 패키지와의 연결점만 확인해줘
메모리 사용량 모니터링
Claude Code는 현재 컨텍스트 사용량을 추적하고 최적화 제안을 제공합니다.
사용량 확인
> 현재 컨텍스트 사용량을 보여줘
# Claude가 현재 메모리 사용 상태를 보고
> 어떤 파일이 가장 많은 컨텍스트를 차지하고 있어?
# 대용량 파일 식별
자동 최적화
Claude Code는 컨텍스트가 가득 차면 자동으로 최적화를 수행합니다:
- 오래된 대화 내용 요약
- 사용하지 않는 파일 컨텍스트 제거
- 중복 정보 제거
성능 최적화 기법
1. 작업 분할
큰 작업을 작은 단위로 나누어 처리합니다.
# 비효율적
> 전체 애플리케이션을 TypeScript로 마이그레이션해줘
# 효율적
> utils 폴더의 파일들을 TypeScript로 변환해줘
> 다음으로 components 폴더를 변환해줘
2. 선택적 로딩
필요한 정보만 요청하여 메모리를 절약합니다.
> UserService 클래스의 메서드 시그니처만 보여줘
> 구현 세부사항은 나중에 필요할 때 확인할게
3. 컨텍스트 재사용
관련 작업을 연속해서 수행하여 컨텍스트를 재사용합니다.
> API 엔드포인트를 분석해줘
> 방금 분석한 엔드포인트에 대한 테스트를 작성해줘
> 이 엔드포인트의 문서도 생성해줘
문제 해결
⚠️ 일반적인 메모리 문제와 해결책
- 컨텍스트 초과: 작업을 더 작은 단위로 분할
- 느린 응답: 불필요한 파일 제외
- 정보 손실: 중요한 컨텍스트를 명시적으로 유지
- 반복적인 질문: 대화 히스토리 초기화 고려
고급 설정
# 환경 변수를 통한 메모리 설정
export CLAUDE_MAX_CONTEXT_TOKENS=150000
export CLAUDE_AUTO_SUMMARIZE=true
export CLAUDE_FILE_SIZE_LIMIT=2MB
# CLI 옵션
claude --max-context 100000 --auto-optimize