승인 모드와 안전장치
AI가 파일을 지우거나 명령을 실행하기 전에 어디까지 허락할지 정하는 법
AI 도구가 할 수 있는 위험한 일
터미널형 AI 도구는 파일을 만들고 고치는 것 외에도 명령을 실행합니다. npm install, git commit, 그리고 원하지 않는다면 rm -rf도. 그래서 도구마다 "무엇을 물어보고 할지"를 정하는 승인 모드가 있습니다.
일반적으로 세 단계입니다.
| 모드 | 동작 | 언제 |
|---|---|---|
| 매번 승인 | 파일 수정과 명령 실행마다 물어봄 | 처음 2주 |
| 파일은 자동, 명령은 승인 | 파일 수정은 알아서, 명령 실행만 물어봄 | Git에 익숙해진 뒤 |
| 전부 자동 | 아무것도 안 물어봄 | 일회용 실험, 격리된 환경 |
추천 설정
- 1~10강: 매번 승인. 도구가 무엇을 하는지 배우는 기간입니다. 승인 창에 뜨는 변경 내용을 읽는 습관이 여기서 생깁니다.
- 11강 이후: 파일 자동 + 명령 승인. 이미 Git으로 되돌릴 수 있으니 파일 수정은 믿고 맡깁니다. 하지만
npm install이나git push같은 명령은 계속 확인합니다. - 전부 자동은 되도록 쓰지 않기: 쓴다면 반드시 커밋을 먼저 하고, 작업이 끝나면
git diff로 전체를 훑어봅니다.
허용 목록으로 귀찮음 줄이기
매번 승인 모드에서도 "이 명령은 항상 허용"을 등록할 수 있습니다. 안전한 읽기 명령부터 등록하세요.
- 항상 허용해도 되는 것:
npm run dev,npm run build,npm run lint,git status,git diff,git log,ls,cat - 매번 확인할 것:
npm install,git push,git reset,rm, 환경변수 파일을 건드리는 모든 것
도구의 설정 파일(프로젝트 폴더의 .claude/settings.json 같은 곳)에 목록으로 적거나, 승인 창에서 "항상 허용"을 고르면 됩니다.
규칙 파일로 한 번 더 막기
승인 모드와 별개로, 9강의 CLAUDE.md에 하지 말 것을 적어두면 AI가 애초에 시도하지 않습니다.
## 하지 말 것
- .env, .env.local 파일을 읽거나 내용을 출력하지 않는다
- git push, git reset --hard, rm -rf 는 내가 직접 한다
- 데이터베이스의 실제 데이터를 삭제하는 코드를 실행하지 않는다
- 테스트 목적이라도 외부 API를 반복 호출하지 않는다 (비용)
그래도 사고가 났다면
- 파일이 망가짐 →
git checkout .(마지막 커밋으로) 또는git stash - 커밋까지 됨 →
git log --oneline으로 확인 후git revert <해시> - push까지 됨 → 당황하지 말고 revert 후 다시 push. 힘든 건 강제 push뿐입니다.
- .env가 커밋됨 → 키를 즉시 재발급하세요. 되돌려도 기록에 남습니다.