ClaudeClaude Code 운영

settings와 permissions

Claude Code의 user/project/local settings 계층과 `permissions.deny` 같은 보호 설정을 어떻게 읽어야 하는지 정리합니다.

마지막 수정 2026년 3월 25일

기본 패턴

json
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)"
    ]
  }
}

설명

  • Claude Code 설정은 한 파일에만 있는 것이 아니라 user, project, local 계층으로 나뉩니다. 공식 docs는 ~/.claude/settings.json, .claude/settings.json, .claude/settings.local.json이 서로 다른 범위와 우선순위를 가진다고 설명합니다.
  • 이 구조를 이해하면 "개인 취향", "팀 공통 규칙", "로컬 실험 설정"을 분리할 수 있습니다. 즉 테마나 개인 알림은 user, 팀이 공유할 규칙은 project, 커밋하고 싶지 않은 실험은 local에 두는 식이 자연스럽습니다.
  • permissions.deny는 특히 중요합니다. .env, secrets, credential 파일처럼 민감한 내용을 Claude Code가 아예 보지 못하게 막는 구조라서, 단순 요청 규칙보다 훨씬 강한 보호 장치가 됩니다.
  • 또 설정은 interactive session의 /config와 CLI claude config ... 명령으로도 다룰 수 있습니다. 그래서 설정 문제를 "문서만 읽고 손으로 고치는 작업"으로 보지 않고, 세션 운영의 일부로 보는 편이 좋습니다.
  • 결국 settings 카드는 편의성 카드이면서 동시에 안전성 카드입니다. Claude Code를 오래 쓸수록 output 품질보다 permissions와 scope 관리가 더 중요해지는 경우가 많기 때문입니다.

빠른 정리

위치의미
~/.claude/settings.json모든 프로젝트에 적용되는 user 설정
.claude/settings.json팀과 공유할 project 설정
.claude/settings.local.json개인 실험용 local 설정
permissions.deny민감 파일 접근 차단
/config세션 안에서 설정 조회와 수정

주의할 점

Claude Code를 오래 쓰면 프롬프트보다 설정이 더 큰 영향을 줄 때가 많습니다. 민감한 파일을 "읽지 말라"고 프롬프트에만 적는 것보다, permissions.deny로 구조적으로 막는 편이 훨씬 안전합니다.

참고 링크

1 sources