개발 흐름은 내가 설계한다
이전 글에서 특정 도구나 명령어에 대한 개별 권한 규칙을 살펴봤다면, 이번엔 한 단계 위의 개념이다
권한 모드는 Claude Code가 기본적으로 어떻게 행동할지를 결정하는 모드다. 개별 규칙이 “이 명령어는 허용한다”라면, 권한 모드는 “Claude Code가 전반적으로 어떤 방식으로 일할지”를 설정하는 것이다.
4가지 권한 모드
Default
기본 모드다. 각 도구를 처음 사용할 때 권한을 요청한다. 새 프로젝트를 시작하거나 민감한 작업을 할 때 적합하다
acceptEdits
파일 편집과 생성에 대한 권한을 자동으로 수락한다. Bash 명령 실행 등 다른 작업은 여전히 묻는다. 여러 파일을 수정하는 개발 작업에서 매번 승인하는 번거로움을 없애준다
Plan
쓰기 작업을 하지 않고 분석과 계획만 수행한다. Claude Code가 실제로 파일을 건드리지 않기 때문에, 구현 전에 방향을 검토하고 싶을 때 사용한다. 자주 쓰이는 모드 중 하나이다
bypassPermissions
모든 권한 확인을 건너뛰고 묻지 않고 실행한다. 완전히 통제된 안전한 환경에서만 사용하는 것을 권장한다
모든 전환 방법
Shift + Tab을 누를 때마다 모드가 순환된다. 순환 순서는 default → acceptEdits → plan 이다
default

acceptEdits

plan

Plan 모드가 중요한 이유
Plan 모드는 단순히 “실행 전에 미리 보기”가 아니다
Claude Code는 요청을 받으면 프로젝트 전체를 분석하고 자율적으로 작업한다. 방향이 잘못되면 수십 개의 파일이 이미 수정된 상태에서 되돌아가야 한다. 롤백 비용이 크다
Plan 모드는 이 문제를 막는다. Claude Code가 파일을 직접 건드리지 않고 분석과 계획만 출력하기 때문에, 구현 전에 방향을 확인하고 수정할 수 있다
실제 워크플로우는 이렇다
Plan 모드로 계획 요청 → 계획 검토 → 마음에 들지 않으면 피드백 추가 후 재계획 → 계획이 확정되면 acceptEdits 모드로 전환 후 실행
계획 단계에서 맥락이 부족하거나 요청이 모호하면 결과가 기대와 다를 수 있다. 그래서 계획을 여러 번 반복하면서 방향을 좁혀가는 것이 중요하다. Plan 모드를 자주 쓰는 이유가 바로 이것이다
계획 후 실행 옵션
Plan 모드로 계획이 완료되면 4가지 선택지가 나타난다 (2026년 4월 기준)
1. Yes, auto-accept edits 2. Yes, manually approve edits 3. No, refine with Ultraplan on Claude Code on the web 4. Tell Claude what to change
계획이 마음에 들면 1번, 신중하게 확인하면서 진행하고 싶으면 2번, 수정이 필요하면 4번을 선택하면 된다. 3번은 터미널에서 세운 계획을 웹 Claude Code로 가져가서 더 세밀하게 다듬고 싶을 때 사용하는 옵션이지만 3번은 거의 쓸 일이 없다. 터미널에서 4번으로 피드백을 주는 것만으로도 계획을 충분히 수정할 수 있기 때문이다.
작업 규모도 나눠야 한다
Plan 모드를 쓴다고 해서 큰 작업을 한 번에 요청해도 된다는 뜻은 아니다
계획 자체가 너무 큰 단위면 구현 결과도 예측하기 어렵다. 큰 작업을 작은 단위로 쪼개고, 각 단계마다 Plan → 검토 → 실행 사이클을 반복하는 것이 실제로 더 안정적인 개발 흐름이다
정리
권한 모드는 Claude Code가 얼마나 자율적으로, 얼마나 신중하게 행동할지를 내가 결정하는 설정이다
개발 흐름에 맞게 모드를 선택하는 것이 핵심이다. 새 작업을 시작할 때는 Plan 모드로 계획을 검토하고, 계획이 확정되면 acceptEdits로 전환해 실행한다. 그리고 큰 작업은 작은 단위로 나눠서 각 단계를 확인하면서 진행한다
Claude Code가 자율적으로 많은 일을 할 수 있는 만큼, 그 자율성을 어떻게 통제할지 아는 것이 함께 중요하다