Claude Code 파워 유저들의 워크플로우를 보고 나서 쓰는 방식에 따라 같은 도구인데도 생산성 차이가 몇 배씩 난다는 것을 알게되었습니다. 이 글은 Anthropic 해커톤 우승자 ykdojo와 Anthropic DevRel Ado Kukic의 팁을 바탕으로 작성되었습니다.
대화가 길어지면 컨텍스트가 가득 차 성능이 저하됩니다. 이때 HANDOFF.md 파일을 작성하고 /clear로 새롭게 시작하는 것이 효과적입니다.
# 상황가정
[OMC] | 5h:16%(3h40m) wk:10%(1d22h) | session:10m | 🟢 | ~$0.0420 | 132.0k | Cache: 99.5% | $0.24/h | ctx:66% | agents:1
└─ b bifrost-benchmark-implementer 4m Docker experiment environment setup
⏵⏵ accept edits on (shift+Tab to cycle)
# 1. 대화가 50k 토큰 이상 사용중일 때 현재 사용량 확인
> /context
# 2. HANDOFF.md 생성 요청
> "지금까지의 작업 내용을 HANDOFF.md 파일로 정리해줘.
다음 에이전트가 이 파일만 읽고 작업을 이어갈 수 있도록
시도한 것, 성공한 것, 실패한 것, 다음 단계를 명확히 작성해줘."
# 3. 새 세션 시작
> "/clear"
# 4. HANDOFF.md 로드
> "@HANDOFF.md 이 파일을 읽고 작업을 이어가줘"
❯ /context
⎿ Context Usage
⛁ ⛀ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ claude-sonnet-4-5-20250929 · 57k/200k tokens (29%)
⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁
⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛶ ⛶ ⛶ Estimated usage by category
⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ System prompt: 3.3k tokens (1.6%)
⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ System tools: 20.5k tokens (10.2%)
⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ MCP tools: 8.5k tokens (4.3%)
⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ Custom agents: 4.8k tokens (2.4%)
⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ Memory files: 8.4k tokens (4.2%)
⛶ ⛶ ⛶ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛁ Skills: 8.9k tokens (4.4%)
⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛁ Messages: 2.8k tokens (1.4%)
⛶ Free space: 110k (54.9%)
⛝ Autocompact buffer: 33.0k tokens (16.5%)
/mcp로 즉시 비활성화 /clear 또는 HANDOFF.md 사용💡 Ado의 조언: "일반적으로 10개 미만의 MCP와 80개 미만의 활성 도구를 유지하는 것이 최적입니다."
Claude Code는 컨텍스트가 가득 차면 자동으로 압축합니다. 하지만 /config를 통해 자동 압축을 끄고 수동으로 관리하는 것을 권장합니다.
이유:
1) 자동 압축은 45k 토큰을 예약하므로 실제 사용 가능한 컨텍스트가 줄어듭니다.
2) 압축 시점을 직접 제어하여 중요한 정보가 손실되지 않도록 할 수 있습니다.
3) HANDOFF.md 방식이 더 명확하고 검증 가능합니다.
대화는 하나의 목적에만 집중하기!
여러 작업을 한 대화에서 섞으면 Claude가 헷갈립니다.
예를 들어 로그인 기능 구현하다가 갑자기 "아 맞다, 대시보드 UI도 좀 봐줘"라고 하면 컨텍스트가 오염됩니다.
터미널 탭을 여러 개 열어서 각각 독립적인 작업을 할당
| Tab | 용도 예시 |
|---|---|
| Tab1 | 메일 개발 작업 |
| Tab2 | 버그 수정 |
| Tab3 | 리서치 및 실험 |
| Tab4 | DevOps 및 배포 |
현재 대화 전체를 복제해서 새로운 세션을 만들때 사용합니다.
리팩토링처럼 잘못되면 되돌리기 번거로운 작업 전에 미리 복제해두면, 망해도 원본으로 돌아올 수 있습니다.
> /clone
활용 사례:
1) A/B 방식을 비교 실험할 때 유용
2) 위험한 변경을 시도하기 전 백업 생성
터미널 하단에 실시간으로 중요한 정보를 표시합니다.
~/project (main*) | Tokens: 45k/200k | Opus 4.5 | MCP: 3 active
설치 방법:
# 1. 저장소 클론
git clone https://github.com/ykdojo/claude-code-tips.git
# 2. 스크립트 심볼릭 링크 생성
ln -s $(pwd)/claude-code-tips/scripts/status-line.sh ~/.claude/scripts/status-line.sh
# 3. Claude Code 재시작
| 명령어 | 설명 | 사용 시점 |
|---|---|---|
| /usage | 현재 토큰 사용량과 리셋 시간 표시 | 매 세션 시작 시, 대화가 길어질 때 |
| /clear | 대화 내용을 지우고 새 컨텍스트로 시작 | 컨텍스트 오염 시, 새 작업 시작 시 |
| /stats | GitHub 스타일 활동 그래프, 사용 패턴 분석 | 주간 회고 시 |
| /context | 컨텍스트 윈도우 사용 현황 X-Ray | 성능 저하 느낄 때 |
| 명령어 | 설명 | 사용 시점 |
|---|---|---|
| /chrome | 크롬 브라우저 통합 시작 | 웹 스크래핑, UI 테스트, 디버깅 |
| /mcp | MCP 서버 목록 및 활성화/비활성화 | MCP 관리, 컨텍스트 최적화 |
| /permissions | 승인된 명령어 목록 및 관리 | 보안 감사, 위험한 명령어 제거 |
| /export | 대화 내역을 마크다운으로 내보내기 | 문서화, 팀 공유 |
! 접두사를 붙이면 Claude의 처리 없이 즉시 셸 명령을 실행하고 결과를 컨텍스트에 주입합니다. 토큰 낭비를 방지하고 속도를 높입니다.
# ❌ 일반적인 방법 (느림, 토큰 낭비)
> "git status를 실행해줘"
Claude: "네, git status를 실행하겠습니다..."
# ✅ ! Prefix 방법 (빠름, 효율적)
> !git status
# 즉시 결과 표시, Claude는 결과만 읽음
💡 Ado의 조언: "!git diff, !npm test, !docker ps 등 간단한 상태 확인에 완벽합니다."
CLAUDE.md 파일은 AI를 위한 프로젝트 설명서이자 행동 지침입니다. Claude는 이 파일을 최우선으로 참고하여 프로젝트의 기술 스택, 코딩 스타일, 금지 사항을 파악합니다.
새 프로젝트에서 /init 명령어를 실행하면 Claude가 코드베이스를 분석하여 CLAUDE.md 초안을 자동으로 생성합니다.
> /init
CLAUDE.md는 최대한 간결하고 명확하게 유지하는 것이 핵심입니다.
## Authentication
- NextAuth.js with Credentials provider
- JWT session strategy
- **DO NOT**: Bypass auth checks, expose session secrets
💡 ykdojo의 조언: "처음에는 CLAUDE.md 없이 시작하세요. 같은 말을 반복하게 되면 그때 추가하세요. 과도한 정보는 컨텍스트를 낭비합니다."
~/.zshrc 또는 ~/.bashrc에 추가하면 타이핑 시간을 크게 줄일 수 있습니다
# Claude Code 기본 별칭
alias c='claude'
alias cc='claude --continue' # 마지막 대화 이어가기
alias cr='claude --resume' # 대화 목록에서 선택
alias ch='claude --chrome' # 크롬 통합 모드
# Git 관련 별칭
alias gb='git branch'
alias gco='git checkout'
alias gst='git status'
alias gd='git diff'
# 빠른 종료
alias q='exit'
$ claude --continue
# 세션 이름 지정
> /rename auth-system-refactor
# 이름으로 재개
$ claude --resume auth-system-refactor
$ claude --teleport <session_id>
활용 상황:
과거 작업에서 특정 내용을 다시 찾아야 할 때, 대화 목록 확인 후 grep으로 검색할 수 있습니다.
# 전체 대화 목록 확인
$ claude -r
# 출력:
# 1. [2025-01-15 14:30] stripe-integration
# 2. [2025-01-14 09:15] auth-system-refactor
# 3. [2025-01-13 16:45] database-migration
# 특정 키워드 검색
$ grep -r "Stripe" ~/.claude/conversations/
# → abc123.json: "Stripe API 키를 환경 변수로 설정..."
# → def456.json: "Stripe Webhook 서명 검증..."
# 해당 세션 재개
$ claude --resume stripe-integration
웹 페이지 내용을 분석시키고 싶을 때, 브라우저에서 전체 선택 후Cmd/Ctrl+A(macOS) 복사해서 Claude Code에 붙여넣으면 됩니다. Claude 브라우저가 막힌 사이트를 우회할 때도 유용합니다.
Slack에서 링크가 포함된 텍스트를 Claude Code에 직접 붙여넣으면 링크가 사라집니다. Notion을 거치면 해결됩니다.
Slack 복사 → Notion에 붙여넣기 → Notion에서 복사 → Claude Code에 붙여넣기
| 단축키 | 기능 |
|---|---|
Esc Esc | 마지막 작업 되감기 (Undo) |
Ctrl+R | 역방향 검색 (이전 프롬프트 재사용) |
Ctrl+S | 프롬프트 임시 저장 (Stash) |
Tab / Enter | Claude의 다음 작업 제안 수락 |
💡 Double Esc: Claude가 잘못된 코드를 작성했을 때 Esc를 두 번 빠르게 누르면 마지막 작업을 되돌립니다. git reset --hard HEAD~1과 유사하지만 훨씬 빠릅니다.
# ❌ 헷갈릴 수 있음
> "../../config/database.ts 파일을 확인해줘"
# ✅ 명확함
> !realpath ../../config/database.ts
/Users/ykdojo/projects/myapp/config/database.ts
> "@/Users/ykdojo/projects/myapp/config/database.ts 이 파일을 확인해줘"
> "변경 사항을 분석하고 적절한 커밋 메시지를 작성한 후 커밋해줘"
# Claude가 자동으로:
# 1. git diff 분석
# 2. 커밋 메시지 생성: "feat: Add user authentication middleware with JWT validation"
# 3. git add . && git commit -m "..."
> "현재 브랜치의 변경 사항으로 draft PR을 만들어줘.
제목은 변경 내용을 요약하고, 본문에는 주요 변경 사항을 리스트로 작성해줘."
# Claude가 자동으로:
# gh pr create --draft --title "..." --body "..."
MCP(Model Context Protocol)는 Claude가 외부 서비스와 직접 통신할 수 있게 해주는 프로토콜입니다. 데이터베이스를 직접 쿼리하고, 브라우저를 제어하고, 웹을 크롤링하는 것을 Claude가 스스로 할 수 있게 됩니다.
# 브라우저 자동화
claude mcp add -s user playwright npx @playwright/mcp@latest
# 데이터베이스 직접 쿼리
claude mcp add -s user supabase npx @supabase/mcp@latest
# 웹 크롤링
claude mcp add -s user firecrawl npx @firecrawl/mcp@latest
Firecrawl로 데이터 수집:
> "https://example.com의 모든 제품 페이지를 크롤링하고,
제품명과 가격을 CSV 파일로 저장해줘"
# Claude가 알아서:
# 1. 웹사이트 전체 크롤링
# 2. 제품 정보 추출
# 3. products.csv 파일 생성
Playwright로 UI 테스트:
> "로그인 폼에서 잘못된 비밀번호 입력 시
에러 메시지가 제대로 표시되는지 테스트해줘"
# Claude가 알아서:
# 1. 브라우저 실행
# 2. 로그인 페이지 접속
# 3. 잘못된 비밀번호 입력
# 4. 에러 메시지 확인 및 스크린샷 저장
Skills는 Claude가 특정 상황에서 자동으로 꺼내 쓰는 지식 파일입니다. 예를 들어 발음 관련 질문을 받으면 자동으로 Google Translate 링크를 생성하는 Skill을 만들어두면, 따로 지시하지 않아도 Claude가 알아서 활용합니다.
CLAUDE.md가 "항상 로드되는 설명서"라면, Skills는 "필요할 때만 꺼내는 매뉴얼"에 가깝습니다.
Agents는 특정 작업에 특화된 독립 AI 프로세스입니다. 메인 Claude가 직접 모든 걸 처리하는 대신, 전문가 에이전트에게 위임할 수 있습니다.
# 테스트 전문 에이전트에게 위임
> "tdd-guide 에이전트를 실행하여 이 함수에 대한 테스트를 작성해줘"
# 보안 감사 전문 에이전트에게 위임
> "security-auditor 에이전트를 실행하여
이 코드베이스의 보안 취약점을 찾아줘"
# → SQL 인젝션, XSS, 하드코딩된 비밀번호 등 자동 검사 후 보고서 생성
Hooks, Skills, Agents, MCP 서버를 하나의 패키지로 묶어 배포하고 설치하는 방식입니다. 팀 전체가 동일한 워크플로우를 공유하거나, 커뮤니티 플러그인을 설치할 때 씁니다.
비슷해 보이지만 각각의 역할이 다릅니다.
| 기능 | 로딩 시점 | 주요 사용자 | 토큰 효율 | 대표 사용 사례 |
|---|---|---|---|---|
| CLAUDE.md | 항상 (모든 대화) | 개발자 | 낮음 | 프로젝트 설명, 코딩 스타일 |
| Skills | 필요 시 자동 | Claude | 높음 | 번역 링크 생성, 반복 작업 |
| Slash Commands | 수동 호출 | 개발자 | 높음 | 커밋, PR 생성 |
| Plugins | 설치 시 | 개발자 | — | 여러 기능을 하나로 묶어 배포 |
로컬 메인 Claude가 Docker 컨테이너 안의 "워커" Claude에게 작업을 위임하고 결과를 받아오는 방식입니다. 위험한 작업을 격리된 환경에서 자율적으로 수행할 수 있습니다.
> "Docker 컨테이너를 실행하고, 그 안에서 Claude Code를
--dangerously-skip-permissions 모드로 실행해줘.
tmux를 사용하여 워커 Claude에게
'전체 코드베이스를 분석하고 보안 취약점을 찾아줘'라고 지시해줘."
# 메인 Claude가 처리하는 일:
# 1. docker run으로 컨테이너 시작
# 2. tmux 세션 생성
# 3. 워커 Claude 실행
# 4. tmux send-keys로 프롬프트 전송
# 5. tmux capture-pane으로 결과 수집
# 6. 메인 세션에 반환
반복하는 작업이 생기면, Claude에게 그것을 명령어로 만들어달라고 하면 됩니다.
# 예시: PR 생성을 자동화하고 싶을 때
> "~/.claude/commands/pr.md 파일을 만들어줘.
이 명령어는 현재 브랜치의 변경 사항을 분석하고,
PR 템플릿에 맞춰 draft PR을 자동으로 생성해야 해."
같은 작업을 3번 이상 반복하고 있다면, 그건 자동화할 신호입니다.
Claude Code를 잘 쓰는 건 결국 세 가지로 요약됩니다.