서문: 개발의 새로운 시대, AI 에이전트와 함께하는 여정
2025년, 소프트웨어 개발의 패러다임은 근본적인 전환점을 맞이했습니다. 이제 인공지능(AI)은 단순히 코드 조각을 자동 완성해주는 보조 도구를 넘어, 개발자의 파트너로서 전체 개발 라이프사이클에 깊숙이 관여하는 에이전트(Agent)로 진화하고 있습니다. 그 혁명의 중심에 바로 Claude Code가 있습니다.
이 책은 단순한 기능 나열식 가이드를 넘어, Anthropic 해커톤 우승자 ykdojo의 생생한 경험과 검증된 워크플로우, 그리고 Anthropic DevRel Ado Kukic의 “Advent of Claude” 챌린지에서 공개된 70가지가 넘는 실전 팁과 전략을 완전히 집대성한 결정판 가이드입니다.
ykdojo는 Claude Code를 사용하여 생산성을 극적으로 향상시켰으며, 시스템 프롬프트를 19k 토큰에서 10k 이하로 절반 가까이 줄이고, 자신만의 음성 코딩 시스템을 구축하며, 컨테이너 기반의 멀티 에이전트 오케스트레이션까지 구현한 진정한 파워 유저입니다. 그는 “AI 사용법을 배우는 가장 좋은 방법은 AI를 사용하는 것”이라는 철학 아래, 10억 토큰 이상을 소비하며 축적한 노하우를 GitHub 저장소에 공개했습니다.
Ado Kukic은 Anthropic의 Developer Relations 팀에서 일하며, 2025년 12월 한 달 동안 매일 하나씩 Claude Code의 강력한 기능을 소개하는 “Advent of Claude” 챌린지를 진행했습니다. 그의 팁들은 초보자부터 고급 사용자까지 모두가 활용할 수 있는 실용적인 지식으로 가득합니다.
이 책의 특징
- 70가지 이상의 완전한 팁: ykdojo의 43가지 팁과 Ado의 31가지 팁을 빠짐없이 다룹니다.
- 구체적인 예시와 Cookbook: 각 팁마다 실제로 사용할 수 있는 명령어, 스크립트, 설정 파일을 제공합니다.
- 우승자의 워크플로우: 해커톤 우승자가 실제로 사용하는 작업 방식을 단계별로 따라갈 수 있습니다.
- 시각 자료: 다이어그램과 표로 복잡한 개념을 명확하게 이해할 수 있습니다.
이 책을 통해 여러분은 생산성을 50%에서 최대 200%까지 끌어올린 개발자들의 비밀을 엿보고, 그들의 사고방식과 기술을 자신의 것으로 만들게 될 것입니다.
1.1. 큰 문제 정복의 첫걸음: 분해하고 정복하라 (ykdojo Tip)
해커톤 우승자 ykdojo는 성공적인 AI 협업의 핵심이 “큰 문제를 잘게 쪼개는 능력”에 있다고 강조합니다. AI는 명확하고 구체적인 지시를 받았을 때 가장 뛰어난 성능을 발휘합니다.
잘못된 접근 방식
“로그인 페이지를 만들어줘.”
이런 막연한 요청은 AI에게 너무 많은 결정권을 주어, 여러분이 원하지 않는 방향으로 갈 가능성이 높습니다.
에이전틱 개발자의 접근 방식
- “사용자 모델을 위한 데이터베이스 스키마를 설계해줘. 필드는
username,email,password_hash,created_at,updated_at이 필요해.” - “이 스키마를 바탕으로 Drizzle ORM 마이그레이션 파일을 생성해줘.”
- “React와 TailwindCSS를 사용하여 로그인 폼 UI 컴포넌트를 만들어줘.”
- “사용자명과 비밀번호를 받아
/api/auth/login엔드포인트로 POST 요청을 보내는 로직을 작성해줘.” - “로그인 성공 시 토큰을
localStorage에 저장하고 대시보드로 리다이렉트하는 로직을 추가해줘.” - “로그인 실패 시나리오에 대한 테스트 코드를 작성해줘.”
ykdojo의 실제 사례: 음성 전사 시스템 구축
- 첫 번째 실행 파일: 모델을 다운로드하는 기능만 구현
- 두 번째 실행 파일: 음성을 녹음하는 기능만 구현
- 세 번째 실행 파일: 미리 녹음된 오디오를 전사하는 기능만 구현
- 네 번째 단계: 키보드 단축키를 감지하는 기능 추가
- 다섯 번째 단계: 전사된 텍스트를 사용자의 커서 위치에 삽입하는 기능 추가
- 마지막 단계: 모든 기능을 하나의 UI로 통합
단계적 경로 (성공 확률 높음): A → A₁ → A₂ → A₃ → B
1.2. 계획 모드 vs. 욜로 모드: 언제 생각하고 언제 실행할 것인가 (Ado Tip)
계획 모드 (Plan Mode)
Shift+Tab을 두 번 누르면 계획 모드로 진입합니다. 이 모드에서 Claude는 코드베이스를 읽고 분석하고, 아키텍처를 파악하며, 의존성을 탐색하고, 구현 계획을 단계별로 작성합니다. 하지만 여러분이 승인하기 전까지는 아무것도 편집하지 않습니다. “두 번 생각하고, 한 번 실행하라(Think twice, execute once)”는 철학을 구현한 것입니다.
계획 모드를 사용해야 할 때
- 처음 해보는 복잡한 작업
- 여러 파일에 걸친 대규모 리팩토링
- 아키텍처 변경이 필요한 작업
- 실수 시 복구 비용이 큰 작업 (예: 데이터베이스 마이그레이션)
욜로 모드 (YOLO Mode)
claude --dangerously-skip-permissions
이 플래그로 실행하면 Claude는 모든 작업을 자동 승인합니다. 이름에 “dangerously”가 들어간 이유가 있습니다.
욜로 모드를 사용해야 할 때
- 간단하고 명확한 작업 (예: “이 함수에 주석 추가해줘”)
- 실험적인 프로토타입 작업
- 컨테이너 안에서 격리된 환경에서 작업할 때
- 반복적이고 시간이 많이 걸리는 작업
1.3. 컨텍스트: AI의 기억력을 지배하는 기술 (ykdojo & Ado)
AI와의 협업에서 가장 중요한 자원은 컨텍스트(Context)입니다. Claude Code는 최대 200,000 토큰에 달하는 방대한 컨텍스트 윈도우를 가지고 있지만, 이는 무한하지 않습니다.
이 공간이 시스템 프롬프트, 코드 파일, 대화 기록 등으로 가득 차면, AI는 초기의 중요한 지시를 잊어버리는 컨텍스트 드리프트 현상을 겪습니다. 한 연구에 따르면 여러 주제를 한 대화에서 섞으면 성능이 39%까지 저하될 수 있습니다.
전략 1: 단일 목적 대화
하나의 대화에서는 하나의 명확한 목표에만 집중하세요. 작업이 바뀌면 새로운 터미널 탭을 열어 별도의 대화를 시작하세요.
전략 2: 선제적 압축 (HANDOFF.md)
대화가 길어지면, 다음 에이전트를 위해 HANDOFF.md를 작성하도록 지시하고 /clear로 새롭게 시작하세요.
# System Prompt Slimming - Handoff Document
## Goal
Reduce Claude Code's system prompt by ~45% (currently at 11%, need ~34% more).
## Current Progress
### What's Been Done
- Removed verbose examples from tool descriptions
- Shortened permission explanations
- Consolidated redundant instructions
### What Worked
- Regex-based pattern matching for finding repetitive text
- Testing each change individually before committing
### What Didn't Work
- Removing safety warnings (caused unexpected behavior)
- Over-aggressive minification (broke JSON parsing)
## Next Steps
1. Target the MCP server descriptions (estimated 2k tokens)
2. Simplify the hooks documentation
3. Test thoroughly after each change
전략 3: /context로 X-Ray 비전
/context 명령어를 사용하면 시스템 프롬프트, MCP 서버 프롬프트, 메모리 파일(CLAUDE.md), 로드된 스킬과 에이전트, 대화 기록이 차지하는 비율을 정확히 볼 수 있습니다.
전략 4: 자동 압축 비활성화
Claude Code는 컨텍스트가 가득 차면 자동으로 압축합니다. 하지만 ykdojo는 /config를 통해 자동 압축을 끄고 수동으로 관리하는 것을 선호합니다.
- 자동 압축은 45k 토큰을 예약하므로, 실제 사용 가능한 컨텍스트가 줄어듭니다.
- 압축 시점을 직접 제어하여 중요한 정보가 손실되지 않도록 할 수 있습니다.
- HANDOFF.md 방식이 더 명확하고 검증 가능합니다.
1.4. 올바른 추상화 수준 선택 (ykdojo)
ykdojo는 Claude Code 사용을 “거대한 빙산을 탐험하는 것”에 비유합니다. 때로는 멀리서 전체를 조망하고(Vibe Coding), 때로는 깊이 잠수하여 세부 사항을 파악해야 합니다(Deep Dive).
Vibe Coding 레벨 (높은 추상화)
- 일회성 프로젝트나 프로토타입
- 중요하지 않은 코드베이스 부분
- 빠른 실험이 필요할 때
Deep Dive 레벨 (낮은 추상화)
- 프로덕션 코드
- 보안이 중요한 부분
- 복잡한 버그 디버깅
- 성능 최적화
실전 예시 — 사용자 프로필 페이지 추가
- 높은 추상화: “사용자 프로필 페이지를 만들어줘” → 전체 구조 파악
- 중간 추상화: “프로필 편집 폼의 유효성 검사 로직을 보여줘” → 특정 기능 검토
- 낮은 추상화: “이 정규식이 왜 이메일 유효성 검사에 실패하는지 설명해줘” → 세부 디버깅
1.5. 미지의 영역에서 더 용감하게 (ykdojo)
ykdojo는 Claude Code를 사용하면서 “미지의 영역에서 더 용감해졌다”고 고백합니다. AI와의 협업이 단순히 생산성 향상을 넘어 개발자의 자신감과 학습 능력까지 확장시킨다는 것을 보여줍니다.
그는 React 전문가가 아니었지만 Daft에서 프론트엔드 코드 문제를 Claude와 함께 해결했고, Rust를 한 번도 다뤄본 적이 없었지만 Python과 Rust가 섞인 복잡한 문제를 우아한 솔루션으로 해결했습니다.
반복적 문제 해결의 과정
- 초기 시도: Claude가 제안한 솔루션을 시도
- 속도 조절: “천천히 가자. 이 줄이 정확히 무슨 의미인지 설명해줘”
- 방향 전환: 막다른 골목이면 다른 접근 방식 탐색
- 깊이 조절: 필요에 따라 추상화 수준을 높이거나 낮춤
- 최종 해결: 우아한 솔루션 발견
2.1. 커스텀 상태 라인으로 모든 것을 한눈에 (ykdojo)
ykdojo가 가장 먼저 소개하는 팁은 커스텀 상태 라인입니다. 터미널 하단에 실시간으로 토큰 사용량, Git 브랜치, 활성 MCP 수, 사용 모델 등을 표시합니다.
~/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 재시작
커스터마이징
{
"statusLine": {
"format": "{{dir}} {{git}} | {{tokens}} | {{model}}",
"updateInterval": 1000
}
}
Ado는 /statusline 명령어를 통해 대화형으로 상태 라인을 커스터마이징하는 방법도 소개합니다.
2.2. 필수 슬래시 명령어 마스터 (ykdojo & Ado)
Tier 1: 생존 필수 명령어
| 명령어 | 설명 | 사용 시점 |
|---|---|---|
/usage | 현재 토큰 사용량과 리셋 시간을 시각적으로 표시 | 매 세션 시작 시, 대화가 길어질 때 |
/clear | 대화 내용을 깨끗이 지우고 새로운 컨텍스트로 시작 | 컨텍스트 오염 시, 새 작업 시작 시 |
/stats | GitHub 스타일 활동 그래프, 즐겨찾는 모델, 연속 사용일 등 분석 | 주간 회고 시, 사용 패턴 분석 시 |
/context | 컨텍스트 윈도우 사용 현황 X-Ray | 성능 저하 느낄 때, 최적화 필요 시 |
Tier 2: 생산성 향상 명령어
| 명령어 | 설명 | 사용 시점 |
|---|---|---|
/chrome | 크롬 브라우저 통합 시작 | 웹 스크래핑, UI 테스트, 디버깅 |
/mcp | MCP 서버 목록 및 활성화/비활성화 | MCP 관리, 컨텍스트 최적화 |
/permissions | 승인된 명령어 목록 및 관리 | 보안 감사, 위험한 명령어 제거 |
/export | 대화 내역을 마크다운으로 내보내기 | 문서화, 팀 공유, 학습 자료 |
! Prefix: 즉시 실행의 마법
! 접두사를 붙이면 Claude의 처리 없이 즉시 셸 명령을 실행하고 결과를 컨텍스트에 주입합니다. 토큰 낭비를 방지하고 속도를 높입니다.
# 일반적인 방법 (느림, 토큰 낭비)
> "git status를 실행해줘"
Claude: "네, git status를 실행하겠습니다..."
[실행 후 결과 표시]
# ! Prefix 방법 (빠름, 효율적)
> !git status
[즉시 결과 표시, Claude는 결과만 읽음]
!git diff, !npm test, !docker ps 등 간단한 상태 확인에 완벽합니다.”2.3. CLAUDE.md: AI를 위한 프로젝트 설명서 (Ado & ykdojo)
CLAUDE.md 파일은 AI를 위한 프로젝트 설명서이자 행동 지침입니다. Claude는 이 파일을 최우선으로 참고하여 프로젝트의 기술 스택, 코딩 스타일, 주요 라이브러리, 그리고 해서는 안 될 일들을 파악합니다.
/init: AI가 스스로 온보딩
# Project: E-commerce Platform
## Tech Stack
- **Frontend**: Next.js 14, React 18, TailwindCSS
- **Backend**: Node.js, Express, PostgreSQL
- **ORM**: Drizzle
- **Authentication**: NextAuth.js
- **Payment**: Stripe
## Project Structure
- `/app`: Next.js app directory (routes, layouts)
- `/components`: Reusable React components
- `/lib`: Utility functions, database client
- `/api`: Backend API routes
## Coding Standards
- Use TypeScript strict mode
- Prefer server components over client components
- Use `async/await` instead of `.then()`
- Always validate user input with Zod
## DO NOT
- Never commit `.env` files
- Never use `any` type in TypeScript
- Never bypass authentication checks
- Never expose API keys in client code
## Common Commands
- `npm run dev`: Start development server
- `npm run build`: Build for production
- `npm run db:push`: Push schema changes to database
Memory Updates: 실시간 메모리 업데이트
CLAUDE.md를 직접 편집하지 않고, 자연어로 지시하여 업데이트할 수 있습니다.
> Update Claude.md: always use bun instead of npm
간결함의 미학
## Authentication
- NextAuth.js with Credentials provider
- JWT session strategy
- **DO NOT**: Bypass auth checks, expose session secrets
2.4. 터미널 별칭으로 빠른 접근 (ykdojo)
# Claude Code 기본 별칭
alias c='claude'
alias cc='claude --continue' # 마지막 대화 이어가기
alias cr='claude --resume' # 대화 목록에서 선택
alias ch='claude --chrome' # 크롬 통합 모드
# Git 관련 별칭 (Claude와 함께 사용)
alias gb='git branch'
alias gco='git checkout'
alias gst='git status'
alias gd='git diff'
# 빠른 종료
alias q='exit'
2.5. 세션 관리: 대화를 잃지 않는 법 (Ado)
Continue Where You Left Off
$ claude --continue
# 또는
$ c -c
Named Sessions: 세션에 이름 붙이기
> /rename auth-system-refactor
$ claude --resume auth-system-refactor
Claude Code Remote: 원격 세션
웹 브라우저에서 시작한 Claude Code 세션을 로컬 터미널로 가져올 수 있습니다.
$ claude --teleport <session_id>
외출 중 웹에서 시작한 작업을 집에 돌아와서 터미널에서 이어가거나, 팀원이 웹에서 시작한 세션을 로컬에서 디버깅할 때 유용합니다.
/export: 대화 내역 내보내기
현재 대화 내역을 마크다운 파일로 내보냅니다. 팀원과 공유, 문서화, 학습 자료, 블로그 포스트 작성 등에 활용할 수 있습니다.
3.1. 음성으로 코딩하기 (ykdojo)
평균적으로 사람은 분당 40단어를 타이핑하지만, 분당 150단어를 말할 수 있습니다. 3.75배의 속도 차이입니다.
ykdojo는 자신만의 음성 전사 시스템을 구축했습니다.
- 키보드 단축키(예: Cmd+Shift+Space)를 누르면 녹음 시작
- 다시 누르면 녹음 종료 및 전사 시작
- 전사된 텍스트를 현재 커서 위치에 자동 삽입
사용 가능한 도구들
| 도구 | 플랫폼 | 특징 | 가격 |
|---|---|---|---|
| superwhisper | macOS | 로컬 처리, 빠름, 정확함 | $30 일회성 |
| MacWhisper | macOS | OpenAI Whisper 기반 | 무료/프리미엄 |
| ykdojo's Custom Tool | macOS | Claude Code로 제작, 완전 커스터마이징 | 오픈소스 |
| Windows Speech Recognition | Windows | 내장, 무료 | 무료 |
음성 코딩이 특히 유용한 상황
- 복잡한 요구사항을 설명할 때
- 여러 단계의 작업을 한 번에 지시할 때
- 손이 피곤하거나 손목 터널 증후군이 있을 때
- 산책하거나 이동 중일 때
3.2. 터미널 출력 추출의 기술 (ykdojo)
방법 1: pbcopy/pbpaste (macOS/Linux)
# Claude의 마지막 출력을 클립보드로 복사
> "마지막 출력을 pbcopy로 복사해줘"
# 또는 직접 명령어 실행
> !claude -r | tail -n 50 | pbcopy
방법 2: VS Code로 바로 열기
> "이 코드를 temp.ts 파일로 저장하고 VS Code로 열어줘"
# Claude 실행:
# cat > temp.ts << 'EOF'
# [코드 내용]
# EOF
# code temp.ts
방법 3: GitHub Desktop으로 변경 사항 검토
> "GitHub Desktop을 열어줘"
# 또는
> !open -a "GitHub Desktop"
ykdojo의 워크플로우: Claude에게 코드 작성 요청 → GitHub Desktop으로 변경 사항 검토 → 문제가 있으면 특정 파일만 되돌리기 → Claude에게 “이 파일만 다시 수정해줘”라고 요청.
3.3. Cmd+A/Ctrl+A: 전체 선택의 힘 (ykdojo)
웹 페이지나 문서의 내용을 빠르게 컨텍스트에 넣고 싶을 때, Cmd+A (macOS) 또는 Ctrl+A (Windows/Linux)로 전체를 선택하고 Claude Code에 붙여넣으세요.
실제 사례: 접근이 막힌 웹사이트
# 1. Gemini CLI로 웹사이트 접근
> "Gemini CLI를 사용하여 https://example.com의 내용을 가져와줘"
# 2. Gemini가 가져온 내용을 Cmd+A로 전체 선택
# 3. Claude Code에 붙여넣기
> "이 내용을 분석해서 핵심 정보를 요약해줘"
3.4. 마크다운과 Notion 활용 (ykdojo)
마크다운 활용
다음 API 엔드포인트를 구현해줘:
## POST /api/users
- **Request Body**: { name: string, email: string }
- **Response**: { id: number, name: string, email: string, createdAt: string }
- **Validation**:
- name은 2-50자
- email은 유효한 형식
- **Error Cases**:
- 400: 유효성 검사 실패
- 409: 이메일 중복
Notion으로 링크 보존
Slack이나 다른 곳에서 링크가 포함된 텍스트를 복사하여 Claude Code에 직접 붙여넣으면 링크가 사라집니다. 하지만 Notion에 먼저 붙여넣은 후, Notion에서 복사하면 마크다운 형식으로 변환되어 링크가 보존됩니다.
3.5. 키보드 단축키 완전 정복 (Ado & ykdojo)
| 단축키 | 기능 | 사용 시점 |
|---|---|---|
| Esc Esc | 대화/코드 되감기 (Undo) | 잘못된 변경 즉시 되돌리기 |
| Ctrl+R | 역방향 검색 (명령어 히스토리) | 이전에 사용한 프롬프트 재사용 |
| Ctrl+S | 프롬프트 임시 저장 (Stash) | 작성 중인 프롬프트를 나중을 위해 보관 |
| Tab / Enter | 프롬프트 제안 수락 | Claude가 제안한 다음 작업 즉시 실행 |
Double Esc: 되감기의 마법
Claude가 잘못된 코드를 작성했거나, 원하지 않는 파일을 삭제했을 때, Esc를 두 번 빠르게 누르면 마지막 작업을 되돌립니다. git reset --hard HEAD~1과 유사하지만, 훨씬 빠르고 안전합니다.
Prompt Suggestions: 다음 작업 예측
# 코드 작성 후, Claude가 제안:
> "이 코드에 대한 테스트를 작성할까요?" [Tab to accept]
# Tab 누르면 즉시 테스트 작성 시작
3.6. Vim 모드로 프롬프트 편집 (Ado)
Vim 사용자라면 /vim 명령어로 Vim 모드를 활성화할 수 있습니다.
hjkl: 커서 이동w, b: 단어 단위 이동0, $: 줄 시작/끝으로 이동dd: 줄 삭제 /yy: 줄 복사 /p: 붙여넣기i, a: 삽입 모드 / Esc: 일반 모드
3.7. 입력 박스 탐색 및 편집 (ykdojo)
탐색 단축키
| 단축키 | 기능 |
|---|---|
| Ctrl+A | 줄 시작으로 이동 |
| Ctrl+E | 줄 끝으로 이동 |
| Option+←/→ (Mac) | 단어 단위 이동 |
| Alt+←/→ (Linux/Windows) | 단어 단위 이동 |
편집 단축키
| 단축키 | 기능 |
|---|---|
| Ctrl+W | 이전 단어 삭제 |
| Ctrl+U | 커서부터 줄 시작까지 삭제 |
| Ctrl+K | 커서부터 줄 끝까지 삭제 |
| Ctrl+C / Ctrl+L | 현재 입력 지우기 |
| Ctrl+G | 외부 에디터에서 프롬프트 편집 |
Ctrl+G: 외부 에디터로 편집
# ~/.zshrc 또는 ~/.bashrc에 추가
export EDITOR=vim # 또는 code, nano, nvim 등
이미지 붙여넣기
| 플랫폼 | 단축키 |
|---|---|
| Mac | Ctrl+V (주의: Cmd+V가 아님) |
| Linux | Ctrl+V |
| Windows | Alt+V |
여러 줄 입력
가장 간단한 방법: \ 입력 후 Enter → 새 줄 생성. 또는 /terminal-setup으로 터미널별 설정 확인.
4.1. 선제적 컨텍스트 압축 (ykdojo)
HANDOFF.md 워크플로우
# 1. 대화가 50k 토큰 이상 사용 중일 때
> "/context로 현재 사용량 확인"
# 2. HANDOFF.md 생성 요청
> "지금까지의 작업 내용을 HANDOFF.md 파일로 정리해줘.
다음 에이전트가 이 파일만 읽고 작업을 이어갈 수 있도록
시도한 것, 성공한 것, 실패한 것, 다음 단계를 명확히 작성해줘."
# 3. 새 세션 시작
> "/clear"
# 4. HANDOFF.md 로드
> "@HANDOFF.md 이 파일을 읽고 작업을 이어가줘"
HANDOFF.md 예시
# 프로젝트: Stripe 결제 통합
## 목표
Stripe Checkout을 사용한 일회성 결제 시스템 구현
## 완료된 작업
✅ Stripe SDK 설치 및 API 키 설정
✅ `/api/create-checkout-session` 엔드포인트 구현
✅ 성공/취소 페이지 라우팅
## 시도했지만 실패한 것
❌ Webhook 서명 검증 - 로컬 환경에서 테스트 불가
- 해결책: ngrok 사용 필요
## 현재 문제
- Webhook 이벤트 처리 로직 미완성
- 데이터베이스에 결제 기록 저장 필요
## 다음 단계
1. ngrok으로 로컬 서버 노출
2. Stripe 대시보드에서 Webhook URL 등록
3. `payment_intent.succeeded` 이벤트 핸들러 구현
4. 결제 기록을 `payments` 테이블에 저장
4.2. 터미널 탭으로 멀티태스킹 (ykdojo)
| 탭 | 용도 | 예시 |
|---|---|---|
| 탭 1 | 메인 개발 작업 | 새 기능 구현 |
| 탭 2 | 버그 수정 | 긴급 핫픽스 |
| 탭 3 | 리서치 및 실험 | 새로운 라이브러리 테스트 |
| 탭 4 | DevOps 및 배포 | CI/CD 디버깅 |
4.3. 대화 복제 및 반복제 (ykdojo)
Clone: 전체 복제
> /clone
현재 대화의 모든 내용을 새로운 UUID로 복제합니다. 첫 메시지에 [CLONED Jan 15 14:30] 태그가 추가됩니다.
Half-Clone: 반복제 (컨텍스트 절반 줄이기)
> /half-clone
대화의 후반부만 유지하고 전반부는 삭제합니다.
설치 방법 (ykdojo의 dx 플러그인)
claude plugin marketplace add ykdojo/claude-code-tips
claude plugin install dx@ykdojo
이제 /dx:clone과 /dx:half-clone 명령어를 사용할 수 있습니다.
4.4. /context로 X-Ray 비전 (Ado)
Context Usage: 87,432 / 200,000 tokens (43.7%)
Breakdown:
- System Prompt: 10,234 tokens (11.7%)
- MCP Servers: 15,678 tokens (18.0%)
- supabase-mcp: 8,234 tokens
- playwright-mcp: 4,123 tokens
- firecrawl-mcp: 3,321 tokens
- Memory Files (CLAUDE.md): 2,345 tokens (2.7%)
- Skills: 1,234 tokens (1.4%)
- Conversation History: 57,941 tokens (66.3%)
최적화 전략
- MCP 정리: 사용하지 않는 MCP는
/mcp로 비활성화 - CLAUDE.md 간소화: 불필요한 설명 제거
- 대화 압축:
/clear또는 HANDOFF.md 사용
4.5. realpath로 절대 경로 얻기 (ykdojo)
# 잘못된 방법
> "../../config/database.ts 파일을 확인해줘"
# 올바른 방법
> !realpath ../../config/database.ts
/Users/ykdojo/projects/myapp/config/database.ts
> "@/Users/ykdojo/projects/myapp/config/database.ts 이 파일을 확인해줘"
5.1. Git과 GitHub CLI 프로 활용 (ykdojo)
자동 커밋 메시지 생성
> "변경 사항을 분석하고 적절한 커밋 메시지를 작성한 후 커밋해줘"
# Claude 실행:
# git diff를 분석
# 커밋 메시지 생성: "feat: Add user authentication middleware with JWT validation"
# git add . && git commit -m "..."
Draft PR 자동 생성
> "현재 브랜치의 변경 사항으로 draft PR을 만들어줘.
제목은 변경 내용을 요약하고, 본문에는 주요 변경 사항을 리스트로 작성해줘."
# Claude 실행:
# gh pr create --draft --title "..." --body "..."
PR 템플릿 활용
## 변경 사항
-
## 테스트 방법
-
## 체크리스트
- [ ] 테스트 추가됨
- [ ] 문서 업데이트됨
- [ ] Breaking change 없음
5.2. Git worktrees로 병렬 브랜치 작업 (ykdojo)
# 메인 프로젝트: ~/projects/myapp (main 브랜치)
# Worktree 1: ~/projects/myapp-feature-auth (feature/auth 브랜치)
# Worktree 2: ~/projects/myapp-hotfix (hotfix/critical-bug 브랜치)
# Worktree 생성
> "git worktree를 사용하여 feature/auth 브랜치를 ../myapp-feature-auth에 체크아웃해줘"
# Claude 실행:
# git worktree add ../myapp-feature-auth feature/auth
node_modules를 다시 설치하거나, 빌드를 다시 실행할 필요가 없습니다.”5.3. 대화형 PR 리뷰 (ykdojo)
# 1. PR 체크아웃
> "gh pr checkout 123을 실행하고 이 PR의 변경 사항을 요약해줘"
# 2. 전체 개요 파악
> "이 PR이 어떤 문제를 해결하는지, 주요 변경 파일은 무엇인지 설명해줘"
# 3. 파일별 심층 리뷰
> "src/auth/middleware.ts 파일의 변경점을 분석해줘.
보안 이슈나 성능 문제가 있는지 확인해줘"
# 4. 테스트 커버리지 확인
> "이 변경에 대한 테스트가 충분한지 평가해줘"
# 5. 개선 제안
> "이 로직을 더 효율적으로 바꿀 방법이 있을까?"
# 6. 자동 수정
> "네가 제안한 개선 사항을 적용하고 테스트를 실행해줘"
실제 사례에서 ykdojo는 Claude가 토큰 만료 시간 검증 로직의 타임존 버그, 불필요한 데이터베이스 쿼리(N+1 문제), 에러 핸들링 누락을 발견하고 모두 수정하는 것을 경험했습니다.
5.4. 승인된 명령어 감사 (ykdojo)
Claude Code는 반복적인 명령어를 자동 승인하도록 설정할 수 있지만, 위험할 수 있습니다. 실제로 한 사용자는 rm -rf tests/ patches/ plan/ ~/를 승인하여 홈 디렉토리를 삭제한 사례가 있습니다.
cc-safe: 위험한 명령어 감사 도구
# 설치
npm install -g cc-safe
# 현재 디렉토리 스캔
npx cc-safe .
# 전체 프로젝트 폴더 스캔
npx cc-safe ~/projects
감지하는 위험 패턴
sudo,rm -rf,chmod 777curl | sh,wget | bashgit reset --hard,git push --forcenpm publish,docker run --privileged
⚠ Found 3 risky approved commands:
1. /Users/ykdojo/projects/myapp/.claude/settings.json
- "Bash(rm -rf dist/)" ← Dangerous: rm -rf
2. /Users/ykdojo/projects/myapp/.claude/settings.json
- "Bash(sudo npm install -g)" ← Dangerous: sudo
3. /Users/ykdojo/projects/experiment/.claude/settings.json
- "Bash(curl https://install.sh | sh)" ← Dangerous: curl | sh
6.1. MCP: 외부 세계와의 연결 (Ado)
MCP 서버 설치
# Playwright MCP (브라우저 자동화)
claude mcp add -s user playwright npx @playwright/mcp@latest
# Supabase MCP (데이터베이스 직접 쿼리)
claude mcp add -s user supabase npx @supabase/mcp@latest
# Firecrawl MCP (웹 크롤링)
claude mcp add -s user firecrawl npx @firecrawl/mcp@latest
Supabase MCP 활용 사례
> "Supabase 데이터베이스의 users 테이블에서
지난 7일간 가입한 사용자 수를 조회해줘"
# Claude가 직접 SQL 쿼리 실행:
# SELECT COUNT(*) FROM users WHERE created_at >= NOW() - INTERVAL '7 days'
Firecrawl MCP 활용 사례
> "https://example.com의 모든 제품 페이지를 크롤링하고,
제품명과 가격을 CSV 파일로 저장해줘"
Playwright MCP 활용 사례
> "Playwright를 사용하여 로그인 폼을 테스트해줘.
잘못된 비밀번호 입력 시 에러 메시지가 표시되는지 확인해"
6.2. Hooks: 규칙의 강제 (Ado)
Hooks는 특정 이벤트 발생 시 자동으로 실행되는 셸 명령어로, AI의 확률적 행동에 결정론적 제어를 추가합니다.
| Hook | 실행 시점 | 사용 사례 |
|---|---|---|
| PreToolUse | 도구 실행 전 | 위험한 명령어 차단 |
| PostToolUse | 도구 실행 후 | 로그 기록, 알림 전송 |
| PermissionRequest | 권한 요청 시 | 자동 승인/거부 |
| Notification | Claude의 알림 시 | 외부 시스템 통합 |
| SubagentStart | 서브에이전트 시작 시 | 모니터링 |
| SubagentStop | 서브에이전트 종료 시 | 결과 수집 |
실전 예시: tmux 없이 장시간 명령어 경고
{
"hooks": {
"PreToolUse": {
"command": "bash",
"args": ["-c", "if [[ $TOOL_NAME == 'Bash' ]] && [[ ! $TMUX ]]; then echo '⚠ Warning: Long-running command without tmux'; fi"]
}
}
}
실전 예시: 위험한 명령어 차단
{
"hooks": {
"PreToolUse": {
"command": "bash",
"args": ["-c", "if echo $TOOL_INPUT | grep -q 'rm -rf /'; then echo 'BLOCKED: Dangerous command'; exit 1; fi"]
}
}
}
6.3. Skills: 재사용 가능한 지식 (Ado)
Skill 생성 예시: Google 번역 링크
~/.claude/skills/google-translate/skill.md:
# Google Translate Skill
When the user asks how to pronounce a word in a specific language, generate a Google Translate link.
## Format
https://translate.google.com/?sl=auto&tl={target_language}&text={word}
## Example
User: "How do you pronounce 'hello' in Korean?"
Response: "Here's the pronunciation: https://translate.google.com/?sl=auto&tl=ko&text=hello"
이제 Claude는 발음 질문을 받으면 자동으로 이 스킬을 사용합니다.
6.4. Agents: 전문화된 서브에이전트 (Ado)
서브에이전트의 특징
- 각자 독립적인 200k 컨텍스트 윈도우
- 병렬 실행 가능
- 전문화된 시스템 프롬프트
- 작업 완료 후 결과를 메인 에이전트에게 반환
실전 예시: 보안 감사 에이전트
> "security-auditor 에이전트를 실행하여
이 코드베이스의 보안 취약점을 찾아줘"
# security-auditor 에이전트:
# - SQL 인젝션 취약점 검사
# - XSS 취약점 검사
# - 하드코딩된 비밀번호 검사
# - 보고서 생성
6.5. Plugins: 기능 번들 (Ado)
# Marketplace에서 검색
/plugin search frontend
# 설치
/plugin install frontend-design@anthropic
ykdojo의 dx 플러그인
claude plugin marketplace add ykdojo/claude-code-tips
claude plugin install dx@ykdojo
dx 플러그인에 포함된 것:
/dx:gha <url>: GitHub Actions 실패 분석/dx:handoff: HANDOFF.md 생성/dx:clone: 대화 복제/dx:half-clone: 대화 반복제reddit-fetch스킬: Reddit 콘텐츠 자동 가져오기
6.6. CLAUDE.md vs Skills vs Slash Commands vs Plugins (ykdojo)
| 기능 | 로딩 시점 | 주요 사용자 | 토큰 효율성 | 사용 사례 |
|---|---|---|---|---|
| CLAUDE.md | 모든 대화 시작 시 | 개발자 | 낮음 (항상 로드) | 프로젝트 설명, 코딩 스타일, 금지 사항 |
| Skills | 필요 시 자동 | Claude | 높음 (필요 시만) | 특정 작업 자동화 (번역, 크롤링 등) |
| Slash Commands | 수동 호출 시 | 개발자 | 높음 (호출 시만) | 반복 작업 (커밋, PR 생성 등) |
| Plugins | 설치 시 | 개발자 | — | 여러 기능을 하나로 묶어 배포 |
7.1. 시스템 프롬프트 슬림화 (ykdojo)
ykdojo는 시스템 프롬프트를 19k 토큰에서 10k 이하로 절반 가까이 줄이는 데 성공했습니다.
왜 시스템 프롬프트를 줄여야 하는가?
- 더 많은 코드 파일과 대화 기록을 컨텍스트에 담을 수 있음
- 응답 속도 향상 (처리할 토큰이 적음)
- 비용 절감 (토큰 사용량 감소)
ykdojo의 58가지 패치
- 장황한 예시: 도구 설명에 포함된 불필요하게 긴 예시
- 반복적인 지시: 여러 곳에서 반복되는 동일한 지시사항
- 과도한 안전 경고: 너무 자주 반복되는 경고 메시지
- 사용하지 않는 도구 설명: 거의 사용되지 않는 도구의 긴 설명
# ykdojo의 저장소 클론
git clone https://github.com/ykdojo/claude-code-tips.git
cd claude-code-tips
# 패치 적용 스크립트 실행
./scripts/apply-patches.sh
7.2. 장시간 작업을 위한 수동 지수 백오프 (ykdojo)
처음에는 짧은 간격으로 확인하고, 점차 간격을 늘려가는 방식입니다 (1분 → 2분 → 4분 → 8분 → ...).
> "대용량 CSV 파일(10GB)을 처리하는 스크립트를 실행해줘.
지수 백오프 방식으로 진행 상황을 확인해줘.
처음 1분 후, 그 다음 2분 후, 4분 후, 8분 후 확인해."
7.3. 백그라운드에서 bash 명령 및 에이전트 실행 (ykdojo)
Ctrl+B: 백그라운드로 보내기
명령어가 실행 중일 때 Ctrl+B를 누르면 백그라운드로 이동합니다. Claude는 BashOutput 도구를 사용하여 나중에 상태를 확인할 수 있습니다.
병렬 서브에이전트 활용
> "대규모 코드베이스를 분석해야 해.
3개의 서브에이전트를 백그라운드에서 실행하여
각각 다른 모듈을 분석하도록 해줘."
# Claude가:
# - Agent 1: /src/auth 모듈 분석
# - Agent 2: /src/api 모듈 분석
# - Agent 3: /src/database 모듈 분석
# 모두 병렬로 실행
7.4. 자동화의 자동화 (ykdojo)
ykdojo는 이를 “Automation of automation”이라고 부릅니다.
ykdojo의 자동화 여정
- Level 1: ChatGPT에서 코드를 복사하여 터미널에 붙여넣기
- Level 2: ChatGPT 플러그인(Kaguya)을 만들어 자동 실행
- Level 3: Claude Code 사용으로 터미널 통합
- Level 4: 음성 전사 시스템 구축으로 타이핑 자동화
- Level 5: CLAUDE.md로 반복 지시 자동화
- Level 6: 커스텀 슬래시 명령어로 워크플로우 자동화
- Level 7: Skills로 Claude의 자동 판단 자동화
- Level 8: Hooks로 규칙 강제 자동화
7.5. Headless 모드로 CI/CD 통합 (Ado)
Headless 모드 사용법
# 기본 사용
claude -p "Fix the lint errors"
# 파이프라인 통합
git diff | claude -p "Explain these changes"
# JSON 출력
echo "Review this PR" | claude -p --json
CI/CD 통합 예시: GitHub Actions
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Claude Code
run: curl -fsSL https://claude.ai/install.sh | sh
- name: Review PR
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git diff origin/main...HEAD | \
claude -p "Review this PR and identify potential issues" \
> review.md
- name: Comment on PR
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review.md', 'utf8');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: review
});
8.1. 컨테이너로 위험한 작업 격리 (ykdojo)
Docker 컨테이너 설정
FROM ubuntu:22.04
# 기본 도구 설치
RUN apt-get update && apt-get install -y \
curl git tmux vim \
nodejs npm python3 python3-pip
# Claude Code 설치
RUN curl -fsSL https://claude.ai/install.sh | sh
# Gemini CLI 설치 (선택사항)
RUN npm install -g @google/generative-ai-cli
# 작업 디렉토리
WORKDIR /workspace
CMD ["/bin/bash"]
컨테이너 실행
# 이미지 빌드
docker build -t claude-sandbox .
# 컨테이너 실행 (호스트 디렉토리 마운트)
docker run -it --rm \
-v $(pwd):/workspace \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
claude-sandbox
# 컨테이너 안에서 Claude Code 실행
claude --dangerously-skip-permissions
고급: 워커 Claude 오케스트레이션
로컬의 메인 Claude가 tmux를 통해 컨테이너 안의 “워커” Claude에게 작업을 지시하고 결과를 받아오는 워크플로우를 구성할 수 있습니다. ykdojo는 새 버전 출시 시마다 시스템 프롬프트 패치를 업데이트하는 작업을 컨테이너 안의 워커 Claude에게 자율적으로 맡깁니다.
8.2. Sandbox 모드와 권한 관리 (Ado)
> /sandbox
# Claude가 묻습니다:
"어떤 명령어를 자동 승인할까요?"
> "npm install, npm test, git status, git diff를 자동 승인해줘"
# 이제 이 명령어들은 매번 물어보지 않고 자동 실행됩니다.
와일드카드 지원
> /sandbox
> "mcp__server__* 패턴의 모든 MCP 서버 도구를 자동 승인해줘"
8.3. YOLO 모드: 위험을 감수할 때 (Ado)
claude --dangerously-skip-permissions
사용해야 할 때
- 컨테이너 안에서 실험할 때
- 장시간 자율 작업이 필요할 때 (예: Reddit 리서치)
- 신뢰할 수 있는 반복 작업
절대 사용하지 말아야 할 때
- 호스트 시스템에서 직접 실행
- 중요한 데이터가 있는 디렉토리
- 프로덕션 환경
9.1. 네이티브 브라우저 통합 (Ado)
https://claude.ai/chrome방문- Chrome 확장 프로그램 설치
- Claude Code 실행:
claude --chrome
가능한 작업
- 페이지 탐색
- 버튼 클릭 및 폼 작성
- 콘솔 에러 읽기
- DOM 검사
- 스크린샷 촬영
실전 예시: 버그 재현 및 수정
> "localhost:3000으로 이동하여 로그인 버튼을 클릭해줘.
콘솔에 에러가 있는지 확인하고, 있다면 코드를 수정해줘."
# Claude가:
# 1. 브라우저에서 localhost:3000 열기
# 2. 로그인 버튼 찾기 및 클릭
# 3. 콘솔 에러 확인: "Uncaught TypeError: Cannot read property 'email' of undefined"
# 4. 코드에서 해당 부분 찾기
# 5. 수정: user?.email로 옵셔널 체이닝 추가
# 6. 브라우저 새로고침하여 수정 확인
9.2. Playwright MCP (Ado)
claude mcp add -s user playwright npx @playwright/mcp@latest
Playwright의 장점
- 헤드리스 브라우저 지원 (백그라운드 실행)
- 여러 브라우저 지원 (Chrome, Firefox, Safari)
- 네트워크 요청 가로채기
- 파일 다운로드 자동화
실전 예시: E2E 테스트 자동화
> "Playwright를 사용하여 전체 사용자 여정을 테스트해줘:
1. 회원가입
2. 로그인
3. 제품 검색
4. 장바구니 추가
5. 결제
각 단계마다 스크린샷을 저장해줘."
9.3. Gemini CLI를 대체 수단으로 (ykdojo)
npm install -g @google/generative-ai-cli
export GOOGLE_API_KEY=your_api_key
멀티 모델 오케스트레이션
> "이 코드를 Claude Opus로 작성하고,
Gemini로 코드 리뷰를 받은 후,
GPT-4로 최종 최적화를 해줘"
10.1. 작성-테스트 사이클 완성 (ykdojo)
> "사용자 인증 미들웨어를 작성하고, 테스트 코드도 함께 작성해줘.
테스트를 실행하여 모두 통과하는지 확인해줘."
# Claude가:
# 1. 미들웨어 코드 작성 (src/middleware/auth.ts)
# 2. 테스트 코드 작성 (src/middleware/auth.test.ts)
# 3. npm test 실행
# 4. 테스트 실패 시 코드 수정
# 5. 모든 테스트 통과할 때까지 반복
10.2. 자신만의 워크플로우에 투자 (ykdojo)
ykdojo의 커스텀 워크플로우
- 음성 전사 시스템: 키보드 단축키로 음성을 텍스트로 변환
- 커스텀 상태 라인: 토큰, Git 상태, MCP 수 실시간 표시
- 자동 커밋 명령어:
/commit으로 변경 사항 분석 및 커밋 - GitHub Actions 디버거:
/gha <url>로 실패 원인 자동 분석 - HANDOFF.md 생성기:
/handoff로 컨텍스트 압축
여러분만의 워크플로우 만들기
# 1. 반복하는 작업 식별
"나는 매번 PR을 만들 때 같은 형식의 설명을 작성한다"
# 2. 자동화 방법 설계
"PR 템플릿을 만들고, /pr 명령어로 자동 생성하자"
# 3. Claude에게 구현 요청
> "~/.claude/commands/pr.md 파일을 만들어줘.
이 명령어는 현재 브랜치의 변경 사항을 분석하고,
PR 템플릿에 맞춰 draft PR을 생성해야 해."
# 4. 테스트 및 개선
# 5. 팀과 공유
10.3. 대화 기록 검색 (ykdojo)
$ 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
# 특정 대화 재개
$ claude --resume stripe-integration
# 대화 내용 검색 (grep 활용)
$ grep -r "Stripe" ~/.claude/conversations/
10.4. 글쓰기 도우미로 활용 (ykdojo)
> "이 API 엔드포인트들에 대한 OpenAPI 스펙을 작성해줘.
각 엔드포인트의 요청/응답 예시도 포함해줘."
> "내가 방금 구현한 인증 시스템에 대한 블로그 포스트를 작성해줘.
대상 독자는 주니어 개발자이고, 단계별로 설명해야 해."
10.5. 연구 도구로 활용 (ykdojo)
> "이 GitHub Actions 워크플로우가 실패했어.
로그를 분석하고 원인을 찾아줘."
[로그 전체 붙여넣기 - 수천 줄]
# Claude가:
# 1. 로그 파싱
# 2. 에러 메시지 식별
# 3. 관련 코드 찾기
# 4. 원인 분석: "Node.js 버전 불일치"
# 5. 해결책 제시: "package.json의 engines 필드 업데이트"
ykdojo의 실제 사례 — $10,000 절약: 어떤 서비스를 구독하려고 했는데, Claude Code로 비슷한 기능을 직접 구현할 수 있다는 것을 발견했습니다.
10.6. 출력 검증 방법 마스터 (ykdojo)
방법 1: 테스트 코드 작성
> "이 함수에 대한 테스트를 작성해줘.
엣지 케이스도 포함해야 해."
방법 4: Claude에게 자기 검증 요청
> "방금 생성한 코드를 다시 검토해줘.
모든 주장을 검증하고, 끝에 검증 결과를 표로 정리해줘."
| 주장 | 검증 방법 | 결과 |
|---|---|---|
| “이 함수는 O(n) 시간 복잡도” | 코드 분석 | ✅ 확인됨 |
| “모든 엣지 케이스 처리” | 테스트 코드 검토 | ❌ null 케이스 누락 |
10.7. DevOps 엔지니어로 활용 (ykdojo)
> /dx:gha https://github.com/user/repo/actions/runs/12345
# Claude가:
# 1. gh CLI로 워크플로우 로그 가져오기
# 2. 실패한 단계 식별
# 3. 에러 메시지 분석
# 4. 최근 커밋과 연관성 확인
# 5. Flaky test인지 판단
# 6. 수정 방법 제안
# 7. Draft PR 생성
Docker 이미지 최적화
> "이 Dockerfile을 분석하고 이미지 크기를 줄일 방법을 제안해줘"
# Claude가:
# - 멀티 스테이지 빌드 제안
# - 불필요한 패키지 제거
# - 레이어 캐싱 최적화
# - .dockerignore 파일 생성
10.8. 범용 인터페이스로 활용 (ykdojo)
비디오 편집
> "이 비디오 파일의 처음 30초를 잘라내고,
1080p로 리사이즈한 후 output.mp4로 저장해줘"
# Claude가 ffmpeg 사용하여 처리
오디오 전사
> "이 폴더의 모든 mp3 파일을 전사하고,
각각 텍스트 파일로 저장해줘"
# Claude가 Whisper 사용하여 일괄 처리
디스크 공간 정리
> "디스크 공간이 부족해. 어떤 파일들이 많은 공간을 차지하는지
분석하고 정리 방법을 제안해줘"
# Claude가:
# 1. du -sh * | sort -h 실행
# 2. 큰 파일/폴더 식별
# 3. 제안: "Final Cut Pro 캐시 파일 10GB 삭제 가능"
# 4. 제안: "Docker 이미지 5GB 정리 가능 (docker system prune)"
10.9. 테스트 많이 작성 (TDD) (ykdojo)
> "TDD 방식으로 사용자 등록 기능을 구현해줘"
# Claude가:
# 1. 실패하는 테스트 작성:
# - 유효한 입력으로 등록 성공
# - 중복 이메일 거부
# - 약한 비밀번호 거부
# 2. 테스트 실행 → 모두 실패 확인
# 3. git commit -m "Add failing tests for user registration"
# 4. 최소한의 구현 코드 작성
# 5. 테스트 실행 → 통과 확인
# 6. git commit -m "Implement user registration"
10.10. 복잡한 코드 단순화 (ykdojo)
> "이 코드가 너무 복잡해. 왜 이렇게 작성했는지 설명하고,
더 간단하게 바꿀 수 있는지 확인해줘"
# Claude가:
# 1. 각 부분의 이유 설명
# 2. 불필요한 추상화 식별
# 3. 단순화된 버전 제시
# 4. 두 버전의 장단점 비교
11.1. 계획과 빠른 프로토타이핑의 균형 (ykdojo)
> "먼저 전체 계획을 세워줘. 어떤 기술을 사용할지,
파일 구조는 어떻게 할지, 각 기능은 어디에 위치할지 결정해줘."
> "두 가지 접근 방식을 빠르게 프로토타입으로 만들어서
어느 것이 더 나은지 비교해줘"
ykdojo는 diff viewer를 만들 때 bash + tmux + lazygit 방식과 Ink + Node.js 커스텀 뷰어 방식을 모두 시도하며 계획의 중요성을 다시 깨달았습니다.
11.2. 개인화된 소프트웨어 시대 (ykdojo)
- 음성 전사 시스템: 자신의 워크플로우에 완벽히 맞춤
- Claude Code 커스터마이징: 시스템 프롬프트 패치
- Slack MCP CLI 버전: Docker-in-Docker 문제 해결을 위해 직접 제작
11.3. 사용이 최고의 학습 — 10억 토큰 규칙 (ykdojo)
— 세계적인 암벽 등반가의 조언: “암벽 등반을 잘하려면 어떻게 해야 하나요?” “암벽 등반을 하세요.”
11.4. 지식 공유 및 기여 (ykdojo)
ykdojo는 시스템 프롬프트 슬림화 팁 공유 후 --system-prompt 플래그 존재를 알게 됐고, Skills vs Slash Commands 설명을 공유한 후 Reddit 댓글에서 새로운 활용법을 배웠습니다. Anthropic에 /permissions 명령어 검색 기능, 스크롤 위치 리셋 버그 등을 기여하기도 했습니다.
11.5. 계속 학습하기 (ykdojo)
- Claude Code에게 직접 물어보기 — Claude는 자신의 기능에 대한 전문 서브에이전트를 가지고 있습니다.
- 릴리스 노트 확인:
/release-notes - 커뮤니티 학습: r/ClaudeAI 서브레딧
- Ado 팔로우: @adocomplete의 “Advent of Claude” 시리즈
12.1. Extended Thinking (Ado)
> "ultrathink: 이 아키텍처 결정의 장단점을 깊이 분석해줘"
ultrathink 키워드를 포함하면, Claude는 응답하기 전에 최대 32k 토큰을 내부 추론에 할당합니다.
MAX_THINKING_TOKENS 설정
{
"thinking": {
"maxTokens": 5000
}
}
API에서 Extended Thinking 사용
thinking: { type: "enabled", budget_tokens: 5000 }
12.2. LSP 통합 (Ado)
Language Server Protocol (LSP)는 Claude에게 IDE 수준의 코드 인텔리전스를 제공합니다.
- 즉시 진단: 각 편집 후 에러와 경고를 즉시 확인
- 코드 탐색: 정의로 이동, 참조 찾기, 호버 정보
- 언어 인식: 타입 정보 및 문서
12.3. Claude Agent SDK (Ado)
10줄로 에이전트 만들기:
import { query } from '@anthropic-ai/claude-agent-sdk';
for await (const msg of query({
prompt: "Generate markdown API docs for all public functions in src/",
options: {
allowedTools: ["Read", "Write", "Glob"],
permissionMode: "acceptEdits"
}
})) {
if (msg.type === 'result') console.log("Docs generated:", msg.result);
}
12.4. 팀 설정과 공유 워크플로우 (Ado)
.claude/team-settings.json:
{
"permissions": {
"allow": ["Read(src/)", "Write(src/)", "Bash(npm test)"]
},
"hooks": {
"PreToolUse": {
"command": "bash",
"args": ["-c", "echo 'Team hook: validating...'"]
}
},
"mcpServers": {
"company-db": {
"command": "npx",
"args": ["@company/db-mcp"]
}
}
}
팀 저장소에 .claude/ 폴더를 커밋하여 모든 팀원이 동일한 설정을 사용하도록 합니다.
13.1. 초급자를 위한 로드맵 (1-3개월)
목표: Claude Code를 기본적인 개발 워크플로우에 통합하고, AI와 협업하는 습관 들이기
| 주차 | 학습 내용 | 실습 과제 |
|---|---|---|
| 1주 | 설치 및 기본 명령어 (/usage, /clear, /stats) | 간단한 함수 작성 및 테스트 |
| 2주 | CLAUDE.md 작성법, /init 활용 | 현재 프로젝트에 CLAUDE.md 추가 |
| 3-4주 | 컨텍스트 관리 기초, 단일 목적 대화 | 3개의 독립적인 작업을 별도 세션에서 수행 |
| 5-6주 | Git 통합 (자동 커밋, PR 생성) | Draft PR 5개 이상 생성 |
| 7-8주 | 터미널 별칭 설정, 키보드 단축키 | 자신만의 별칭 3개 이상 만들기 |
| 9-12주 | 음성 코딩 시도, 커스텀 명령어 1개 만들기 | 반복 작업을 자동화하는 명령어 제작 |
13.2. 중급자를 위한 로드맵 (3-12개월)
목표: 생산성을 눈에 띄게 향상시키고, 복잡한 문제를 해결하는 데 Claude를 주도적으로 활용
| 월 | 학습 내용 | 실습 과제 |
|---|---|---|
| 3-4월 | MCP 서버 1개 이상 연동 (Playwright 또는 Supabase) | MCP를 활용한 자동화 작업 1건 |
| 5-6월 | Hooks 설정, 위험한 명령어 차단 | 팀 규칙을 강제하는 Hook 1개 작성 |
| 7-8월 | Skills 및 Slash Commands 제작 | 자주 사용하는 워크플로우를 명령어로 |
| 9-10월 | 컨테이너 워크플로우, YOLO 모드 안전 사용 | Docker 컨테이너에서 실험 프로젝트 진행 |
| 11-12월 | Subagents 활용, 병렬 작업 위임 | 복잡한 작업을 서브에이전트에게 분할 |
13.3. 고급자를 위한 로드맵 (1년 이상)
목표: Claude Code를 확장하고, 팀과 조직의 개발 문화를 선도하는 시스템 지휘자가 되기
| 분기 | 학습 내용 | 실습 과제 |
|---|---|---|
| Q1 | 시스템 프롬프트 분석 및 패치 적용 | ykdojo 패치 적용 및 효과 측정 |
| Q2 | 맞춤형 MCP 서버 개발 | 회사 내부 API를 위한 MCP 서버 제작 |
| Q3 | 멀티 에이전트 오케스트레이션 | 워커 Claude를 컨테이너에서 조율 |
| Q4 | Claude Agent SDK 활용 | CI/CD 파이프라인에 AI 에이전트 통합 |
13.4. 필독 참고 자료
공식 문서 및 가이드
커뮤니티 자료
- ykdojo의 claude-code-tips — 43가지 파워 팁, 커스텀 스크립트, dx 플러그인
- Ado의 Advent of Claude 2025 — 31일간의 팁 시리즈
- r/ClaudeAI 서브레딧
실전 사례 및 경험담
우리는 이 책을 통해 Claude Code라는 강력한 AI 에이전트와 함께 일하는 70가지가 넘는 방법을 살펴보았습니다. 해커톤 우승자 ykdojo의 생생한 경험과, Anthropic DevRel Ado Kukic의 체계적인 가이드를 통해, 여러분은 이제 에이전틱 개발자로서의 첫걸음을 뗄 준비가 되었습니다.
핵심을 되새기며
- 큰 문제를 작은 단위로 분해하라: AI는 명확한 지시를 받았을 때 가장 뛰어난 성능을 발휘합니다.
- 컨텍스트는 우유와 같다: 신선하고 압축된 상태를 유지하세요.
- 올바른 추상화 수준을 선택하라: 때로는 Vibe Coding으로, 때로는 Deep Dive로.
- 자동화의 자동화: 같은 작업을 3번 이상 반복한다면, 자동화할 방법을 찾으세요.
- 사용이 최고의 학습: 10억 토큰을 소비하며 직관을 키우세요.
우리는 코드를 ‘작성’하는 시대를 넘어, 시스템을 ‘설계’하고 AI를 ‘지휘’하는 시대로 나아가고 있습니다. 하지만 잊지 마세요. AI는 부조종사이고, 주인공은 여러분입니다. 최종 결정, 창의적인 방향, 그리고 책임은 여전히 여러분의 몫입니다.
이제 터미널을 열고, claude를 입력하고, 여러분만의 에이전틱 개발 이야기를 시작하세요.
Happy Agentic Coding! 🚀
참고 자료 (References)
- Anthropic. (2025). Claude Code: Best practices for agentic coding. link
- @affaanmustafa. (2025). The Shorthand Guide to Everything Claude Code.
- Bartlett, J. (2025). Claude Code has made me 50-100% more productive. Jacob's Tech Tavern. link
- Claude Code Docs. (2025). Installation. link
- Anthropic. (2025). Claude Code: A new way to build software. link
- Orosz, G. (2025). How Claude Code is built. The Pragmatic Engineer. link
- Lenny's Newsletter. (2025). Everyone should be using Claude Code more. link
- ykdojo. (2025). claude-code-tips: 45+ tips for getting the most out of Claude Code. GitHub. link
- Kukic, A. (2025). Advent of Claude: 31 Days of Claude Code. link
부록: 빠른 참조 가이드
필수 명령어 치트시트
| 명령어 | 설명 |
|---|---|
/init | 프로젝트 CLAUDE.md 자동 생성 |
/usage | 토큰 사용량 및 한도 확인 |
/context | 컨텍스트 윈도우 사용 현황 |
/clear | 대화 내용 지우기 |
/stats | 사용 통계 및 활동 그래프 |
/clone | 대화 복제 |
/half-clone | 대화 반복제 (컨텍스트 절반 줄이기) |
/export | 대화 내역 마크다운으로 내보내기 |
/sandbox | 권한 경계 설정 |
/mcp | MCP 서버 관리 |
/permissions | 승인된 명령어 관리 |
/vim | Vim 모드 활성화 |
/release-notes | 최신 릴리스 노트 확인 |
키보드 단축키 치트시트
| 단축키 | 기능 |
|---|---|
!command | Bash 명령어 즉시 실행 |
| Esc Esc | 대화/코드 되감기 |
| Ctrl+R | 역방향 검색 (명령어 히스토리) |
| Ctrl+S | 프롬프트 임시 저장 |
| Shift+Tab (×2) | Plan 모드 토글 |
| Alt+P / Option+P | 모델 전환 |
| Ctrl+O | Verbose 모드 토글 |
| Tab / Enter | 프롬프트 제안 수락 |
| Ctrl+B | 백그라운드로 보내기 |
| Ctrl+G | 외부 에디터로 편집 |
CLI 플래그 치트시트
| 플래그 | 설명 |
|---|---|
-p "prompt" | Headless 모드 (비대화형) |
--continue | 마지막 세션 이어가기 |
--resume | 세션 목록에서 선택 |
--resume name | 이름으로 세션 재개 |
--teleport id | 웹 세션 로컬로 가져오기 |
--chrome | Chrome 통합 모드 |
--dangerously-skip-permissions | YOLO 모드 (위험) |
이 내용은 2025년 1월 기준이며, Claude Code는 지속적으로 업데이트됩니다. 최신 정보는 공식 문서를 참조하세요.
© 2025 Manus AI. Based on works by ykdojo and Ado Kukic.