Skip to content

설치 및 빠른 시작

이 튜토리얼을 마치면 무엇을 할 수 있나요

  • ✅ 5분 만에 DCP 플러그인 설치 완료
  • ✅ 플러그인을 구성하고 설치가 성공했는지 확인
  • ✅ 첫 번째 자동 가지치기 효과 확인

현재 겪고 있는 문제

OpenCode를 오래 사용하다 보면 대화가 점점 길어집니다:

  • AI가 동일한 파일을 여러 번 반복해서 읽음
  • 도구 호출의 오류 메시지가 컨텍스트를 가득 채움
  • 매 대화마다 많은 토큰을 소모함
  • 대화가 길어질수록 AI 응답이 느려짐

대화에서 중복된 내용을 자동으로 정리하고 싶지만, 수동으로 하고 싶지는 않습니다.

핵심 개념

**DCP (Dynamic Context Pruning)**는 OpenCode 플러그인으로, 대화 기록에서 중복된 도구 호출을 자동으로 제거하여 토큰 소모를 줄입니다.

동작 방식:

  1. 자동 감지: 메시지를 보낼 때마다 자동으로 대화 기록을 분석
  2. 스마트 정리: 중복된 도구 호출, 만료된 오류, 덮어쓴 내용 제거
  3. AI 기반: AI가 discardextract 도구를 적극적으로 호출하여 컨텍스트 최적화
  4. 투명하고 제어 가능: /dcp 명령어로 가지치기 통계를 확인하고 수동으로 정리 실행

핵심 장점

  • 제로 비용: 자동 전략은 LLM 호출이 필요 없음
  • 제로 구성: 설치 후 바로 사용 가능, 기본 설정이 이미 최적화됨
  • 제로 위험: LLM에 보내는 컨텍스트만 수정, 대화 기록에는 영향 없음

🎒 시작 전 준비 사항

설치를 시작하기 전에 다음 사항을 확인하세요:

  • [ ] OpenCode가 설치되어 있음 (플러그인 기능 지원)
  • [ ] OpenCode 설정 파일을 편집하는 방법을 알고 있음
  • [ ] 기본적인 JSONC 구문을 이해함 (주석이 있는 JSON)

중요한 안내 사항

DCP는 LLM에 보내는 컨텍스트 내용을 수정하지만, 대화 기록에는 영향을 주지 않습니다. 언제든지 설정에서 플러그인을 비활성화할 수 있습니다.

따라해 보세요

1단계: OpenCode 설정 파일 편집

이유 OpenCode 설정에서 DCP 플러그인을 선언해야 OpenCode가 시작할 때 자동으로 로드합니다.

OpenCode 설정 파일 opencode.jsonc를 열고 plugin 필드에 DCP를 추가하세요:

jsonc
// opencode.jsonc
{
    "plugin": ["@tarquinen/opencode-dcp@latest"],
}

확인해야 할 사항: 설정 파일에 이미 다른 플러그인이 있으면(있는 경우), 배열 끝에 DCP를 추가하면 됩니다.

안내

@latest 태그를 사용하면 OpenCode를 시작할 때마다 자동으로 최신 버전을 확인하고 가져옵니다.

2단계: OpenCode 다시 시작

이유 플러그인 설정을 수정한 후에는 적용을 위해 다시 시작해야 합니다.

OpenCode를 완전히 종료한 후 다시 시작하세요.

확인해야 할 사항: OpenCode가 정상적으로 시작되고 오류 메시지가 없는지 확인하세요.

3단계: 플러그인 설치 확인

이유 DCP 플러그인이 올바르게 로드되었는지 확인하고 기본 설정을 확인합니다.

OpenCode 대화창에 다음을 입력하세요:

/dcp

확인해야 할 사항: DCP 명령어 도움말 정보가 표시되어 플러그인이 성공적으로 설치되었음을 나타냅니다.

╭───────────────────────────────────────────────────────────╮
│                      DCP Commands                         │
╰───────────────────────────────────────────────────────────╯

  /dcp context      Show token usage breakdown for current session
  /dcp stats        Show DCP pruning statistics
  /dcp sweep [n]    Prune tools since last user message, or last n tools

4단계: 기본 설정 확인

이유 DCP의 기본 설정을 이해하고 플러그인이 예상대로 작동하는지 확인합니다.

DCP는 처음 실행할 때 자동으로 설정 파일을 생성합니다:

bash
# 전역 설정 파일 보기
cat ~/.config/opencode/dcp.jsonc

확인해야 할 사항: 설정 파일이 생성되어 있고 초기에 $schema 필드만 포함되어 있는지 확인하세요:

jsonc
{
    "$schema": "https://raw.githubusercontent.com/Opencode-DCP/opencode-dynamic-context-pruning/master/dcp.schema.json"
}

설정 파일은 초기에 $schema 필드만 포함하며, 다른 모든 구성 항목은 코드의 기본값을 사용하므로 수동으로 구성하지 않아도 사용할 수 있습니다.

기본 설정 설명

DCP의 코드 기본값은 다음과 같습니다(설정 파일에 쓸 필요 없음):

  • deduplication: 자동 중복 제거, 중복된 도구 호출 제거
  • purgeErrors: 자동 오류 정리, 4턴 전의 오류 도구 입력 제거
  • discard/extract: AI가 호출할 수 있는 가지치기 도구
  • pruneNotification: 자세한 가지치기 알림 표시

사용자 지정 구성이 필요한 경우 이러한 필드를 수동으로 추가할 수 있습니다. 자세한 구성 설명은 설정 전체 보기를 참조하세요.

5단계: 자동 가지치기 효과 경험

이유 실제로 DCP를 사용하고 자동 가지치기 효과를 확인합니다.

OpenCode에서 대화를 진행하여 AI가 동일한 파일을 여러 번 읽거나 일부 실패하는 도구 호출을 실행하도록 합니다.

확인해야 할 사항:

  1. 메시지를 보낼 때마다 DCP가 자동으로 대화 기록을 분석하는지 확인
  2. 중복된 도구 호출이 있으면 DCP가 자동으로 정리하는지 확인
  3. AI가 응답한 후 pruneNotification 구성에 따라 가지치기 알림을 볼 수 있음

가지치기 알림 예시:

▣ DCP | ~12.5K tokens saved total

▣ Pruning (~12.5K tokens)
→ read: src/config.ts
→ write: package.json

/dcp context를 입력하여 현재 세션의 토큰 사용 현황을 확인하세요:

Session Context Breakdown:
──────────────────────────────────────────────────────────

System         15.2% │████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│  25.1K tokens
User            5.1% │████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│   8.4K tokens
Assistant       35.8% │██████████████████████████████████████▒▒▒▒▒▒▒│  59.2K tokens
Tools (45)      43.9% │████████████████████████████████████████████████│  72.6K tokens

──────────────────────────────────────────────────────────

Summary:
  Pruned:          12 tools (~15.2K tokens)
  Current context: ~165.3K tokens
  Without DCP:     ~180.5K tokens

검사 포인트 ✅

위의 단계를 완료한 후 다음 사항을 확인하세요:

  • [ ] opencode.jsonc에 DCP 플러그인이 추가됨
  • [ ] OpenCode가 재시작 후 정상적으로 실행됨
  • [ ] /dcp 명령어가 도움말 정보를 표시함
  • [ ] 설정 파일 ~/.config/opencode/dcp.jsonc가 생성됨
  • [ ] 대화에서 가지치기 알림이 보이거나 /dcp context로 가지치기 통계가 표시됨

어떤 단계가 실패한 경우:

  • opencode.jsonc 구문이 올바른지 확인하세요 (JSONC 형식)
  • 플러그인 로딩 오류가 있는지 OpenCode 로그를 확인하세요
  • OpenCode 버전이 플러그인 기능을 지원하는지 확인하세요

함정 조심하기

문제 1: 플러그인이 작동하지 않음

증상: 구성이 추가되었지만 가지치기 효과가 보이지 않음

원인: OpenCode가 다시 시작되지 않았거나 구성 파일 경로가 잘못됨

해결책:

  1. OpenCode를 완전히 종료한 후 다시 시작하세요
  2. opencode.jsonc의 위치가 올바른지 확인하세요
  3. 로그 보기: ~/.config/opencode/logs/dcp/daily/ 디렉터리의 로그 파일

문제 2: 구성 파일이 생성되지 않음

증상: ~/.config/opencode/dcp.jsonc가 존재하지 않음

원인: OpenCode가 DCP 플러그인을 호출하지 않았거나 구성 디렉터리 권한 문제

해결책:

  1. OpenCode가 다시 시작되었는지 확인하세요
  2. 구성 디렉터리를 수동으로 생성하세요: mkdir -p ~/.config/opencode
  3. opencode.jsonc에서 플러그인 이름이 올바른지 확인하세요: @tarquinen/opencode-dcp@latest

문제 3: 가지치기 알림이 표시되지 않음

증상: 가지치기 알림이 보이지 않지만 /dcp stats에는 가지치기 통계가 있음

원인: pruneNotification 구성이 "off" 또는 "minimal"로 설정됨

해결책: 구성 파일을 수정하세요:

jsonc
"pruneNotification": "detailed"  // 또는 "minimal"

이번 수업 요약

DCP 플러그인 설치는 매우 간단합니다:

  1. opencode.jsonc에 플러그인 추가
  2. OpenCode 재시작
  3. /dcp 명령어로 설치 확인
  4. 기본 설정으로 바로 사용 가능, 추가 조정 불필요

DCP 기본 활성화 기능:

  • ✅ 자동 중복 제거 전략 (중복 도구 호출 제거)
  • ✅ 오류 정리 전략 (만료된 오류 입력 정리)
  • ✅ AI 기반 도구 (discardextract)
  • ✅ 자세한 가지치기 알림

다음 단계: 사용자 정의 구성 방법을 알아보고, 다양한 시나리오 요구에 맞게 가지치기 전략을 조정하세요.


다음 수업 예고

다음 수업에서는 **설정 전체 보기**를 학습합니다

배울 내용:

  • 다중 계층 구성 시스템 (전역, 환경 변수, 프로젝트 수준)
  • 모든 구성 항목의 역할과 권장 설정
  • 회차 보호, 보호된 도구, 보호된 파일 패턴
  • 다양한 가지치기 전략 활성화/비활성화 방법

부록: 소스 코드 참조

소스 코드 위치 보기

업데이트 시간: 2026-01-23

기능파일 경로줄 번호
플러그인 진입점index.ts12-102
설정 관리lib/config.ts669-794
명령어 처리lib/commands/help.ts1-40
토큰 계산lib/commands/context.ts68-174

주요 상수:

  • MAX_TOOL_CACHE_SIZE = 1000: 도구 캐시 최대 항목 수

주요 함수:

  • Plugin(): 플러그인 등록 및 후크 설정
  • getConfig(): 다중 계층 설정 로드 및 병합
  • handleContextCommand(): 현재 세션 토큰 사용 분석