Deepseek ArtifactsDeepseek Artifacts
설정 가이드

Claude Code 설정 완전 정리: settings.json 필드 가이드

중요한 settings.json 키를 모두 다룹니다: 네 가지 설정 파일과 우선순위, 모델과 effort, permissions allow/deny 규칙, env 블록, 그리고 실제 settings.local.json 정리 워크플로 — 공식 문서 기준으로 검증했습니다.

핵심 요약

  • 네 파일, 하나의 계층: managed-settings.json이 명령줄을 이기고, 명령줄은 .claude/settings.local.json을, 이것은 .claude/settings.json을, 마지막으로 ~/.claude/settings.json을 이깁니다. allow 목록은 덮어쓰지 않고 파일 간에 병합됩니다.
  • settings.json은 엄격한 JSON입니다: 주석도, 마지막 쉼표도 안 됩니다. "$schema": "https://json.schemastore.org/claude-code-settings.json" 한 줄을 추가하면 에디터가 모든 키를 자동 완성해 줍니다.
  • deny 규칙이 언제나 이깁니다. 어떤 수준의 deny 규칙이든 모든 allow 규칙을 눌럅니다 — Read(./.env)와 Bash(git push:*)부터 시작하면 두 줄로 시크릿과 원격 저장소를 보호한 셈입니다.
  • settings.local.json은 이 머신 전용 샌드박스입니다: 공유 프로젝트 설정보다 우선하고 자동으로 gitignore되므로, 개인 경로와 실험이 저장소로 새어 나가지 않습니다.

Claude Code Configuration EP1: The Global Files Decoded (settings.json, CLAUDE.md, skills)

채널: Terminode AI2:31

영상 보기

Learning In Public: Cleaning Up Claude Code Settings

채널: Ben Nadel5:26

영상 보기

Settings — official documentation

공식 문서: code.claude.com/docs

영상 보기

Settings reference — the full key table

공식 문서: code.claude.com/docs

영상 보기

Environment variables — official reference

공식 문서: code.claude.com/docs

영상 보기

이 페이지의 사실 관계는 공식 설정 문서와 대조해 검증했습니다. 위의 두 영상이 시각 자료이자 감사 워크플로의 영감입니다.

스크린샷의 권리는 각 제작자에게 있으며, 해당 타임스탬프로 바로 연결됩니다. 얼굴이 나온 장면은 사용하지 않았습니다.

Claude Code settings.json, 단계별 설정하기

파트 1 — 설정 지형 파악하기

  1. 1

    네 가지 설정 파일 알기

    Claude Code는 네 범위에서 설정을 읽습니다: ~/.claude/settings.json(나, 모든 프로젝트), .claude/settings.json(팀 공유, 커밋 대상), .claude/settings.local.json(나, 이 프로젝트만), managed-settings.json(조직). ~/.claude 안의 모든 것 — CLAUDE.md, projects, skills, agents, plugins — 이 같은 지형의 일부입니다.

    Claude Code global config map card listing settings.json, CLAUDE.md, projects, skills, agents, plugins and the .claude.json state file inside the ~/.claude directory
    전역 레이어 한눈에 보기: 세션이 시작되면 Claude Code가 ~/.claude에서 읽는 모든 파일.2:28부터 시청
  2. 2

    ~/.claude/settings.json 열기 또는 만들기

    macOS와 Linux에서는 ~/.claude/settings.json, Windows에서는 %USERPROFILE%\.claude\settings.json에 있습니다. 없으면 새로 만드세요 — 다음 세션에서 Claude Code가 읽어 들입니다. 설정 폴더 전체를 다른 곳에 두고 싶으면 CLAUDE_CONFIG_DIR을 설정하세요.

    Claude Code settings.json card showing the ~/.claude/settings.json path on Mac and Linux and the Windows USERPROFILE location for themes, model choice and permissions
    settings.json은 머신의 모든 프로젝트에 걸쳐 테마, 모델 선택, 플러그인, 환경 변수, 권한을 제어합니다.0:20부터 시청
  3. 3

    모델과 effort 레벨 고정하기

    "model"에 특정 모델이나 "opusplan"(Opus가 계획, Sonnet이 실행)을 지정하면 모든 새 세션의 기본값이 됩니다 — /model로 대화형으로 고르는 것과 같은 선택입니다. 여기에 "effortLevel"을 더해 기본 사고량에 상한을 두고, 모델별 재정의는 modelSettings로 합니다.

  4. 4

    신뢰하는 명령은 allow에 추가하기

    permissions 블록의 "allow"에는 승인 프롬프트를 건너뛰는 도구 규칙을 나열합니다: "Bash(npm run lint)", "Bash(npm run test *)", "Read(~/.zshrc)". 규칙은 도구별 스코프 패턴입니다 — * 와일드카드 앞에는 공백이 필요하고("Bash(git push:*)"), 없으면 더 긴 명령 이름까지 삼켜버립니다.

    Claude Code settings.local.json permissions allow list open in VS Code showing Bash git commands and WebFetch domain allow entries
    실제 settings.local.json의 allow 목록: 여기 한 줄 한 줄이 앞으로 다시는 뜨지 않을 승인 프롬프트의 흔적입니다.0:50부터 시청

파트 2 — 권한, env, 덮어쓰기

  1. 5

    deny 규칙으로 시크릿 보호하기

    deny 규칙이 가장 먼저 평가되며 어떤 수준의 설정도 이를 뒤집을 수 없습니다. "Read(./.env)"와 "Read(./.env.*)"로 API 키가 컨텍스트에 들어오지 않게 하고, "Bash(git push:*)"로 원격 게시를 사람의 결정으로 남겨 두세요. 회색 지대는 ask 규칙에 맡깁니다.

  2. 6

    머신 로컬 재정의는 settings.local.json에

    Claude Code가 당신을 위해 권한을 기록하면 .claude/settings.local.json에 저장되고, 이 파일을 자동으로 gitignore 합니다. 개인 경로, 실험용 플래그, 팀원에게 강요하고 싶지 않은 것은 이 파일에. 공유할 의도적인 규칙은 .claude/settings.json으로.

  3. 7

    시크릿과 토글은 env 블록에

    "env" 객체는 모든 세션에 환경 변수를 적용합니다: "ANTHROPIC_API_KEY", "DISABLE_TELEMETRY": "1", "DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1", CLAUDE_CODE_MAX_OUTPUT_TOKENS 등. 문서에서 온 유용한 경험칙: settings.json의 ALL_CAPS 키는 거의 항상 env에 속합니다.

  4. 8

    ~/.claude.json을 설정과 혼동하지 않기

    ~/.claude.json은 설정이 아니라 상태입니다: OAuth 토큰, MCP 서버 등록, 프로젝트별 신뢰 결정, 전역 토글이 여기 살아 있습니다. 의도는 settings.json에 적고 .claude.json은 Claude Code가 관리하게 두세요 — 그리고 둘 다 백업하세요. cleanupPeriodDays가 대화 기록 보관 기간도 결정하기 때문입니다.

    Terminal listing of the ~/.claude folder in Claude Code showing statsig feature flags, the plugins directory, shell snapshots and the .claude.json global state file
    ~/.claude 내부: 기능 플래그, 플러그인, 셸 스냅샷, 그리고 설정 파일로 착각하기 쉬운 .claude.json 상태 파일.2:00부터 시청

파트 3 — 시간이 지나도 깔끔하게 유지하기

  1. 9

    ~/.claude에 있는 다른 것들도 알아두기

    CLAUDE.md는 전역 지시 파일로 매 세션 시작 때 읽힙니다. projects/는 저장소별 대화 기록과 자동 메모리를 저장하고, skills/는 온디맨드 SKILL.md 워크플로, agents/는 서브에이전트 정의, plugins/는 설치된 플러그인, statsig/는 기능 플래그를 캐싱합니다. settings.json이 이 모든 것을 지휘합니다.

    Claude Code CLAUDE.md global instruction file card with personal preferences, code style rules and testing patterns loaded at the start of every session
    CLAUDE.md는 설정으로 착각하기 쉬운 이웃 파일입니다: 설정 키가 아니라 선호와 규칙을 담는 파일이죠.0:45부터 시청
  2. 10

    allow 목록 감사를 Claude에게 맡기기

    allow 목록은 승인 한 번에 한 줄씩 자라다 보면 어느새 아무도 내용을 기억하지 못합니다. Claude Code를 열고 .claude/settings.local.json에서 중복·불필요·위험한 항목을 점검해 달라고 요청하세요 — Claude는 자체 내장 도구가 무엇인지, 어떤 규칙이 겹치는지 압니다.

    Claude Code prompt asking Claude to review the permissions allow list in settings.local.json for redundant and overly permissive entries
    감사 프롬프트: allow 목록을 검토해 중복, 내장 도구와 겹치는 항목, 명백히 위험한 항목을 표시하게 하기.1:40부터 시청
  3. 11

    심사 결과를 리뷰어처럼 읽기

    이 페이지가 스크린샷을 찍은 실제 감사에서 Claude는 41개 항목을 분류했습니다: ls, grep, find, echo, cd는 내장 도구와 중복. 와일드카드 항목은 이미 명시적 명령을 커버. 로컬 절대 경로는 Claude가 작업 디렉터리를 알므로 불필요. curl만이 진짜로 권한이 너무 넓다고 지적되었습니다.

    Claude Code analysis table flagging unnecessary Bash ls, grep and find permission entries that duplicate built-in tools in settings.local.json
    심사 결과: 41개 항목을 불필요·중복·위험으로 분류 — 각 줄의 대체안 포함.3:05부터 시청
  4. 12

    정리를 적용하고 매월 점검하기

    제안된 편집을 승인하면 파일이 41개 항목에서 15개로 줄어듭니다. 습관으로 만드세요: 읽을 수 없는 allow 목록은 보이지 않는 공격 표면입니다. 큰 프로젝트 후에는 감사를 다시 실행하고, 포괄 승인보다 Bash(git diff:*) 같은 스코프가 좁은 규칙을 선호하세요.

    Claude Code summary of permission changes removing curl, explicit home directory paths and one-off shell script entries from the settings allow list
    적용된 정리: curl, 명시적 홈 경로, 일회용 셸 스크립트가 allow 목록에서 제거되었습니다.4:50부터 시청

settings.json vs CLAUDE.md vs ~/.claude.json vs /config

"Claude Code 설정"처럼 보이는 창구가 넷입니다 — 서로 바꿔 쓸 수 없습니다. 무엇이 어느 파일의 소관인지:

  • 1settings.json(모든 스코프) — 선언적 설정: model, effort, permissions, env, hooks, statusLine, plugins. 엄격한 JSON, 스키마 검증, 커밋 안전(.local 제외).
  • 2CLAUDE.md — 자연어 지시와 관례. 동작을 다듬을 뿐 설정이 아니고, 키-값 계약도 없으며 매 세션 읽힙니다.
  • 3~/.claude.json — 머신 상태: OAuth/세션 데이터, MCP 등록, 프로젝트별 신뢰, 온보딩 플래그. Claude Code가 기록하는 파일이므로 손으로 편집하지 마세요.
  • 4/config — 대화형 패널. 같은 키를 다루는 UI입니다: 대부분의 토글은 ~/.claude/settings.json에 기록되고, 일부(Show tips 등)는 settings.local.json으로, 전역 옵션은 ~/.claude.json에 기록됩니다.
  • 5managed-settings.json — 조직 계층. 전부를 이깁니다(더 엄격한 값이 이기는 보안 예외는 소수) — 그래서 회사 머신에서는 로컬 모델 선택이 조용히 무시될 수 있습니다.

경험칙: 동작은 CLAUDE.md, 설정은 settings.json. 그리고 값이 무시되는 것 같으면 ~/.claude.json이나 관리 파일이 이미 결정하지 않았는지 확인하세요.

설정이 안 먹히나요? 응급 처치

settings.json 문제는 대부분 다섯 가지 원인으로 수렴합니다. 순서대로 확인하세요:

  • 1JSON 문법 오류. settings.json은 엄격한 JSON — 마지막 쉼표 하나, // 주석 한 줄이면 파일 전체가 거부됩니다. 밸리데이터에 붙여 넣거나 $schema 줄을 추가해 입력하는 동안 에디터가 잡아내게 하세요.
  • 2위쪽에 더 엄격한 규칙. 관리 설정과 보안 관련 키(disableClaudeAiConnectors, useAutoModeDuringPlan 등)는 무엇보다 우선합니다. 회사 머신이 덮어쓰고 있지 않은지 확인하세요.
  • 3잘못된 파일, 잘못된 스코프. .claude/settings.json의 규칙은 그 프로젝트 안에서만 적용됩니다. defaultMode의 auto와 bypassPermissions는 설계상 프로젝트 수준 파일에서는 무시됩니다.
  • 4env 값의 자리가 틀림. ALL_CAPS 키는 최상위가 아니라 env 블록으로. ANTHROPIC_API_KEY나 DISABLE_TELEMETRY가 무시되는 것 같다면 한 단계 위에 놓여 있을 확률이 높습니다.
  • 5조용히 거부된 항목. claude doctor를 실행하면 검증에 실패한 설정 항목이 나열되고, 세션 안의 /status로 실제 로드된 파일을 볼 수 있습니다.

여전히 안 되나요? 마지막 편집을 지우고, /status로 파일이 로드되는지 확인한 뒤 키를 하나씩 다시 적용하세요 — 노려보는 것보다 이분 탐색입니다.

Claude Code 설정 FAQ

관련 가이드