핵심 개념
대규모 프로젝트 작업
Bob IDE에서 대규모 코드베이스를 관리하세요. 컨텍스트 윈도우 최적화, 파일 처리 및 엔터프라이즈 규모 프로젝트의 모범 사례를 이해하세요.
대규모 프로젝트의 컨텍스트 제한 이해
Bob은 제한된 컨텍스트 윈도우를 가진 대규모 언어 모델을 사용합니다. 이것은 Bob이 한 번에 처리할 수 있는 최대 텍스트 양(토큰으로 측정)입니다. 컨텍스트가 너무 크면 Bob이 요청을 이해하지 못하거나 정확한 응답을 생성하지 못할 수 있습니다.
컨텍스트 윈도우에는 다음이 포함됩니다:
- 시스템 프롬프트(Bob에 대한 지침)
- 대화 기록
@로 멘션하는 모든 파일의 내용- Cmd + L(Mac) 또는 Ctrl + L(Windows/Linux)을 사용하여 채팅으로 전송된 선택된 텍스트
- Bob이 사용하는 모든 명령이나 도구의 출력
컨텍스트 관리 전략
- 구체적으로 작성: 파일이나 코드를 참조할 때 특정 파일 경로와 함수 이름을 사용하세요. "메인 파일"과 같은 모호한 참조를 피하세요.
- 컨텍스트 멘션을 효과적으로 사용:
@/path/to/file.ts를 사용하여 특정 파일을 포함하세요.@problems를 사용하여 현재 오류 및 경고를 포함하세요.@다음에 커밋 해시를 사용하여 특정 Git 커밋을 참조하세요. 편집기에서 텍스트를 강조 표시하고 Cmd + L(Mac) 또는 Ctrl + L(Windows/Linux)을 사용하여 채팅으로 직접 보낼 수도 있습니다. - 작업 분할: 큰 작업을 더 작고 관리하기 쉬운 하위 작업으로 나누세요. 이렇게 하면 컨텍스트를 집중적으로 유지하는 데 도움이 됩니다.
- 필요시 요약: 많은 양의 코드를 참조해야 하는 경우 전체 코드를 포함하는 대신 프롬프트에서 관련 부분을 요약하는 것을 고려하세요.
- 현재 기록 우선순위 지정: Bob은 컨텍스트 윈도우 내에 유지하기 위해 대화 기록의 이전 메시지를 자동으로 압축합니다. 이를 인식하고 필요에 따라 중요한 컨텍스트를 다시 추가하세요.
- 대용량 파일 처리 구성: 대용량 파일 처리 설정을 조정하여 특정 크기 임계값을 초과하는 파일을 Bob이 처리하는 방법을 제어하세요. 이는 대용량 파일로 작업할 때 컨텍스트 사용을 관리하는 데 도움이 됩니다.
- MCP 도구 사용 관리: MCP 서비스에서 특정 도구를 비활성화 및 활성화하여 필요한 것만 사용할 수 있으므로 사용하지 않는 도구 정의의 컨텍스트 소비를 줄일 수 있습니다.
- 격리된 작업에 subagent 또는 subtask 사용: 크고 독립적인 작업의 경우 subagent 또는 subtask 사용을 고려하세요. 둘 다 자체 별도 컨텍스트 윈도우에서 실행되어 주 대화를 가볍게 유지합니다.
spawn_subagent및start_subtask에 대한 자세한 내용은 Tools를 참조하세요. - 전체 파일 멘션 대신 심볼 도구 사용:
@로 전체 파일을 멘션하는 대신 Bob은GetSymbolsOverview및FindSymbol과 같은 도구를 사용하여 관련 클래스 또는 함수로 직접 이동할 수 있습니다. 이렇게 하면 필요한 것만 검색하고 전체 파일을 컨텍스트에 로드하는 것을 방지합니다.
예제: 큰 파일 리팩토링
큰 TypeScript 파일(src/components/MyComponent.tsx)을 리팩토링해야 하는 경우 효과적인 접근 방식은 다음과 같습니다:
- 초기 개요 얻기:
@/src/components/MyComponent.tsx 이 파일의 함수와 클래스를 나열하세요. - 특정 함수 대상 지정:
@/src/components/MyComponent.tsx Promise 대신 `async/await`를 사용하도록 `processData` 함수를 리팩토링하세요. - 반복적 변경: 작고 점진적인 변경을 수행하고 각 단계를 검토하고 승인하세요.
작업을 분할하고 특정 컨텍스트를 제공함으로써 컨텍스트 윈도우 제한 내에서 큰 파일로 효과적으로 작업할 수 있습니다.
이 주제는 어떤가요?