https://www.builder.io/blog/claude-code-tips-best-practices
Builder.io 블로그, Vishwas Gopinath, 2026년 3월 20일
1. cc 별칭 등록
~/.zshrc에 추가:
alias cc='claude --dangerously-skip-permissions'
권한 확인 프롬프트를 모두 건너뜀. 플래그 이름이 무섭게 생긴 건 의도적임 — Claude Code가 코드베이스에 뭘 할 수 있는지 완전히 이해한 후에만 쓸 것.
2. ! 접두사로 bash 명령어 인라인 실행
!git status, !npm test 처럼 입력하면 즉시 실행되고, 결과가 컨텍스트에 포함돼서 Claude가 보고 바로 반응할 수 있음.
3. Esc / Esc+Esc 단축키
Esc → Claude 중단 (컨텍스트 유지)Esc+Esc (또는 /rewind) → 체크포인트 목록 열기. 코드·대화 각각 또는 둘 다 복원 가능. 60% 확신이 없는 시도도 부담 없이 해볼 수 있음. 단, bash 명령어(마이그레이션, DB 작업)는 체크포인트에 안 잡힘.claude --continue(최근 세션), claude --resume(세션 목록)4. Claude가 스스로 검증할 수단 주기
프롬프트에 테스트 명령어, 린터 체크, 예상 결과를 같이 넣어줄 것. 예:
auth 미들웨어를 JWT로 리팩터링해.
변경 후 기존 테스트 스위트를 실행해.
실패하면 고치고 나서 완료 처리해.
Boris Cherny에 따르면 이것만으로 품질이 2~3배 향상됨. UI 변경이라면 Playwright MCP 서버를 붙여서 실제 브라우저로 검증하게 할 것.
5. 언어별 코드 인텔리전스 플러그인 설치
LSP 플러그인은 파일 수정 후 자동으로 타입 오류, 미사용 import 등 진단 결과를 Claude에게 보여줌. 가장 임팩트 큰 플러그인.
/plugin install typescript-lsp@claude-plugins-official
/plugin install pyright-lsp@claude-plugins-official
/plugin install rust-analyzer-lsp@claude-plugins-official
/plugin install gopls-lsp@claude-plugins-official
7. 복잡한 추론엔 "ultrathink" 키워드
Opus 4.6에서 사고 수준을 높이고 적응형 추론을 활성화하는 키워드. 아키텍처 결정, 까다로운 디버깅, 다단계 추론에 사용. /effort로 영구 설정도 가능. 단순 작업에는 낭비이니 문제 복잡도에 맞게 조절할 것.
13. 버그 해석하지 말고 raw 데이터 그대로 붙여넣기
에러 로그, CI 출력, Slack 스레드를 직접 붙여넣고 "fix"라고만 해도 됨. 내 해석을 덧붙이면 오히려 Claude가 필요한 세부 정보를 잃음. 터미널에서 파이프로 넘기는 것도 됨:
cat error.log | claude "이 에러 설명하고 수정 방법 알려줘"
npm test 2>&1 | claude "실패한 테스트 고쳐줘"
10. 컨텍스트 윈도우 100만 토큰으로 확장
Sonnet 4.6, Opus 4.6 모두 1M 토큰 지원. 세션 중 /model opus[1m] 또는 /model sonnet[1m]으로 전환 가능. 품질이 걱정된다면 500k부터 시작.
12. 무관한 작업 사이엔 /clear
긴 세션을 이어가는 것보다 깔끔한 세션 + 날카로운 프롬프트가 낫다. 이전 작업의 누적 컨텍스트가 현재 지시를 묻어버림. /clear 5초가 30분짜리 삽질을 막아줌.
19. 서브에이전트로 메인 컨텍스트 깨끗하게 유지
"결제 플로우가 실패 트랜잭션을 어떻게 처리하는지 서브에이전트로 파악해줘"라고 하면 별도 Claude 인스턴스가 파일을 다 읽고 요약만 가져옴. 깊은 조사가 메인 컨텍스트의 절반을 잡아먹는 걸 방지.
21. 컴팩션 시 보존 지시
/compact focus on API 변경사항과 수정된 파일 목록처럼 보존할 내용 지정 가능. CLAUDE.md에 상시 지시로 넣어두는 것도 됨.
24. 같은 걸 2번 수정해도 안 되면 새 세션
쌓인 실패 시도들이 다음 시도를 방해함. /clear하고 지금까지 배운 걸 녹인 더 나은 프롬프트로 다시 시작할 것.
28. /init 실행 후 결과 절반 잘라내기
/init이 생성하는 CLAUDE.md는 대부분 부풀려져 있음. "이 줄이 없으면 Claude가 실수하나?" 기준으로 쳐낼 것.
29. CLAUDE.md 각 줄의 리트머스 테스트
Claude가 이미 혼자 잘 하는 건 적을 필요 없음. 불필요한 줄이 중요한 줄을 희석시킴. 지시 예산은 대략 150~200개인데 시스템 프롬프트가 이미 50개 씀.
30. Claude가 실수하면 "CLAUDE.md 업데이트해서 다음엔 이런 일 없게 해줘"
Claude가 직접 규칙을 작성하고, 다음 세션에 자동으로 따름. 실제 실수로 만들어진 살아있는 문서가 됨.
31. .claude/rules/로 조건부 규칙 관리
---
paths:
- "**/*.ts"
---
# TypeScript 규칙
interface를 type보다 선호할 것.
TS 파일 작업 시에만 로드됨. 메인 CLAUDE.md 깔끔하게 유지.
32. @imports로 CLAUDE.md 경량화
@docs/git-instructions.md, @README.md, @package.json 등 참조. 필요할 때만 읽음.
38. CLAUDE.md는 제안, 훅은 요구사항
CLAUDE.md 준수율 약 80%. 훅은 100%, 결정론적. 포매팅, 린팅, 보안 체크처럼 반드시 실행돼야 하는 건 훅으로 만들 것.
39. PostToolUse 훅으로 자동 포매팅
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
}]
}]
}
}
Claude가 파일 수정할 때마다 Prettier 자동 실행. 편집기 format-on-save는 꺼두는 걸 권장 (프롬프트 캐시 무효화 방지).
40. PreToolUse 훅으로 위험 명령어 차단
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"type": "command",
"command": "if echo \"$TOOL_INPUT\" | grep -qE 'rm -rf|drop table|truncate'; then echo 'BLOCKED: destructive command' >&2; exit 2; fi"
}]
}
}
41. 컴팩션 후 핵심 컨텍스트 재주입 훅
Notification 훅 + compact 매처로 컴팩션 발생 시 현재 작업, 수정된 파일, 제약사항을 자동 재주입. 수 시간짜리 세션에서 맥락을 잃지 않게 해줌.
48. Claude 완료 시 사운드 알림
{
"hooks": {
"Stop": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "/usr/bin/afplay /System/Library/Sounds/Glass.aiff"
}]
}]
}
}
Linux는 paplay 또는 aplay. 작업 던져놓고 다른 일 하다가 핑 소리 들으면 됨.
15. --worktree로 독립된 브랜치 병렬 실행
claude --worktree feature-auth
git worktree 설정/정리를 Claude가 처리. 3~5개 워크트리로 각각 독립 세션, 독립 브랜치. 저자는 보통 2~3개 병렬 운용.
20. 에이전트 팀으로 멀티세션 조율 (실험적)
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 환경변수 활성화 후 "3명 팀메이트로 에이전트 팀 만들어서 이 모듈들 병렬 리팩터링해줘"라고 하면 팀 리더가 작업 분배. 같은 파일 수정하는 작업은 겹치지 않게 할 것. 초보자는 리서치·리뷰 작업부터 시작 권장.
49. claude -p로 배치 작업 팬아웃
for file in $(cat files-to-migrate.txt); do
claude -p "Migrate $file from class components to hooks" \
--allowedTools "Edit,Bash(git commit *)" &
done
wait
파일 형식 변환, import 일괄 업데이트, 반복적인 마이그레이션에 유용.
11. 확신이 없을 땐 Plan Mode
멀티파일 변경, 낯선 코드, 아키텍처 결정에 사용. 업프론트 2~3분 투자로 잘못된 방향으로 20분 달리는 걸 방지. Shift+Tab으로 Normal/Auto-Accept/Plan 모드 전환.
25. @로 파일 직접 지정
@src/auth/middleware.ts에 세션 처리 로직 있어.
Claude가 grep/검색하는 토큰 비용 절감.
43. /branch로 현재 접근법 유지하면서 다른 방법 시도
/branch (또는 /fork)로 현재 대화 복사본 생성. rewind와 달리 두 경로가 모두 살아있음.
44. 스펙이 불명확할 땐 Claude가 인터뷰하게 하기
[간단한 설명]을 만들고 싶어. AskUserQuestion 툴로
기술 구현, 엣지 케이스, 우려사항, 트레이드오프를
상세히 물어봐. 뻔한 건 묻지 말고. 다 파악되면
SPEC.md에 완전한 스펙 작성해줘.
스펙 완성 후 깨끗한 세션에서 실행.
45. 한 Claude가 작성, 다른 Claude가 검토
첫 번째 Claude: 구현. 두 번째 Claude: 구현 과정을 모르는 상태에서 스태프 엔지니어처럼 리뷰. TDD에도 적용 가능 — 세션 A가 테스트 작성, 세션 B가 통과하는 코드 작성.
46. PR 리뷰는 대화형으로
원샷 리뷰보다 대화가 더 많은 문제를 잡음. "이 PR에서 가장 위험한 변경사항이 뭐야?", "이게 동시에 실행되면 뭐가 깨져?", "에러 핸들링이 코드베이스 나머지와 일관돼?"
6. gh CLI 활용
별도 MCP 서버 없이 PR, 이슈, 코멘트 처리 가능. CLI 툴이 MCP보다 컨텍스트 효율적. 낯선 CLI라면 "Use 'sentry-cli --help'로 학습하고 프로덕션 최근 에러 찾아줘"처럼 Claude가 직접 배우게 할 수 있음.
8. Skills로 온디맨드 지식 확장
.claude/skills/에 마크다운 파일로 전문 도메인 지식 저장. CLAUDE.md와 달리 관련 작업 시에만 로드. 컨텍스트 효율적.
9. 폰으로 Claude Code 원격 제어
claude remote-control 실행 후 claude.ai/code 또는 iOS/Android 앱으로 연결. 세션은 로컬에서 실행, 폰은 창구 역할만.
14. /btw로 빠른 사이드 질문
대화 히스토리에 안 들어가는 오버레이 질문. "왜 이 방식을 선택했어?", "다른 옵션의 트레이드오프는?"
16. Ctrl+S로 프롬프트 임시저장
긴 프롬프트 작성 중 빠른 질문이 필요할 때. 초안 보관하고 질문 후 자동 복원.
17. Ctrl+B로 장시간 작업 백그라운드 전환
테스트, 빌드, 마이그레이션 등을 백그라운드로 보내고 Claude는 계속 작업. 완료 시 결과 표시.
18. 라이브 상태 줄 추가
/statusline으로 현재 디렉토리, git 브랜치, 컨텍스트 사용량(색상 코드)을 터미널 하단에 표시.
22. /loop으로 반복 체크 스케줄링
/loop 5m check if the deploy succeeded and report back. 배포 모니터링, CI 파이프라인 감시에 활용. 세션 범위이며 3일 후 자동 만료.
23. 음성 받아쓰기로 더 풍부한 프롬프트
/voice 활성화 후 Space 키 누른 채 말하기. 키보드 타이핑보다 자연스럽게 더 많은 컨텍스트 포함됨. claude.ai 계정 필요 (API 키 불가).
26. 낯선 코드 탐색엔 모호한 프롬프트
"이 파일에서 뭘 개선하겠어?" — 스스로는 생각 못 했을 패턴, 불일치, 개선점을 Claude가 짚어줌. 낯선 레포 온보딩 시 유용.
27. Ctrl+G로 계획 편집
Claude가 계획 제시 시 Ctrl+G로 텍스트 에디터에서 직접 수정. 코드 한 줄 쓰기 전에 방향 조정 가능.
33. /permissions으로 안전한 명령어 화이트리스트
npm run lint에 100번째 "승인" 클릭하지 않아도 됨.
34. /sandbox로 격리 환경
OS 수준 격리. 쓰기는 프로젝트 디렉토리만, 네트워크는 승인된 도메인만. 장시간 무감독 작업(야간 마이그레이션)엔 Docker 컨테이너 권장.
35. 반복 작업용 커스텀 서브에이전트
.claude/agents/에 사전 설정된 에이전트 저장. 예: Opus + 읽기 전용 툴의 security-reviewer, 속도용 Haiku의 quick-search.
36. 스택에 맞는 MCP 서버 선택
시작하기 좋은 것들: Playwright (브라우저 테스트), PostgreSQL/MySQL (스키마 쿼리), Slack (버그 리포트 컨텍스트), Figma (디자인→코드).
37. 출력 스타일 설정
/config에서 Explanatory, Concise, Technical 선택. ~/.claude/output-styles/에 커스텀 스타일 파일 추가 가능.
42. 인증·결제·데이터 뮤테이션은 항상 수동 검토
어떤 테스트도 이 영역을 100% 커버 못 함. 반드시 직접 리뷰할 것.
47. 세션 이름·색상 코딩
/rename auth-refactor, /color red. 병렬 세션 2~3개 돌릴 때 5초 투자로 잘못된 터미널에 타이핑하는 사태 방지.
50. 스피너 동사 커스터마이징
Claude 생각 중 나오는 "Flibbertigibbeting..." 같은 문구를 원하는 걸로 교체 가능:
내 스피너 동사를 이걸로 바꿔줘:
Hallucinating responsibly, Pretending to think,
Confidently guessing, Blaming the context window
바이브만 알려줘도 됨: "해리포터 주문으로 바꿔줘" → Claude가 목록 생성.
50가지 전부 할 필요 없음. 지난 세션에서 가장 짜증났던 문제 하나를 해결하는 팁 하나부터. 실제로 쓰는 팁 하나가 북마크만 된 팁 50개보다 낫다.