# 설정 파일 (settings.json) > 사용자, 프로젝트, Managed 레벨의 JSON 설정 파일로 Claude Code 동작 설정. Claude Code는 여러 범위의 JSON 파일에서 설정을 읽습니다. 낮은 우선순위에서 높은 우선순위 순으로 병합됩니다. ## 설정 파일 위치 **전역(사용자):** `~/.claude/settings.json` 모든 프로젝트에 걸쳐 실행하는 모든 Claude Code 세션에 적용됩니다. 선호 모델, 테마, 정리 정책 같은 개인 설정을 여기에 설정합니다. **프로젝트(공유):** `.claude/settings.json` (프로젝트 루트) 소스 컨트롤에 체크인됩니다. 프로젝트 작업자 모두에게 적용되어야 하는 설정 — 권한 규칙, 훅 설정, MCP 서버, 환경 변수. **로컬(개인 프로젝트):** `.claude/settings.local.json` (프로젝트 루트) 소스 컨트롤에 체크인되지 않습니다(자동으로 `.gitignore`에 추가됨). 특정 프로젝트 내의 개인 재정의. **Managed(엔터프라이즈):** 플랫폼별 시스템 경로 MDM, 레지스트리(Windows), plist(macOS), 또는 Managed 설정 파일을 통해 관리자가 설정합니다. Managed 설정은 최고 우선순위를 가지며 사용자나 프로젝트가 재정의할 수 없습니다. ## 설정 우선순위 ``` 플러그인 기본값 → 사용자 설정 → 프로젝트 설정 → 로컬 설정 → Managed(정책) 설정 ``` Managed(정책) 설정은 항상 최종 우선순위를 가집니다. ## 설정 열기 세션 내에서 `/config`를 실행해 설정 UI를 엽니다. 각 범위의 현재 활성 설정을 찾아볼 수 있습니다. JSON 파일을 직접 편집할 수도 있습니다 — Claude Code가 파일 변경을 감지하면 자동으로 설정을 다시 로드합니다. ## 설정 레퍼런스 ### `model` **타입:** `string` | **범위:** 모든 범위 Claude Code가 사용하는 기본 모델 재정의. 설정된 공급자가 지원하는 모든 모델 ID 허용. ```json { "model": "claude-opus-4-5" } ``` ### `permissions` **타입:** `object` | **범위:** 모든 범위 Claude가 사용할 수 있는 도구와 모드를 제어합니다. 규칙 구문은 [권한 시스템](./06_권한시스템.md) 참조. | 필드 | 타입 | 설명 | |------|------|------| | `allow` | `string[]` | Claude가 확인 없이 수행할 수 있는 작업 규칙 | | `deny` | `string[]` | Claude가 항상 차단되는 작업 규칙 | | `ask` | `string[]` | 항상 확인을 요청하는 작업 규칙 | | `defaultMode` | `string` | 기본 권한 모드: `"default"`, `"acceptEdits"`, `"plan"`, `"bypassPermissions"` | | `disableBypassPermissionsMode` | `"disable"` | 사용자가 bypass permissions 모드에 들어가는 것을 방지 | | `additionalDirectories` | `string[]` | Claude가 접근할 수 있는 추가 디렉토리 | ### `hooks` **타입:** `object` | **범위:** 모든 범위 도구 실행 전후에 커스텀 셸 커맨드를 실행합니다. 지원 훅 이벤트: `PreToolUse`, `PostToolUse`, `Notification`, `UserPromptSubmit`, `SessionStart`, `SessionEnd`, `Stop`, `SubagentStop`, `PreCompact`, `PostCompact`. ```json { "hooks": { "PostToolUse": [ { "matcher": "Write", "hooks": [{ "type": "command", "command": "prettier --write $CLAUDE_FILE_PATHS" }] } ] } } ``` ### `cleanupPeriodDays` **타입:** `integer` | **기본값:** `30` | **범위:** 모든 범위 채팅 트랜스크립트 보관 일수. `0`으로 설정하면 세션 영속성이 완전히 비활성화됩니다. ### `env` **타입:** `object` | **범위:** 모든 범위 모든 Claude Code 세션에 주입할 환경 변수. 값은 문자열로 변환됩니다. ```json { "env": { "NODE_ENV": "development", "MY_API_URL": "https://api.example.com" } } ``` ### `availableModels` **타입:** `string[]` | **범위:** Managed만 사용자가 선택 가능한 모델의 엔터프라이즈 허용 목록. 패밀리 별칭(`"opus"`는 모든 Opus 버전 허용), 버전 프리픽스, 또는 전체 모델 ID 허용. ### `worktree` **타입:** `object` | **범위:** 모든 범위 `--worktree` 플래그 동작 설정. | 필드 | 타입 | 설명 | |------|------|------| | `symlinkDirectories` | `string[]` | worktree에 메인 저장소에서 심링크할 디렉토리 (예: `"node_modules"`) | | `sparsePaths` | `string[]` | 대규모 모노레포에서 빠른 worktree를 위한 sparse 체크아웃 경로 | ### `attribution` **타입:** `object` | **범위:** 모든 범위 Claude가 커밋과 PR 설명에 추가하는 어트리뷰션 텍스트를 커스터마이징합니다. ```json { "attribution": { "commit": "Co-Authored-By: Claude ", "pr": "" } } ``` ### `language` Claude 응답과 음성 받아쓰기에 선호되는 언어. `{ "language": "korean" }` ### `alwaysThinkingEnabled` **기본값:** `true` — `false`로 설정해 확장 thinking 비활성화. ### `effortLevel` `"low"` | `"medium"` | `"high"` — thinking 예산을 지원하는 모델의 effort 레벨. ### `autoMemoryEnabled` **범위:** 사용자, 로컬 — 이 프로젝트의 자동 메모리 활성화 또는 비활성화. ### `respectGitignore` **기본값:** `true` — 파일 피커가 `.gitignore` 파일을 존중할지 여부. ### `defaultShell` `"bash"` | `"powershell"` — 입력 박스의 `!` 커맨드용 기본 셸. ### `apiKeyHelper` **범위:** 사용자, Managed — API 키를 동적으로 검색하는 스크립트 경로. 스크립트는 stdout에 API 키만 출력하고 코드 0으로 종료해야 합니다. ## Managed 설정 (엔터프라이즈) 관리자는 플랫폼 네이티브 메커니즘을 통해 모든 사용자에게 설정을 배포할 수 있습니다. **macOS:** `/Library/Preferences/`에 plist 파일 배포 또는 MDM을 통해 `com.anthropic.claudecode` 타겟 **Windows:** `HKLM\Software\Anthropic\Claude Code` 레지스트리 키에 설정 작성 **파일 기반:** Managed 설정 파일을 플랫폼별 managed 경로에 배치. 드롭인 설정 조각에는 `managed-settings.d/` 디렉토리 사용(알파벳 순으로 정렬 및 병합됨). ### Managed 전용 잠금 설정 | 설정 | 설명 | |------|------| | `allowManagedHooksOnly` | `true`로 설정 시 Managed 설정의 훅만 실행 | | `allowManagedPermissionRulesOnly` | `true`로 설정 시 Managed 설정의 권한 규칙만 존중 | | `allowManagedMcpServersOnly` | `true`로 설정 시 허용 MCP 서버 목록을 Managed 설정에서만 읽음 | | `strictPluginOnlyCustomization` | 특정 커스터마이징 표면을 플러그인 전용 소스로 잠금 | ## JSON 스키마 에디터 자동완성 및 유효성 검사를 위해 설정 파일에 `$schema` 추가: ```json { "$schema": "https://schemas.anthropic.com/claude-code/settings.json" } ```