집에 새로 들인 로봇 청소기를 생각해보세요. 처음에는 알아서 돌아다니지만, 아이 방에 못 들어가게 가상 벽을 설정하고, 계단 앞에는 물리적 차단기를 놓습니다. Claude Code의 안전 시스템도 이와 같습니다. 기본으로 작동하는 보호막이 있고, 여러분이 원하는 구역에 추가 벽을 세울 수 있습니다.
Claude Code의 기본 안전장치
Claude Code는 아무 설정 없이도 위험할 수 있는 작업 앞에서 자동으로 멈춥니다. 파일을 수정하려고 하면 "이렇게 바꿔도 될까요?"라고 물어보고, 터미널 명령어를 실행하려고 하면 "이 명령어를 실행할까요?"라고 확인합니다.
스마트폰에서 앱이 "위치 정보에 접근해도 되겠습니까?"라고 묻는 것과 같은 원리예요. 여러분이 "허용"을 누르기 전까지는 아무 일도 일어나지 않습니다.
기본으로 보호되는 것들:
파일 수정/생성 — 실행 전 변경 내용을 보여주고 승인을 기다림
Bash 명령어 실행 — 어떤 명령을 실행할지 보여주고 허락을 구함
외부 도구 호출 — MCP 서버 등 외부 연결 시 확인 요청
그런데 매번 "허용하시겠습니까?"에 일일이 답하다 보면 지칠 수 있습니다. 반대로, 특정 위험한 명령은 물어보지도 말고 아예 차단하고 싶을 수도 있고요. 이걸 해결하는 게 바로 권한 설정입니다.
권한 규칙 직접 설정하기
Claude Code의 권한 시스템은 세 단계로 나뉩니다. "항상 허용", "매번 물어보기", "절대 차단" — 이 세 가지를 조합해서 여러분만의 규칙을 만들 수 있습니다.
| 권한 수준 | 설정값 | 비유 |
|---|---|---|
| 항상 허용 | allow |
가족 — 현관 비밀번호 알려줌 |
| 매번 물어보기 | ask (기본값) |
택배기사 — 초인종 누르고 확인 |
| 절대 차단 | deny |
출입 금지 — 문 자체가 잠김 |
중요한 규칙이 하나 있습니다. deny는 항상 이깁니다. allow와 deny에 같은 항목이 있으면 deny가 우선 적용됩니다. 차단이 허용보다 강하다는 뜻이에요.
설정하는 두 가지 방법
방법 1: 명령어로 간편하게
Claude Code 안에서 /permissions를 입력하면 현재 권한 규칙을 확인하고 수정할 수 있습니다.
방법 2: 설정 파일 직접 편집
더 세밀한 제어를 원하면 설정 파일을 직접 수정합니다. 설정 파일은 두 곳에 있습니다.
| 파일 위치 | 적용 범위 |
|---|---|
~/.claude/settings.json |
내 컴퓨터 전체 (모든 프로젝트) |
.claude/settings.json |
현재 프로젝트만 |
아래는 실제 설정 파일 예시입니다. permissions 키 안에 allow, deny 규칙을 적습니다.
이 설정의 의미를 풀어보면 이렇습니다.
- allow: 파일 읽기(Read), 파일 검색(Glob, Grep)은 물어보지 말고 바로 실행해도 됩니다.
- deny:
rm -rf *(전체 삭제)와sudo(관리자 권한 명령)는 절대 실행하지 마세요.
Hooks로 감시 카메라 달기
권한 설정이 "출입증"이라면, Hooks는 "감시 카메라"입니다. Claude Code가 특정 도구를 사용하기 전이나 후에 여러분이 정한 동작을 자동으로 실행하는 시스템입니다.
비유를 들면 이렇습니다. 회사에서 누군가 서버실 문을 열 때마다 자동으로 기록이 남고, 보안팀에게 알림이 가는 것처럼요. Hooks는 Claude Code의 모든 동작에 이런 감시와 자동 반응을 붙일 수 있게 해줍니다.
Hooks의 핵심 개념
| 개념 | 설명 | 비유 |
|---|---|---|
| Hook 이벤트 | 언제 실행할지 | "문이 열릴 때" |
| Matcher | 어떤 도구를 감시할지 | "서버실 문만" |
| Hook 동작 | 무엇을 실행할지 | "기록 남기기" |
사용할 수 있는 주요 Hook 이벤트는 이렇습니다.
| 이벤트 | 발동 시점 |
|---|---|
PreToolUse |
도구 실행 직전 (가장 많이 쓰임) |
PostToolUse |
도구 실행 직후 |
SessionStart |
세션이 시작될 때 |
SessionEnd |
세션이 끝날 때 |
Notification |
알림이 발생할 때 |
Stop |
Claude가 응답을 마칠 때 |
Hook의 동작 유형은 네 가지가 있지만, 처음에는 두 가지만 알면 충분합니다.
- command: 셸 명령어를 실행합니다 (로그 기록, 파일 백업 등) — 가장 많이 쓰임
- http: 웹훅(webhook)을 보냅니다 (Slack 알림, 외부 서비스 연동 등)
- prompt: AI에게 간단한 질문을 던져서 판단하게 합니다
- agent: AI 서브에이전트를 실행합니다 (고급 기능)
Hooks 설정 방법
Hooks도 같은 설정 파일(~/.claude/settings.json 또는 .claude/settings.json)에 작성합니다. 현재 설정된 Hooks를 확인하려면 Claude Code 안에서 /hooks를 입력하세요.
아래는 "Bash 명령어가 실행되기 직전에 알림 메시지를 출력하는" Hook 설정 예시입니다.
이 설정을 풀어보면 이렇습니다.
- PreToolUse: 도구가 실행되기 직전에
- matcher: "Bash": Bash(터미널 명령) 도구가 호출될 때만
- type: "command": 셸 명령어를 실행해라
- command: "Bash command about to run"이라는 메시지를 출력해라
Hooks가 유용한 상황 예시:
파일 수정 전에 자동으로 백업 만들기
Bash 명령 실행 기록을 로그 파일에 남기기
세션 시작할 때 프로젝트 상태 자동 체크
작업 완료 후 Slack이나 메신저로 알림 보내기
실전 예시 — 이런 규칙을 추천합니다
처음에 뭘 설정해야 할지 모르겠다면, 아래 조합을 참고하세요. 초보자에게 적합한 안전 설정입니다.
기본 권한 설정 (추천)
이 설정이 하는 일
- 파일 읽기, 검색은 매번 안 물어봐도 됨 (작업 속도 향상)
- 전체 삭제(
rm -rf *)와 관리자 권한(sudo) 명령은 완전 차단 - 그 외 파일 수정, 다른 명령어는 매번 확인 (기본값 유지)
Hooks와 함께 쓰기 (중급)
권한 설정과 Hooks를 함께 하나의 설정 파일에 넣을 수 있습니다.
이렇게 하면 위험한 명령은 차단하고, Bash 명령이 실행될 때마다 알림이 뜨는 이중 안전 구조가 만들어집니다.
실수로 위험한 명령 "허용" 클릭 가능
어떤 명령이 실행됐는지 기록 없음
위험한 명령은 아예 차단 → 실수 방지
Bash 실행 시 알림 → 투명한 작업 기록
자주 묻는 질문 (FAQ)
Q. 설정을 잘못해서 Claude Code가 아무것도 못하게 되면 어쩌나요?
설정 파일(~/.claude/settings.json)을 텍스트 편집기로 열어서 deny 항목을 수정하면 됩니다. 최악의 경우 해당 파일을 삭제하면 기본값으로 돌아갑니다. Claude Code 자체가 망가지는 건 아니니 걱정 마세요.
Q. 프로젝트마다 다른 권한을 설정할 수 있나요?
네. ~/.claude/settings.json은 모든 프로젝트에 적용되는 전역 설정이고, 프로젝트 폴더 안의 .claude/settings.json은 해당 프로젝트에만 적용됩니다. 프로젝트별로 다른 규칙을 만들 수 있습니다.
Q. Hooks가 실패하면 Claude Code가 멈추나요?
Hook의 command가 에러를 내더라도 Claude Code 자체가 멈추지는 않습니다. 다만 PreToolUse Hook이 에러를 반환하면 해당 도구 실행이 차단될 수 있으므로, Hook을 설정한 뒤에 한 번 테스트해보는 게 좋습니다.
Q. 4편에서 배운 "AI한테 일 시키기 전 알아야 할 것"과 뭐가 다른가요?
4편은 "AI한테 어떻게 말해야 하는지" 사람 쪽의 습관이었고, 이번 편은 "AI가 물리적으로 못하게 막는" 시스템 쪽의 장치입니다. 사람의 주의력 + 시스템의 차단 — 둘 다 있어야 안전합니다.
정리하며
오늘 배운 내용을 한 줄로 요약하면 이렇습니다.
| 안전장치 | 역할 | 비유 |
|---|---|---|
| 기본 권한 확인 | 위험 작업 전 자동으로 물어봄 | 초인종 |
| Permissions | allow / deny로 규칙 설정 | 출입증 시스템 |
| Hooks | 도구 사용 전후에 자동 동작 실행 | 감시 카메라 |
관점 한 스푼: AI 도구를 처음 쓸 때 가장 큰 두려움은 "내가 모르는 사이에 뭔가 잘못되면 어쩌지?"입니다. 저도 처음 Claude Code를 쓸 때 파일 수정 권한을 허용하는 게 솔직히 무서웠습니다. 그런데 오늘 다룬 것처럼 deny로 위험한 건 아예 막아놓고, Hooks로 기록을 남겨두면 두려움이 확실히 줄어듭니다. 안전장치는 불안할 때 설정하는 게 아니라, 안심하고 더 과감하게 AI를 활용하기 위해 설정하는 겁니다. 잠금장치가 튼튼한 집일수록 편히 잠들 수 있는 것처럼요.
시리즈 전체 목차
클로드 코드 왕초보 가이드 — 전체 시리즈
- 1편 — 클로드 코드가 뭔가요?
- 2편 — 요금제 비교 (Pro vs Max)
- 3편 — 설치부터 실행까지 10분 컷
- 4편 — AI한테 일 시키기 전에 알아야 할 5가지
- 5편 — 첫 번째 일 시키기 5분 실습
- 6편 — 슬래시 명령어 모음
- 7편 — CLAUDE.md로 나만의 규칙 만들기
- 8편 — AI가 까먹을 때 대화 이어가기
- 9편 — 에러 나왔어요, 당황하지 마세요
- 10편 — AI 비용 아끼는 7가지 습관
- 11편 — Git으로 작업 안전하게 저장하기
- 12편 — 말로 앱 만드는 시대, 바이브코딩이란?
- 13편 — 나만의 AI 사무실 꾸미기
- 14편 — AI한테 능력 추가하기, 플러그인 설치법
- 15편 — AI한테 내 캘린더·파일을 연결하는 법 (준비 중)
- 16편 — AI가 위험한 일 못하게 막는 법 (현재 글)
- 17편 — 자주 하는 일을 한마디로 끝내기 (다음 편)
다음 편에서는 자주 하는 일을 한마디로 끝내는 법을 다룹니다
17편 보러 가기 →
참고 자료
· Anthropic Claude Code 공식 문서 — docs.anthropic.com
댓글
댓글 쓰기