Claude Code를 쓰다 보면 두 가지 극단 사이에서 고민하게 됩니다. "매번 허락 받는 게 너무 느려" vs "그냥 다 실행했다가 망하면 어떡해". Anthropic은 이 문제를 해결하기 위해 세 가지 Permission Mode를 제공합니다. 이 글에서는 각 모드의 특징과 언제 어떤 모드를 써야 하는지 정리합니다.
TL;DR
- Shift+Tab으로 세 가지 모드를 순환할 수 있습니다
- Plan Mode: 읽기 전용, 계획만 세움 → 복잡한 작업에 최적
- Auto-Accept Mode: 자동 승인 → 신뢰할 수 있는 반복 작업에 최적
- YOLO Mode (--dangerously-skip-permissions): 완전 자율 → 컨테이너 환경에서만 사용
- 복잡한 작업은 Plan Mode로 시작하고, 계획 확정 후 실행하세요
세 가지 Permission Mode
Claude Code는 Shift+Tab을 누를 때마다 다음 모드로 순환합니다:
Normal Mode → Auto-Accept Mode → Plan Mode → Normal Mode → ...
"Pressing shift+tab cycles through Claude Code's permission modes: normal-mode, auto-accept edit on, and plan mode on." — ClaudeLog: Auto-Accept Permissions
모드 표시 특징
| Normal Mode | (기본) | 모든 작업에 승인 필요 |
| Auto-Accept Mode | ⏵⏵ accept edits on | 파일 수정, 명령 실행 자동 승인 |
| Plan Mode | ⏸ plan mode on | 읽기 전용, 계획만 세움 |
Plan Mode: 생각 먼저, 실행은 나중에
공식 정의
"Plan Mode instructs Claude to create a plan by analyzing the codebase with read-only operations, perfect for exploring codebases, planning complex changes, or reviewing code safely." — Anthropic Docs: Common Workflows
작동 방식
Plan Mode에서 Claude가 사용할 수 있는 도구:
허용됨 (읽기 전용) 차단됨 (수정)
| Read, LS, Glob, Grep | Edit, MultiEdit |
| WebSearch, WebFetch | Bash (수정 명령) |
| Task (리서치 에이전트) | Write |
| NotebookRead | - |
실제 사용법
# 방법 1: 세션 중 활성화
Shift+Tab 두 번 누르기
# 방법 2: 시작할 때 활성화
claude --permission-mode plan
# 방법 3: 헤드리스 쿼리
claude -p "인증 시스템 리팩토링 계획 세워줘" --permission-mode plan
왜 게임체인저인가?
일반 모드:
"이커머스 사이트 만들어줘"
→ Claude가 바로 코드 작성 시작
→ 방향이 틀려도 끝까지 감
→ 롤백하고 처음부터 다시
Plan Mode:
"이커머스 사이트 만들어줘"
→ Claude가 전체 계획 제시
→ 각 단계 검토 및 수정
→ 승인 후 실행
→ 방향 수정이 쉬움
"Plan Mode forces Claude to generate a full step-by-step plan before touching any code." — Towards Dev: Mastering Plan Mode
언제 사용하나?
- 다중 파일 수정: 여러 파일에 걸친 기능 구현
- 코드베이스 탐색: 새로운 프로젝트 파악
- 아키텍처 결정: 큰 방향성 논의
- 위험한 리팩토링: 실수하면 안 되는 작업
Auto-Accept Mode: 빠른 실행
공식 정의
"Auto-accept mode eliminates permission prompts for configured tools, enabling uninterrupted execution." — Claude Fast: Permission Management
작동 방식
Shift+Tab 한 번 누르면 활성화됩니다. 화면 하단에 ⏵⏵ accept edits on이 표시됩니다.
이 모드에서는:
- 파일 수정 자동 승인
- 허용된 Bash 명령 자동 실행
- 허용 목록은 settings.json에서 설정 가능
언제 사용하나?
- 테스트 실행: npm test, pytest 등
- 린트 수정: 대량의 린트 오류 수정
- 보일러플레이트 생성: 반복적인 코드 생성
- Plan Mode 이후 실행 단계
주의사항
⚠️ Auto-Accept ≠ YOLO Mode
Auto-Accept는 허용 목록에 있는 도구만 자동 승인합니다.
위험한 명령(rm -rf, curl 등)은 여전히 승인이 필요합니다.
YOLO Mode: 완전한 자율 (위험)
공식 정의
"Instead of supervising Claude, you can use claude --dangerously-skip-permissions to bypass all permission checks and let Claude work uninterrupted until completion." — Anthropic Engineering Blog: Best Practices
작동 방식
claude --dangerously-skip-permissions
이 플래그는 모든 권한 체크를 우회합니다:
- 파일 읽기/쓰기/삭제
- 모든 Bash 명령 실행
- 네트워크 요청
- 시스템 프로세스 제어
공식 경고
"Letting Claude run arbitrary commands is risky and can result in data loss, system corruption, or even data exfiltration (for example via prompt injection attacks)." — Anthropic Engineering Blog
안전하게 사용하는 방법
Anthropic이 권장하는 YOLO Mode 사용 조건:
- 컨테이너/VM 환경: Docker, 가상머신 내에서만 실행
- 인터넷 차단: 데이터 유출 방지
- Git 백업: 언제든 git reset --hard로 복구 가능
- 명확한 범위: "코드베이스 전체 개선" ❌ → "이 모듈 리팩토링" ✅
# 권장 사용 예시
docker run -it --rm \
-v $(PWD):/workspace \
claude-sandbox \
claude --dangerously-skip-permissions
언제 사용하나?
- 대량 린트 수정: 수백 개의 lint 오류 일괄 수정
- 보일러플레이트 생성: 프로젝트 초기 세팅
- CI/CD 파이프라인: 자동화된 환경
- 테스트 주도 개발: 실패하는 테스트 → 통과할 때까지 반복
"This works well for workflows like fixing lint errors or generating boilerplate code." — Anthropic Engineering Blog
세 모드 비교
측면 Normal Auto-Accept Plan Mode YOLO
| 속도 | 느림 | 빠름 | 중간 | 매우 빠름 |
| 안전성 | 높음 | 중간 | 매우 높음 | 낮음 |
| 제어력 | 높음 | 중간 | 높음 | 없음 |
| 활성화 | 기본 | Shift+Tab×1 | Shift+Tab×2 | CLI 플래그 |
| 용도 | 일반 작업 | 반복 작업 | 복잡한 계획 | 자동화 |
실전 워크플로우: Plan → Execute 패턴
복잡한 기능을 구현할 때 가장 효과적인 패턴입니다:
1단계: Plan Mode로 계획
[Shift+Tab 두 번 → Plan Mode 활성화]
You: 결제 시스템을 Stripe에서 Toss Payments로 마이그레이션해줘
Claude: 마이그레이션 계획을 세우겠습니다.
## 1단계: 현재 구조 분석
- src/payment/stripe.ts 분석
- API 호출 패턴 파악
- 테스트 커버리지 확인
## 2단계: Toss Payments SDK 설정
- 패키지 설치
- 환경 변수 설정
- 타입 정의
## 3단계: 결제 로직 교체
...
이 계획으로 진행할까요?
2단계: 계획 검토 및 수정
You: 2단계에서 타입 정의는 별도 파일로 분리해줘.
그리고 기존 Stripe 코드는 삭제하지 말고 deprecated 처리해줘.
Claude: 계획을 수정했습니다.
...
3단계: 승인 후 실행
You: 좋아, 진행해줘
[Plan Mode 종료 → 실행 시작]
"The structured plan explains the approach, technical decisions, and potential challenges in writing, which is valuable documentation." — Claude AI: Plan Mode Guide
모드 선택 가이드
작업이 복잡하고 여러 파일에 걸쳐 있나요?
├─ Yes → Plan Mode로 시작
│ └─ 계획 확정 후 → Auto-Accept로 실행
│
└─ No → 작업이 반복적이고 안전한가요?
├─ Yes → Auto-Accept Mode
│
└─ No → 작업이 완전히 격리된 환경인가요?
├─ Yes → YOLO Mode (Docker 내에서)
│
└─ No → Normal Mode
체크리스트
Plan Mode 사용 전
- [ ] 작업 범위가 여러 파일에 걸쳐 있는가?
- [ ] 아키텍처 결정이 필요한가?
- [ ] 실수하면 롤백이 어려운 작업인가?
Auto-Accept 사용 전
- [ ] 허용 목록(settings.json)을 확인했는가?
- [ ] Git 상태가 clean인가?
- [ ] 작업 범위가 명확한가?
YOLO Mode 사용 전
- [ ] 컨테이너/VM 환경인가?
- [ ] 인터넷이 차단되어 있는가?
- [ ] Git으로 현재 상태를 백업했는가?
- [ ] 작업 범위가 명확하고 제한적인가?
마무리
Permission Mode는 "안전 vs 속도"의 트레이드오프를 당신이 제어할 수 있게 해줍니다.
- Plan Mode는 "생각 먼저, 실행 나중에" 원칙을 강제합니다
- Auto-Accept는 신뢰할 수 있는 반복 작업을 가속화합니다
- YOLO Mode는 완전한 자동화를 제공하지만, 격리 환경에서만 사용하세요
복잡한 작업일수록 Plan Mode로 시작하세요. 계획을 세우는 데 드는 시간이 잘못된 방향으로 가서 롤백하는 시간보다 훨씬 짧습니다.
참고 자료
Anthropic 공식
- Claude Code Best Practices — Anthropic Engineering Blog
- Common Workflows (Plan Mode) — Anthropic Docs
커뮤니티
- Auto-Accept Permissions — ClaudeLog
- Dangerous Skip Permissions — ClaudeLog
- Plan Mode in Claude Code — Claude AI Blog
- Permission Management — Claude Fast
'Programmer > AI' 카테고리의 다른 글
| Claude Code 환경 설정: CLAUDE.md로 10분 투자해서 수 시간 절약하기 (0) | 2026.01.21 |
|---|---|
| Claude Code 컨텍스트 관리: 채워질수록 썩는 작업 기억 (1) | 2026.01.20 |
| Claude Code는 시니어가 아니라 "똑똑한 주니어"다 (0) | 2026.01.20 |
| Claude Code가 느려졌다면? MCP 도구 관리가 답이다 (2) | 2026.01.20 |
| Auto-Claude macOS 설치 트러블슈팅 가이드 (0) | 2026.01.02 |
