Claude Code의 가장 저평가된 기능: 동적 컨텍스트 주입(Dynamic Context Injection)
CC's most underrated feature: Dynamic Context Injection
핵심 요약
Claude Code의 동적 컨텍스트 주입 기능을 활용해 AI 작업의 결정론적 수행과 토큰 효율성을 높이는 방법을 소개합니다.
- 동적 컨텍스트 주입 — CLI 명령어를 실행해 그 결과를 스킬 컨텍스트에 자동으로 삽입함
- 결정론적 작업 수행 — AI의 해석에 의존하지 않고 명확한 CLI 명령으로 작업을 강제함
- 토큰 효율성 향상 — AI가 지시사항을 해석하는 중간 단계를 생략하여 토큰 사용량을 최적화함
- TCW 프로젝트 — 작업 백로그 관리를 위해 개발한 Claude 플러그인 및 CLI 유틸리티 홍보
꽤 오랫동안 Claude 플러그인과 그에 대응하는 CLI 유틸리티인 TCW를 개발해 왔어. AI가 다루기 편한 형식(그냥 디스크에 있는 .md 파일)으로 내 작업 백로그를 관리하고 정리하려고 만든 거지. 처음 이 작업 시스템을 만들기 시작했을 때보다 프로젝트 규모가 꽤 커졌는데, 지금 제일 마음에 드는 건 Claude의 Inject Dynamic Context 기능을 활용해서 스킬을 구현한 다형성 프롬프트 시스템이야.
문서 읽기 귀찮은 사람들을 위해 핵심만 말하자면, 스킬 파일 안에서 !command 문법으로 CLI 명령어를 실행하면 그 명령어의 stdout 결과값이 스킬에 자동으로 삽입되는 방식이야.
이게 사실상 스스로 프롬프트 인젝션을 거는 꼴인데, 나쁜 의도는 아니니까 괜찮아. 여기에 skill arguments까지 조합하면, AI가 스킬 파일을 제대로 해석해주길 바라는 것보다 훨씬 유용한 스킬들을 만들 수 있거든.
흔히 쓰는 방법은 스킬의 라우팅 파일을 프롬프트 인젝션 방식으로 대체하는 거야.
예를 들어, 네 스킬(/my-skill)이 이렇게 생겼다고 치자.
name: my-skill
description: "When working on something new, use this skill to get the right instructions"
If you are fixing a bug, read ./references/bugfix-instructions.md
If you are making a new feature, read ./references/feature-instructions.md
이걸 수동으로 호출하면:
/my-skill Fix the bug where the login button disappears if the window is resized
...아니면 Claude가 세션 중에 자동으로 호출할 수도 있겠지.
대신 이렇게 바꿀 수 있어:
name: my-skill
description: "When working on something new, use this skill to get the right instructions. Argument must be 'bugfix' or 'feature'."
allowed-tools: Bash(cat *)
arguments: [workType, request]
!cat "${CLAUDE_SKILL_DIR}/references/$workType-instructions.md" || true
$request
호출은 이렇게 하면 되고:
/my-skill bugfix "Fix the bug where the login button disappears if the window is resized"
만약 bugfix-instructions.md 파일 내용이 이거라면:
When fixing a bug, always write a unit test to reproduce the issue first.

