Claude Code 설정
전역 및 프로젝트 수준 설정, 테마, 환경 변수로 Claude Code를 구성하는 방법을 알아보세요.
Claude Code는 사용자의 요구에 맞게 동작을 구성할 수 있는 다양한 설정을 제공합니다. 터미널에서 claude config
를 실행하거나 대화형 REPL을 사용할 때 /config
명령어를 통해 Claude Code를 구성할 수 있습니다.
구성 계층
새로운 settings.json
파일은 계층적 설정을 통해 Claude Code를 구성하는 공식 메커니즘입니다.
사용자 설정은 ~/.claude/settings.json
에 정의되며 모든 프로젝트에 적용됩니다.
프로젝트 설정은 프로젝트 디렉토리의 .claude/settings.json
에 공유 설정으로, .claude/settings.local.json
에 로컬 프로젝트 설정으로 저장됩니다. Claude Code는 .claude/settings.local.json
이 생성될 때 git에서 이를 무시하도록 구성합니다.
기업용 Claude Code 배포의 경우, 기업 관리 정책 설정도 지원합니다. 이러한 설정은 사용자 및 프로젝트 설정보다 우선합니다. 시스템 관리자는 macOS의 경우 /Library/Application Support/ClaudeCode/policies.json
에, Linux 및 WSL을 통한 Windows의 경우 /etc/claude-code/policies.json
에 정책을 배포할 수 있습니다.
설정 우선순위
설정은 다음 우선순위 순서로 적용되며, 나중 소스가 이전 소스를 재정의합니다:
- 사용자 설정
- 공유 프로젝트 설정
- 로컬 프로젝트 설정
- 명령줄 인수
- 기업 정책
구성 옵션
Claude Code는 전역 및 프로젝트 수준 구성을 지원합니다.
구성을 관리하려면 다음 명령어를 사용하세요:
- 설정 목록 보기:
claude config list
- 설정 확인:
claude config get <key>
- 설정 변경:
claude config set <key> <value>
- 설정에 추가(목록의 경우):
claude config add <key> <value>
- 설정에서 제거(목록의 경우):
claude config remove <key> <value>
기본적으로 config
는 프로젝트 구성을 변경합니다. 전역 구성을 관리하려면 --global
(또는 -g
) 플래그를 사용하세요.
전역 구성
전역 구성을 설정하려면 claude config set -g <key> <value>
를 사용하세요:
키 | 값 | 설명 |
---|---|---|
autoUpdaterStatus | disabled 또는 enabled | 자동 업데이터 활성화 또는 비활성화 (기본값: enabled ) |
env | JSON (예: '{"FOO": "bar"}' ) | 모든 세션에 적용될 환경 변수 |
preferredNotifChannel | iterm2 , iterm2_with_bell , terminal_bell , 또는 notifications_disabled | 알림을 받고 싶은 위치 (기본값: iterm2 ) |
theme | dark , light , light-daltonized , 또는 dark-daltonized | 색상 테마 |
verbose | true 또는 false | bash 및 명령어 출력을 전체적으로 표시할지 여부 (기본값: false ) |
프로젝트 구성
claude config set <key> <value>
로 프로젝트 구성을 관리하세요 (-g
플래그 없이):
키 | 값 | 설명 |
---|---|---|
allowedTools | 도구 배열 | 수동 승인 없이 실행할 수 있는 도구 |
ignorePatterns | glob 문자열 배열 | 도구 사용 시 무시할 파일/디렉토리 |
예시:
권한
/allowed-tools
를 사용하여 Claude Code의 도구 권한을 관리할 수 있습니다. 이 UI는 모든 권한 규칙과 이들이 소스로 하는 settings.json 파일을 나열합니다.
- Allow 규칙은 Claude Code가 추가 수동 승인 없이 지정된 도구를 사용할 수 있게 합니다.
- Deny 규칙은 Claude Code가 지정된 도구를 사용하지 못하게 합니다. Deny 규칙은 allow 규칙보다 우선합니다.
권한 규칙은 Tool(optional-specifier)
형식을 사용합니다.
예를 들어, allow 규칙 목록에 WebFetch
를 추가하면 사용자 승인 없이 웹 fetch 도구를 사용할 수 있습니다. Claude에서 사용 가능한 도구 목록을 참조하세요 (제공된 경우 괄호 안의 이름을 사용하세요).
일부 도구는 더 세밀한 권한 제어를 위해 선택적 지정자를 사용합니다. 예를 들어, WebFetch(domain:example.com)
이 있는 allow 규칙은 example.com에 대한 fetch는 허용하지만 다른 URL은 허용하지 않습니다.
Bash 규칙은 Bash(npm run build)
와 같은 정확한 일치이거나, Bash(npm run test:*)
와 같이 :*
로 끝나는 접두사 일치일 수 있습니다.
Read()
및 Edit()
규칙은 gitignore 사양을 따릅니다. 패턴은 .claude/settings.json
이 포함된 디렉토리를 기준으로 해석됩니다. 절대 경로를 참조하려면 //
를 사용하세요. 홈 디렉토리를 기준으로 하는 경로는 ~/
를 사용하세요. 예: Read(//tmp/build_cache)
또는 Edit(~/.zshrc)
. Claude는 또한 Grep, Glob, LS와 같은 다른 파일 관련 도구에도 Read 및 Edit 규칙을 최선을 다해 적용합니다.
MCP 도구 이름은 mcp__server_name__tool_name
형식을 따릅니다. 여기서:
server_name
은 Claude Code에 구성된 MCP 서버의 이름입니다tool_name
은 해당 서버에서 제공하는 특정 도구입니다
더 많은 예시:
규칙 | 설명 |
---|---|
Bash(npm run build) | 정확한 Bash 명령어 npm run build 와 일치합니다. |
Bash(npm run test:*) | npm run test 로 시작하는 Bash 명령어와 일치합니다. 명령어 구분자 처리에 대한 아래 참고 사항을 확인하세요. |
Edit(~/.zshrc) | ~/.zshrc 파일과 일치합니다. |
Read(node_modules/**) | 모든 node_modules 디렉토리와 일치합니다. |
mcp__puppeteer__puppeteer_navigate | puppeteer MCP 서버의 puppeteer_navigate 도구와 일치합니다. |
WebFetch(domain:example.com) | example.com에 대한 fetch 요청과 일치합니다 |
Claude Code는 명령어 구분자(예: &&
)를 인식하므로 Bash(safe-cmd:*)
와 같은 접두사 일치 규칙은
safe-cmd && other-cmd
명령어를 실행할 권한을 주지 않습니다
자동 업데이터 권한 옵션
Claude Code가 전역 npm 접두사 디렉토리에 쓰기 권한이 충분하지 않음을 감지하면(자동 업데이트에 필요), 이 문서 페이지를 가리키는 경고가 표시됩니다. 자동 업데이터 문제에 대한 자세한 해결 방법은 문제 해결 가이드를 참조하세요.
권장: 새로운 사용자 쓰기 가능 npm 접두사 생성
이 옵션을 권장하는 이유:
- 시스템 디렉토리 권한 수정 방지
- 전역 npm 패키지를 위한 깔끔하고 전용 위치 생성
- 보안 모범 사례 준수
Claude Code가 활발히 개발 중이므로, 위의 권장 옵션을 사용하여 자동 업데이트를 설정하는 것을 권장합니다.
자동 업데이터 비활성화
권한을 수정하는 대신 자동 업데이터를 비활성화하려면 다음을 사용하세요:
터미널 설정 최적화
Claude Code는 터미널이 적절히 구성되었을 때 가장 잘 작동합니다. 최적의 경험을 위해 다음 지침을 따르세요.
지원되는 셸:
- Bash
- Zsh
- Fish
테마와 외관
Claude는 터미널의 테마를 제어할 수 없습니다. 이는 터미널 애플리케이션에서 처리됩니다. 온보딩 중이나 /config
명령어를 통해 언제든지 Claude Code의 테마를 터미널과 일치시킬 수 있습니다.
줄 바꿈
Claude Code에서 줄 바꿈을 입력하는 여러 옵션이 있습니다:
- 빠른 이스케이프:
\
입력 후 Enter를 눌러 새 줄 생성 - 키보드 단축키: 적절한 구성으로 Option+Enter (Meta+Enter) 사용
터미널에서 Option+Enter 설정하기:
Mac Terminal.app의 경우:
- 설정 → 프로필 → 키보드 열기
- “Option을 Meta 키로 사용” 체크
iTerm2 및 VSCode 터미널의 경우:
- 설정 → 프로필 → 키 열기
- 일반에서 왼쪽/오른쪽 Option 키를 “Esc+“로 설정
iTerm2 및 VSCode 사용자를 위한 팁: Claude Code 내에서 /terminal-setup
을 실행하여 Shift+Enter를 더 직관적인 대안으로 자동 구성할 수 있습니다.
알림 설정
적절한 알림 구성으로 Claude가 작업을 완료할 때를 놓치지 마세요:
터미널 벨 알림
작업 완료 시 소리 알림 활성화:
macOS 사용자의 경우: 시스템 설정 → 알림 → [사용 중인 터미널 앱]에서 알림 권한을 활성화하는 것을 잊지 마세요.
iTerm 2 시스템 알림
작업 완료 시 iTerm 2 알림을 위해:
- iTerm 2 환경설정 열기
- 프로필 → 터미널로 이동
- “벨 음소거” 및 “유휴 시 알림 보내기” 활성화
- 원하는 알림 지연 시간 설정
이러한 알림은 iTerm 2에 특화되어 있으며 기본 macOS 터미널에서는 사용할 수 없습니다.
대용량 입력 처리
광범위한 코드나 긴 지시사항 작업 시:
- 직접 붙여넣기 피하기: Claude Code는 매우 긴 붙여넣기 내용을 처리하는 데 어려움을 겪을 수 있습니다
- 파일 기반 워크플로우 사용: 내용을 파일에 작성하고 Claude에게 읽도록 요청
- VS Code 제한사항 인지: VS Code 터미널은 특히 긴 붙여넣기를 잘라내는 경향이 있습니다
Vim 모드
Claude Code는 /vim
또는 /config
를 통해 활성화할 수 있는 Vim 키바인딩의 일부를 지원합니다.
지원되는 기능은 다음과 같습니다:
- 모드 전환:
Esc
(NORMAL로),i
/I
,a
/A
,o
/O
(INSERT로) - 탐색:
h
/j
/k
/l
,w
/e
/b
,0
/$
/^
,gg
/G
- 편집:
x
,dw
/de
/db
/dd
/D
,cw
/ce
/cb
/cc
/C
,.
(반복)
환경 변수
Claude Code는 동작을 제어하기 위해 다음 환경 변수를 지원합니다:
변수 | 목적 |
---|---|
DISABLE_AUTOUPDATER | 1 로 설정하여 자동 업데이터 비활성화 |
DISABLE_BUG_COMMAND | 1 로 설정하여 /bug 명령어 비활성화 |
DISABLE_COST_WARNINGS | 1 로 설정하여 비용 경고 메시지 비활성화 |
DISABLE_ERROR_REPORTING | 1 로 설정하여 Sentry 오류 보고 비활성화 |
DISABLE_TELEMETRY | 1 로 설정하여 Statsig 원격 측정 비활성화 (Statsig 이벤트는 코드, 파일 경로 또는 bash 명령어와 같은 사용자 데이터를 포함하지 않음) |
HTTP_PROXY | 네트워크 연결을 위한 HTTP 프록시 서버 지정 |
HTTPS_PROXY | 네트워크 연결을 위한 HTTPS 프록시 서버 지정 |
MCP_TIMEOUT | MCP 서버 시작을 위한 타임아웃(밀리초) |
MCP_TOOL_TIMEOUT | MCP 도구 실행을 위한 타임아웃(밀리초) |