"Approve" 클릭은 이제 그만: Claude Code CLI 권한을 사용자 정의하는 방법
Claude Code로 첫 작업을 수행할 때, 작업 내용을 검토하는 시간보다 "Approve"를 클릭하는 데 더 많은 시간을 썼습니다.
모든 파일 읽기, 모든 git status, 모든 명령어까지.
작업이 끝날 때쯤 저는 40개의 프롬프트를 클릭했습니다. 시작할 때보다 변경 사항에 대한 신뢰도가 오히려 떨어졌습니다. 권한 시스템이 저로 하여금 내용을 읽지도 않고 모든 것에 무조건 승인(rubber-stamp)하도록 길들여 버린 것입니다.
중요한 사항에 대해서만 승인할 수 있도록 권한을 설정해야 합니다.
Claude Code는 단순한 채팅창이 아닙니다. 파일을 읽고, 쓰고, 셸 명령어를 실행합니다. 모든 것을 무조건 승인하는 방식은 위험합니다.
모드(Modes)는 특정 규칙이 없을 때 Claude가 어떻게 행동할지를 정의합니다.
• default: 새로운 프로젝트에 안전합니다. 읽기: 자동. 수정: 확인 요청. Bash: 확인 요청. • plan: 코드 리뷰에 가장 적합합니다. 읽기: 자동. 수정: 차단됨. Bash: 차단됨. • acceptEdits: 활발한 코딩 작업에 가장 적합합니다. 읽기: 자동. 수정: 자동. Bash: 확인 요청. • bypassPermissions: CI/CD에 가장 적합합니다. 읽기: 자동. 수정: 자동. Bash: 자동.
/permissions 명령어를 사용하여 모드를 전환할 수 있습니다.
설정은 계층 구조를 따릅니다. 범위(scope)가 더 넓은 설정이 항상 우선합니다.
- 기업 정책 (Enterprise policy)
- 사용자 설정 (~/.claude/settings.json)
- 프로젝트 설정 (.claude/settings.json)
- 프로젝트 로컬 설정 (.claude/settings.local.json)
규칙은 allow, deny, ask라는 간단한 형식을 사용합니다.
중요: 평가 순서는 deny, 그 다음 ask, 마지막으로 allow입니다. deny가 항상 우선합니다.
도구를 완전히 비활성화하려면 도구의 이름만 사용하세요. 도구의 범위를 제한하려면 glob 패턴을 사용한 스코프 규칙(scoped rule)을 사용하세요.
활발한 개발을 위한 예시:
- Allow: Bash(npm run *), Bash(git status)
- Deny: Bash(rm -rf *), Bash(curl *)
- Ask: Bash(git push *)
민감한 데이터를 보호할 수도 있습니다. .env와 같은 파일에 deny 규칙을 사용하여 Claude가 사용자의 자격 증명(credentials)을 절대 읽지 못하도록 하세요.
워크플로우를 위한 프로 팁:
- CLI에서
/permissions를 사용하여 대화형 UI를 여세요. - 두 번 이상 승인하게 되는 작업에 대해서는 규칙을 추가하세요.
- 파일을 변경하지 않고 단일 세션에 대해서만 규칙을 설정하려면
--permission-mode와 같은 플래그를 사용하세요. - CI/CD에서는 엄격한
deny규칙과 함께bypassPermissions를 사용하여 환경을 안전하게 유지하세요.
무조건적인 승인은 그만하세요. 설정을 시작하세요.
출처: https://dev.to/kapoormanish/stop-clicking-approve-how-to-customize-claude-code-cli-permissions-pnh
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi
