대규모 프로젝트 작업

Bob Shell에서 대규모 코드베이스를 관리하세요. 컨텍스트 윈도우 최적화, 파일 처리 및 엔터프라이즈급 프로젝트를 위한 모범 사례를 이해할 수 있어요.

대규모 프로젝트에서의 컨텍스트 제한

Bob은 제한된 컨텍스트 윈도우를 가진 대규모 언어 모델을 사용해요. 이는 Bob이 한 번에 처리할 수 있는 최대 텍스트 양(토큰 단위로 측정됨)이에요. 컨텍스트가 너무 크면 Bob이 요청을 이해하지 못하거나 정확한 응답을 생성하지 못할 수 있어요.

컨텍스트 윈도우에는 다음이 포함돼요:

  • 시스템 프롬프트 (Bob을 위한 지침)
  • 대화 기록
  • 채팅 프롬프트에 포함하는 모든 파일의 내용
  • Bob이 사용하는 모든 명령 또는 도구의 출력

컨텍스트 관리 전략

  1. 구체적으로 작성하기: 파일이나 코드를 참조할 때는 구체적인 파일 경로와 함수 이름을 사용하세요. "메인 파일"과 같은 모호한 참조는 피하세요.
  2. 파일을 정확하게 참조하기: 경로(예: src/components/MyComponent.tsx)를 사용하여 채팅 프롬프트에 특정 파일을 포함하거나, 커밋 해시를 참조하여 Bob이 특정 Git 상태를 가리키도록 하세요.
  3. 작업 세분화하기: 큰 작업을 더 작고 관리하기 쉬운 하위 작업으로 나누세요. 이렇게 하면 컨텍스트를 집중된 상태로 유지하는 데 도움이 돼요.
  4. 필요할 때 요약하기: 많은 양의 코드를 참조해야 하는 경우 전체 코드를 포함하는 대신 프롬프트에서 관련 부분을 요약하는 것을 고려하세요.
  5. 최근 기록 우선시하기: Bob은 컨텍스트 윈도우 내에 머물기 위해 대화 기록의 이전 메시지를 자동으로 압축해요. 이를 인지하고 필요한 경우 중요한 컨텍스트를 다시 포함하세요.
  6. MCP 도구 사용 관리하기: MCP 서비스에서 특정 도구를 비활성화하고 활성화하여 필요한 것만 사용함으로써 사용하지 않는 도구 정의로 인한 컨텍스트 소비를 줄일 수 있어요.
  7. 격리된 작업에 하위 에이전트 또는 하위 작업 사용하기: 대규모의 독립적인 작업의 경우 하위 에이전트(subagent) 또는 하위 작업(subtask)을 사용하는 것을 고려하세요. 둘 다 별도의 독립된 컨텍스트 윈도우에서 실행되므로 기본 터미널 세션을 간결하게 유지할 수 있어요. spawn_subagentstart_subtask에 대한 자세한 내용은 도구를 참조하세요.

예시: 대용량 파일 리팩토링

대용량 TypeScript 파일(src/components/MyComponent.tsx)을 리팩토링해야 하는 경우 효과적인 접근 방식은 다음과 같아요:

  1. 초기 개요 파악:
    List the functions and classes in src/components/MyComponent.tsx
  2. 특정 함수 타겟팅:
    Refactor the `processData` function in src/components/MyComponent.tsx to use async/await instead of Promises.
  3. 반복적인 변경 수행: 작은 단위로 점진적인 변경을 수행하고 각 단계를 검토하고 승인하세요.

작업을 세분화하고 구체적인 컨텍스트를 제공함으로써 컨텍스트 윈도우 제한 내에서 대용량 파일을 효과적으로 다룰 수 있어요.

이 주제는 어떤가요?