# 컨텍스트 관리 (/ko/docs/verdent-for-vscode/best-practices/context)

> 더 나은 결과를 위한 효과적인 컨텍스트 관리



***

효과적인 컨텍스트 관리는 컨텍스트 과부하로 인한 성능 저하를 피하면서 Verdent가 적절한 시점에 필요한 정보를 갖도록 해줍니다.

### 배울 내용 [#배울-내용]

* 컨텍스트 창과 그 한계 이해하기
* 최적의 컨텍스트를 위한 전략적인 파일 선택
* 컨텍스트 과부하를 인식하고 대응하기
* 더 나은 성능을 위해 컨텍스트를 재설정해야 하는 시점
* 워크스페이스 구성이 컨텍스트에 미치는 영향

***

## 컨텍스트 창 이해하기 [#컨텍스트-창-이해하기]

Verdent for VS Code의 컨텍스트 창 크기는 사용하는 모델에 따라 달라집니다.

<Tabs>
  <Tab title="표준 모델(200K)">
    대부분의 모델은 표준 `200K` 컨텍스트 창을 사용합니다.

    * **Claude 4.5 Sonnet** - 복잡한 작업에 균형 잡힌 모델
    * **Claude 4.5 Haiku** - 빠르고 효율적
    * **GPT-5** - 추론에 뛰어남(Beta)
    * **GPT-5-Codex** - 코딩에 최적화됨(Beta)

    **용량:**

    * 총 메모리 용량 약 `200,000` 토큰
    * 대부분의 개발 작업과 중간 규모 프로젝트에 충분함

    **포함되는 항목:**

    * 대화의 모든 메시지
    * 컨텍스트에 로드된 파일 내용
    * 도구 출력과 응답
    * 시스템 프롬프트와 지침
    * MCP 서버 정의

    **성능:**

    * 한계에 가까워질수록 성능이 크게 저하됨
    * 컨텍스트 과부하 징후를 확인하세요(느린 응답, 정확도가 낮은 출력)
    * 최적의 성능을 위해 컨텍스트를 더 자주 재설정하세요
  </Tab>

  <Tab title="확장 컨텍스트(1M)">
    Claude Sonnet 4.5는 명시적으로 선택했거나 입력이 `200K` 토큰을 초과할 때 확장 컨텍스트(`1M` 토큰)를 제공합니다.

    **용량:**

    * 총 메모리 `1,000,000` 토큰
    * 표준 모델보다 5배 큼

    **장점:**

    * 큰 코드베이스 전체를 청크로 나누지 않고 로드하기에 적합함
    * 대규모 프로젝트에서 컨텍스트 관리 부담을 대부분 줄임
    * 컨텍스트 한계에 도달하기 전까지 더 오래 작업 가능
    * 세션 재설정 필요 횟수가 줄어듦

    **사용 시점:**

    * `1000+`개의 파일이 있는 큰 코드베이스
    * 전체 프로젝트에 걸친 복잡한 다중 파일 리팩터링
    * 여러 관련 작업으로 이어지는 긴 개발 세션
    * 컨텍스트 관리 부담을 최소화하고 싶을 때
  </Tab>
</Tabs>

***

## 전략적인 파일 선택 [#전략적인-파일-선택]

컨텍스트 사용량을 최적화하고 한계에 도달하지 않도록 파일을 전략적으로 선택하세요.

<Tip>
  처음에는 적은 수의 파일로 시작하고 필요할 때만 더 추가하세요. Verdent는 대화 중 언제든 추가 파일을 읽을 수 있습니다.
</Tip>

### 명시적 포함에는 @-멘션 사용하기 [#명시적-포함에는--멘션-사용하기]

```
@filename.js
```

Verdent는 관련 파일을 자동으로 로드하지만, `@-mentions`는 정확한 컨텍스트를 보장합니다. 선별적으로 사용하세요. 현재 작업과 직접 관련된 파일만 포함합니다.

### 컨텍스트 사용량 모니터링 [#컨텍스트-사용량-모니터링]

* 세션이 길어질수록 성능 저하가 있는지 확인합니다
* 대화 길이와 파일 수를 의식합니다
* 가능하면 불필요한 파일을 컨텍스트에서 제거합니다

### 컨텍스트 과부하 피하기 [#컨텍스트-과부하-피하기]

* 큰 작업을 더 작은 단위로 나누고 작업마다 더 적은 파일을 사용합니다
* 관련 파일에만 집중하세요. 코드베이스 전체를 한 번에 로드하지 마세요
* MCP 서버 관리를 사용해 사용하지 않는 연동을 비활성화합니다

### 모범 사례 [#모범-사례]

* 수정하거나 참조해야 하는 파일만 포함합니다
* 예제 파일을 로드하는 대신 기존 패턴을 참조합니다
* 큰 코드베이스에서는 한 번에 하나의 모듈만 작업합니다
* 많은 파일을 로드하는 대신 프로젝트 문서(`AGENTS.md`)를 사용합니다
* 메모리를 많이 쓰는 작업에는 컨텍스트 창의 마지막 5분의 1을 피합니다

### 확장 컨텍스트(1M 토큰)의 경우 [#확장-컨텍스트1m-토큰의-경우]

파일 선택의 중요도가 훨씬 낮아집니다. 한계에 도달하지 않고 프로젝트 저장소 전체를 로드할 수 있는 경우가 많습니다.

***

## 컨텍스트 과부하 인식하기 [#컨텍스트-과부하-인식하기]

<Tabs>
  <Tab title="응답 품질">
    **징후:**

    * 응답의 정확도가 낮아지거나 불완전함
    * 대화 앞부분의 중요한 세부 정보를 놓침
    * 긴 세션에서 일관성을 유지하기 어려움
    * 최근 변경 사항이나 컨텍스트를 혼동함

    **구체적인 예:**

    * 세션 초반에 이미 거절한 해결책을 다시 제안함
    * `20` 메시지 전에 정한 코딩 규칙을 무시함
    * 대화 앞부분에서 만든 변경 사항과 충돌하는 코드를 생성함
    * 이전에 논의한 프로젝트 아키텍처와 맞지 않는 구현을 제안함

    **주요 신호:** Verdent의 응답이 덜 정확해지거나 일관성이 없어짐
  </Tab>

  <Tab title="속도 문제">
    **징후:**

    * 응답 시간이 눈에 띄게 느려짐
    * 응답이 시작되기 전 처리 지연이 길어짐
    * 메시지 사이의 지연 시간이 늘어남

    **구체적인 예:**

    * 평소 `5-10`초 걸리던 응답이 이제 `30+`초 걸림
    * 메시지를 보낸 뒤 입력 표시기가 나타나기까지 눈에 띄는 지연이 있음
    * 스트리밍 응답이 평소보다 훨씬 늦게 시작됨
    * 도구 실행(파일 읽기, 검색)이 눈에 띄게 오래 걸림

    **주요 신호:** 응답이 평소보다 훨씬 오래 걸림
  </Tab>

  <Tab title="동작 변화">
    **징후:**

    * 이미 제공한 정보를 다시 확인해 달라고 요청함
    * 앞서 정한 패턴이나 규칙을 잊어버림
    * 이전에 논의한 파일이나 코드를 참조하지 못함
    * 프로젝트 구조에 대해 중복 질문을 함

    **구체적인 예:**

    * `30` 메시지 전에 React를 사용한다고 명시했는데도 "어떤 프레임워크를 사용하나요?"라고 물음
    * 이미 여러 번 `@-mentioned`한 파일 경로를 다시 요청함
    * 세션 시작 시 정한 네이밍 규칙을 기억하지 못함
    * 이유를 들어 이미 거절한 개념이나 접근 방식을 다시 설명함

    **주요 신호:** Verdent가 이미 논의한 내용을 다시 물어봄
  </Tab>

  <Tab title="기술적 지표">
    **징후:**

    * `200K` 토큰 한계의 마지막 5분의 1에 가까워짐(약 `160K+` 토큰 사용)
    * 파일 읽기와 도구 출력이 많은 긴 대화
    * 무거운 도구 정의가 있는 여러 MCP 서버가 활성화됨
    * 큰 파일이 컨텍스트에 반복적으로 로드됨

    **구체적인 예:**

    * 세션이 `2+`시간 동안 `100+`개의 메시지로 진행됨
    * 대화 중 `@-mentions`가 포함된 `20+`개 파일을 로드함
    * 큰 파일 여러 개(각 `>1000`줄)가 컨텍스트에 있음
    * 방대한 도구 정의가 있는 MCP 서버 `5+`개가 활성화되어 있음
    * 대화에 grep/search 결과와 파일 읽기가 많이 포함됨

    **주요 신호:** 파일과 도구를 광범위하게 사용한 매우 긴 세션
  </Tab>
</Tabs>

**조치를 취해야 하는 시점:** 성능 저하가 가장 중요한 신호입니다. Verdent의 응답이 덜 정확해지거나 느려지거나 일관성이 없어지면 새 세션을 시작하거나 컨텍스트 관리 전략을 사용하세요.

<Warning>
  Verdent의 응답이 모호하거나 반복적으로 변하면 컨텍스트 과부하가 발생했을 수 있습니다. 대화를 재설정해 전체 성능을 회복하세요.
</Warning>

**참고:** Claude Sonnet 4.5의 `1M` 토큰 컨텍스트에서는 이런 문제가 훨씬 덜 발생합니다.

***

## 컨텍스트를 재설정해야 하는 시점 [#컨텍스트를-재설정해야-하는-시점]

<Tabs>
  <Tab title="성능 지표">
    * 응답 시간이 눈에 띄게 느려짐
    * 응답의 정확도가 낮아지거나 일관성이 없어짐
    * Verdent가 이전 컨텍스트나 패턴을 잊어버림
    * 컨텍스트 창 한계에 가까워짐(성능 저하 징후를 확인하세요)

    **조치:** 품질이 저하되면 새 세션을 시작합니다
  </Tab>

  <Tab title="작업 전환">
    * 서로 관련 없는 기능이나 모듈 사이를 전환함
    * 하나의 todo를 완료하고 다음으로 이동함
    * 메모리를 많이 쓰는 작업 이후(대규모 리팩터링, 아키텍처 작업)
    * 조사 단계에서 구현 단계로 이동함

    **조치:** 새로운 주요 작업에는 새 세션을 사용합니다
  </Tab>

  <Tab title="커밋 후">
    * 완료한 기능을 버전 관리에 커밋한 후
    * 개발 워크플로의 논리적 체크포인트 사이
    * 테스트-검증-커밋 사이클 이후

    **조치:** 커밋 → 테스트 → 새 세션
  </Tab>

  <Tab title="세션 관리">
    * 주요 새 기능을 시작하기 전
    * 대화 기록이 매우 길어졌을 때
    * 다중 파일 변경을 완료한 후
    * 서로 다른 작업 유형 사이(디버깅 → 기능 개발)

    **조치:** 컨텍스트가 저하되기 전에 선제적으로 새로 시작합니다
  </Tab>
</Tabs>

**모범 워크플로:** 원자적 작업 단위 완료 → 테스트 → 커밋 → 컨텍스트 지우기 → 다음 작업을 위해 새로 시작.

**참고:** 컨텍스트를 재설정하려면 새 세션을 시작하세요. `1M` 토큰 컨텍스트에서는 지우는 작업이 훨씬 덜 자주 필요합니다.

***

## 워크스페이스 구성이 미치는 영향 [#워크스페이스-구성이-미치는-영향]

워크스페이스 구성은 컨텍스트가 얼마나 효율적으로 사용되는지, 그리고 Verdent가 코드베이스를 얼마나 쉽게 탐색할 수 있는지에 직접적인 영향을 줍니다.

<Tabs>
  <Tab title="잘 구성된 경우">
    **작고 집중된 파일:**

    * 큰 파일 몇 개보다 작은 파일 여러 개가 컨텍스트를 더 효율적으로 사용함
    * 관련 모듈만 로드하기 쉬움
    * 컨텍스트에 포함되는 내용을 더 세밀하게 제어할 수 있음
    * 큰 파일 전체를 로드할 필요가 줄어듦

    **명확한 디렉터리 구조:**

    * 논리적인 구성이 Verdent가 관련 파일을 찾는 데 도움이 됨
    * 기능 기반 또는 모듈 기반 구성이 컨텍스트 대상을 더 잘 좁혀줌
    * 관련 없는 코드를 로드할 필요가 줄어듦

    **`Documentation in AGENTS.md:`**

    * 프로젝트 문서가 많은 예제 파일을 로드할 필요를 대체함
    * 아키텍처 패턴을 한 번 설명하고 반복해서 참조함
    * 코딩 표준을 중앙에서 문서화함
    * 탐색적 파일 읽기로 인한 컨텍스트 부담을 줄임

    **장점:**

    * 코드베이스 전체를 로드하지 않고 격리된 모듈에서 작업 가능
    * 명확한 경계가 집중된 세션을 가능하게 함
    * 모듈 경계를 따라 작업을 청크로 나누는 것이 자연스러워짐
  </Tab>

  <Tab title="제대로 구성되지 않은 경우">
    **문제:**

    * 모놀리식 파일은 큰 컨텍스트 전체를 로드하게 만듦
    * 구조가 불명확하면 아키텍처를 이해하기 위해 많은 파일을 로드해야 함
    * 같은 파일에 여러 관심사가 섞이면 관련 없는 코드에 컨텍스트가 낭비됨

    **영향:**

    * 컨텍스트 한계 문제가 자주 발생함
    * 관련 없는 코드에 토큰이 낭비됨
    * 작업을 특정 모듈로 격리하기 어려움
    * 세션 재설정이 더 자주 필요함

    **흔한 안티 패턴:**

    * 여러 관심사가 섞인 단일 `5000+`줄 파일
    * 루트에 `100+`개 파일이 있는 평면 디렉터리 구조
    * 기능/모듈 간 명확한 분리가 없음
    * 중앙화된 문서가 부족함
  </Tab>

  <Tab title="개선 전략">
    **리팩터링 접근 방식:**

    * 큰 파일을 작고 집중된 모듈로 나눔
    * 파일 유형이 아니라 기능이나 도메인별로 구성함
    * 명확한 디렉터리 계층을 만듦
    * 공유 코드를 별도 모듈로 추출함

    **문서화:**

    * 아키텍처 패턴을 담은 `AGENTS.md`를 만듦
    * 코딩 표준을 중앙에서 문서화함
    * 모듈별 `README` 파일을 유지함
    * 설계 결정을 문서로 남김

    **컨텍스트 영향:**    표준 `200K` 토큰 컨텍스트에서는 정리된 워크스페이스가 한계에 자주 도달하는지 드물게 도달하는지를 가릅니다. `1M` 토큰 컨텍스트에서는 구성이 덜 중요하지만 여전히 효율성을 높입니다.
  </Tab>
</Tabs>

***

## 컨텍스트 최적화 전략 [#컨텍스트-최적화-전략]

효과적인 컨텍스트 최적화는 모니터링, 전략적 계획, 기술적 설정을 함께 사용합니다.

<Tabs>
  <Tab title="모니터링">
    **성능 징후 확인:**

    * 세션 전반에서 응답 품질과 속도를 모니터링합니다
    * 응답이 느려지거나 정확도가 낮아지는 시점을 알아차립니다
    * 대화 길이와 파일 수를 수동으로 추적합니다
    * 새 세션 시작을 선제적으로 고려합니다

    **모니터링할 항목:**

    * 응답 정확도와 일관성
    * 첫 응답까지 걸리는 시간(입력 표시기 지연)
    * 전체 응답 완료 시간
    * 이전 대화 세부 정보에 대한 기억

    **서브에이전트 관리:**

    * 필요하지 않을 때 사용하지 않는 커스텀 서브에이전트를 비활성화합니다
    * 활성화된 각 서브에이전트는 시스템 오버헤드에 정의를 추가합니다
    * 실제로 사용하는 서브에이전트만 활성화 상태로 둡니다
    * 특정 작업에 필요할 때 다시 활성화합니다

    **조치 기준:**    `2-3`개의 성능 저하 신호가 보이면 새 세션을 시작할 때입니다.

    <Tip>
      응답 품질을 컨텍스트 상태의 선행 지표로 모니터링하세요. 응답 품질이 저하되면 재설정할 시점이라는 신호입니다.
    </Tip>
  </Tab>

  <Tab title="작업 계획">
    **청크 나누기 접근 방식:**

    * 큰 작업을 더 작은 단위로 나눕니다
    * 관련 작업을 집중된 세션에서 완료합니다
    * 긴 대화에서 서로 다른 작업 유형을 섞지 않습니다
    * 메모리를 많이 쓰는 작업에는 컨텍스트 창의 마지막 5분의 1을 피합니다

    **세션 관리:**

    * 주요 작업 사이에는 새 세션을 시작합니다
    * 커밋 후 컨텍스트를 지웁니다: 테스트 → 검증 → 커밋 → 새 세션
    * 여러 단계 계획에는 todo를 사용합니다
    * todo 항목을 별도의 집중된 세션에서 처리합니다

    **모범 사례 패턴:**

    1. Plan Mode에서 작업을 계획합니다
    2. 새 세션에서 집중적으로 구현합니다
    3. 변경 사항을 테스트하고 검증합니다
    4. 버전 관리에 커밋합니다
    5. 다음 작업을 위해 새 세션을 시작합니다

    **작업 격리:**    디버깅은 기능 개발과 분리하고, 조사는 구현과 분리하세요.
  </Tab>

  <Tab title="파일 관리">
    **전략적 포함:**

    * 명시적 파일 포함이 필요할 때만 `@-mentions`를 사용합니다
    * 많은 파일을 로드하는 대신 `AGENTS.md` 문서를 활용합니다
    * 큰 프로젝트에서는 한 번에 하나의 모듈만 작업합니다
    * 큰 파일을 더 작고 집중된 컴포넌트로 나눕니다

    **파일 선택 원칙:**

    * 수정하거나 직접 참조해야 하는 파일만 포함합니다
    * 예제 파일 로드보다 문서를 선호합니다
    * 더 이상 필요하지 않은 파일은 컨텍스트에서 제거합니다
    * 파일은 미리 로드하지 말고 필요할 때 로드합니다

    **큰 파일 처리:**

    * `500`줄을 넘는 파일은 분할을 고려합니다
    * 유틸리티와 헬퍼를 별도 파일로 추출합니다
    * 명확한 모듈 경계를 사용합니다
    * 파일 간 관계를 `AGENTS.md`에 문서화합니다
  </Tab>

  <Tab title="워크플로">
    **최적화 워크플로:**

    성능 모니터링 → 세션 비대화 식별 → 사용하지 않는 서브에이전트 비활성화 → 새 세션을 선제적으로 시작 → 작업 품질에 집중

    **일상적인 실천:**

    * 주요 기능마다 새 컨텍스트로 시작합니다
    * 자주 커밋하고 커밋 사이에 재설정합니다
    * 세션을 하나의 목표에 집중시킵니다
    * 자연스러운 중단 지점에서 컨텍스트 사용량을 검토합니다

    **`For Extended Context (1M tokens):`**    Claude Sonnet 4.5의 더 큰 컨텍스트 창에서는 최적화의 중요도가 낮아집니다. 공격적인 컨텍스트 관리보다 작업 품질에 집중하세요. 그래도 좋은 관행은 여전히 효율성과 구성을 개선합니다.
  </Tab>
</Tabs>

***

## 자주 묻는 질문 [#자주-묻는-질문]

<Accordion title="200K와 1M 컨텍스트 창의 차이는 무엇인가요?">
  표준 모델(Claude 4.5 Sonnet, Haiku, GPT-5, GPT-5-Codex, MiniMax-M2)은 대부분의 작업에 충분한 `200K` 토큰 컨텍스트 창을 제공합니다. Claude Sonnet 4.5는 `1000+`개 파일이 있는 큰 코드베이스, 복잡한 다중 파일 리팩터링, 긴 개발 세션을 위해 확장된 `1M` 토큰 컨텍스트(5배 더 큼)를 제공합니다. `1M` 컨텍스트는 입력이 `200K` 토큰을 초과하면 자동으로 활성화되며, 명시적으로 선택할 수도 있습니다.
</Accordion>

<Accordion title="컨텍스트를 직접 재설정해야 하나요, 아니면 Verdent가 자동으로 하나요?">
  컨텍스트를 재설정하려면 직접 새 세션을 시작해야 합니다. Verdent는 컨텍스트를 자동으로 지우지 않습니다. 모범 사례: 원자적 작업 단위를 완료하고 테스트한 뒤 버전 관리에 커밋한 후 재설정하세요. `1M` 토큰 컨텍스트에서는 재설정이 훨씬 덜 자주 필요합니다.
</Accordion>

<Accordion title="컨텍스트에 안전하게 로드할 수 있는 파일 수는 몇 개인가요?">
  고정된 파일 제한은 없습니다. 파일 크기와 전체 토큰 수에 따라 달라집니다. `200K` 컨텍스트에서는 큰 파일(`>1000`줄씩) `20+`개를 로드하지 않도록 하세요. 현재 작업과 직접 관련된 파일에 집중하세요. `@-mentions`를 선별적으로 사용하고, 많은 예제 파일을 로드하는 대신 `AGENTS.md` 문서를 활용하세요. `1M` 컨텍스트에서는 파일 선택의 중요도가 훨씬 낮아집니다.
</Accordion>

<Accordion title="무엇이 컨텍스트 창에 포함되나요?">
  세션의 모든 것이 포함됩니다. 대화의 모든 메시지, 컨텍스트에 로드된 파일 내용, 도구 출력(grep/search 결과, 파일 읽기), 시스템 프롬프트와 지침, MCP 서버 정의가 포함됩니다. 각각은 전체 컨텍스트 용량에서 토큰을 사용합니다.
</Accordion>

<Accordion title="컨텍스트를 재설정하면 작업 내용이 사라지나요?">
  아니요. 컨텍스트 재설정은 대화 기록과 메모리에 로드된 파일만 지웁니다. 실제 코드 변경 사항, 커밋, 파일 수정은 유지됩니다. 안전을 위해 컨텍스트를 재설정하기 전에 항상 작업을 버전 관리에 커밋하세요. 재설정 → 새 세션 시작 → 다음 작업 계속.
</Accordion>

***

## 함께 보기 [#함께-보기]

<CardGroup cols="3">
  <Card title="프롬프트 엔지니어링" icon="message" href="/docs/verdent-for-vscode/best-practices/prompts">
    효과적인 프롬프트 작성을 위한 모범 사례
  </Card>

  <Card title="실행 모드" icon="toggle-on" href="/docs/verdent-for-vscode/execution-modes/overview">
    실행 모드와 리소스 영향 이해하기
  </Card>

  <Card title="리소스 관리" icon="chart-line" href="/docs/verdent-for-vscode/resource-management/monitoring">
    토큰 사용량, 크레딧, 성능 모니터링
  </Card>
</CardGroup>
