settings.json 이해하기 : 스킬 권한과 동작 설정 마스터하기
목차
스킬이 특정 명령어를 실행해야 한다면 어떻게 해야 할까요?
기본적으로 Claude Code는 안전을 위해 많은 동작에 사용자 확인을 요청합니다. 하지만 자주 쓰는 명령이라면 매번 확인하기 번거롭죠.
이 글에서는 settings.json으로 스킬의 권한과 동작을 설정하는 방법을 알아봅니다.
settings.json이란?
스킬에서 npm install을 실행하려는데 매번 허용하냐고 물어봐요.
보안을 위해 그래. 하지만 settings.json에 "이 명령은 항상 허용"이라고 설정하면 안 물어봐.
settings.json은 어디에 있어요?
두 곳에 있을 수 있어.
전역: ~/.claude/settings.json
프로젝트: .claude/settings.json
① 명령어 허용 목록 - 확인 없이 실행할 명령
② MCP 서버 설정 - 외부 도구 연결 설정
③ 기타 동작 설정 - Claude Code 동작 커스터마이징
allowedCommands 설정
가장 많이 사용하는 설정입니다. 특정 명령어를 자동 허용합니다.
위치: ~/.claude/settings.json 또는 .claude/settings.json
기본 구조
{
"permissions": {
"allowedCommands": [
"npm install",
"npm run",
"git status",
"git diff"
]
}
}
💡 자주 허용하는 명령어
npm install- 패키지 설치npm run- npm 스크립트 실행git status- Git 상태 확인git diff- 변경 내용 확인python- Python 스크립트 실행pytest- 테스트 실행
명령어 앞부분만 적으면 해당 명령으로 시작하는 모든 것이 허용됩니다. npm run을 허용하면 npm run build, npm run test 모두 OK!
전역 vs 프로젝트 설정
| 구분 | 전역 | 프로젝트 |
|---|---|---|
| 위치 | ~/.claude/settings.json |
.claude/settings.json |
| 적용 범위 | 모든 프로젝트 | 해당 프로젝트만 |
| Git 공유 | 공유 안 됨 | 팀과 공유 가능 |
| 우선순위 | 낮음 | 높음 (병합) |
전역이랑 프로젝트 둘 다 있으면 어떻게 돼요?
병합돼! 전역에서 npm을 허용하고, 프로젝트에서 docker를 허용하면 둘 다 허용되는 거야.
보안 주의사항
⚠️ 주의: 허용 목록에 추가하면 확인 없이 실행됩니다.
위험한 명령은 절대 허용하지 마세요!
❌ 허용하면 안 되는 명령어
rm -rf- 파일 삭제 (복구 불가)sudo- 관리자 권한 실행curl | bash- 외부 스크립트 실행chmod 777- 권한 변경
✅ 허용해도 안전한 명령어
npm install- 패키지 설치 (package.json 기반)git status- 읽기 전용 Git 명령ls,cat- 읽기 전용 명령npm run test- 테스트 실행
완성된 settings.json 예시
{
"permissions": {
"allowedCommands": [
"npm install",
"npm run",
"npm test",
"npx",
"git status",
"git diff",
"git log",
"python",
"pytest"
]
}
}
처음에는 최소한만 허용하고, 필요할 때마다 하나씩 추가하세요. 한꺼번에 많이 허용하면 나중에 뭘 허용했는지 헷갈립니다!
settings.json = Claude Code 동작 설정 파일
allowedCommands = 확인 없이 실행할 명령 목록
전역 설정 = 모든 프로젝트에 적용
프로젝트 설정 = 해당 프로젝트에만 적용
보안 = 위험한 명령은 허용 금지!
👉 Hooks 동작 원리 : 이벤트 기반 자동화 트리거 설정하기
적절한 설정으로 편리함과 보안을 모두 챙기세요!
settings.json을 현명하게 활용하세요! ⚙️
댓글
댓글 쓰기