Claude Code ์ค์
์ ์ญ ๋ฐ ํ๋ก์ ํธ ์์ค ์ค์ ๊ณผ ํ๊ฒฝ ๋ณ์๋ก Claude Code๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
Claude Code๋ ์ฌ์ฉ์์ ํ์์ ๋ง๊ฒ ๋์์ ๊ตฌ์ฑํ ์ ์๋ ๋ค์ํ ์ค์ ์ ์ ๊ณตํฉ๋๋ค. ๋ํํ REPL์ ์ฌ์ฉํ ๋ /config ๋ช
๋ น์ ์คํํ์ฌ Claude Code๋ฅผ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ํ ์ ๋ณด๋ฅผ ๋ณด๊ณ ๊ตฌ์ฑ ์ต์
์ ์์ ํ ์ ์๋ ํญ ํ์์ ์ค์ ์ธํฐํ์ด์ค๋ฅผ ์ฝ๋๋ค.
๊ตฌ์ฑ ๋ฒ์
Claude Code๋ ๋ฒ์ ์์คํ ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ์ด ์ด๋์ ์ ์ฉ๋๊ณ ๋๊ฐ ๊ณต์ ํ๋์ง ๊ฒฐ์ ํฉ๋๋ค. ๋ฒ์๋ฅผ ์ดํดํ๋ฉด ๊ฐ์ธ ์ฌ์ฉ, ํ ํ์ ๋๋ ์ํฐํ๋ผ์ด์ฆ ๋ฐฐํฌ๋ฅผ ์ํด Claude Code๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฒ์
| ๋ฒ์ | ์์น | ์ํฅ์ ๋ฐ๋ ๋์ | ํ๊ณผ ๊ณต์ ? |
|---|---|---|---|
| Managed | ์๋ฒ ๊ด๋ฆฌ ์ค์ , plist / ๋ ์ง์คํธ๋ฆฌ ๋๋ ์์คํ
์์ค managed-settings.json |
๋จธ์ ์ ๋ชจ๋ ์ฌ์ฉ์ | ์ (IT์์ ๋ฐฐํฌ) |
| User | ~/.claude/ ๋๋ ํ ๋ฆฌ |
๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉ์ | ์๋์ค |
| Project | ์ ์ฅ์์ .claude/ |
์ด ์ ์ฅ์์ ๋ชจ๋ ํ์ ์ | ์ (git์ ์ปค๋ฐ๋จ) |
| Local | .claude/settings.local.json |
์ด ์ ์ฅ์์์๋ง ์ฌ์ฉ์ | ์๋์ค (gitignored) |
๊ฐ ๋ฒ์๋ฅผ ์ฌ์ฉํ ๋
Managed ๋ฒ์๋ ๋ค์์ ์ํ ๊ฒ์ ๋๋ค:
- ์กฐ์ง ์ ์ฒด์์ ์ ์ฉํด์ผ ํ๋ ๋ณด์ ์ ์ฑ
- ์ฌ์ ์ํ ์ ์๋ ๊ท์ ์ค์ ์๊ตฌ ์ฌํญ
- IT/DevOps์์ ๋ฐฐํฌํ ํ์คํ๋ ๊ตฌ์ฑ
User ๋ฒ์๋ ๋ค์์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค:
- ๋ชจ๋ ๊ณณ์์ ์ํ๋ ๊ฐ์ธ ์ค์ (ํ ๋ง, ํธ์ง๊ธฐ ์ค์ )
- ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ๋๊ตฌ ๋ฐ ํ๋ฌ๊ทธ์ธ
- API ํค ๋ฐ ์ธ์ฆ (์์ ํ๊ฒ ์ ์ฅ๋จ)
Project ๋ฒ์๋ ๋ค์์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค:
- ํ ๊ณต์ ์ค์ (๊ถํ, hooks, MCP servers)
- ์ ์ฒด ํ์ด ๊ฐ์ ธ์ผ ํ ํ๋ฌ๊ทธ์ธ
- ํ์ ์ ๊ฐ ๋๊ตฌ ํ์คํ
Local ๋ฒ์๋ ๋ค์์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค:
- ํน์ ํ๋ก์ ํธ์ ๋ํ ๊ฐ์ธ ์ฌ์ ์
- ํ๊ณผ ๊ณต์ ํ๊ธฐ ์ ์ ๊ตฌ์ฑ ํ ์คํธ
- ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ๋ ์๋ํ์ง ์์ ๋จธ์ ํน์ ์ค์
๋ฒ์๊ฐ ์ํธ ์์ฉํ๋ ๋ฐฉ์
๋์ผํ ์ค์ ์ด ์ฌ๋ฌ ๋ฒ์์์ ๊ตฌ์ฑ๋๋ฉด Claude Code๋ ์ฐ์ ์์ ์์๋๋ก ์ ์ฉํฉ๋๋ค:
- Managed (์ต๊ณ ) - ์๋ฌด๊ฒ๋ ์ฌ์ ์ํ ์ ์์
- ๋ช ๋ น์ค ์ธ์ - ์์ ์ธ์ ์ฌ์ ์
- Local - ํ๋ก์ ํธ ๋ฐ ์ฌ์ฉ์ ์ค์ ์ฌ์ ์
- Project - ์ฌ์ฉ์ ์ค์ ์ฌ์ ์
- User (์ต์ ) - ๋ค๋ฅธ ๊ฒ์ด ์ค์ ์ ์ง์ ํ์ง ์์ ๋ ์ ์ฉ
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ค์ ์์ spinnerTipsEnabled๋ฅผ true๋ก ์ค์ ํ๊ณ ํ๋ก์ ํธ ์ค์ ์์ false๋ก ์ค์ ํ๋ฉด ํ๋ก์ ํธ ๊ฐ์ด ์ ์ฉ๋ฉ๋๋ค. ๊ถํ ๊ท์น์ ์ฌ์ ์ํ์ง ์๊ณ ๋ฒ์ ์ ์ฒด์์ ๋ณํฉ๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค. ์ค์ ์ฐ์ ์์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ฒ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
๋ฒ์๋ ๋ง์ Claude Code ๊ธฐ๋ฅ์ ์ ์ฉ๋ฉ๋๋ค:
| ๊ธฐ๋ฅ | ์ฌ์ฉ์ ์์น | ํ๋ก์ ํธ ์์น | Local ์์น |
|---|---|---|---|
| Settings | ~/.claude/settings.json |
.claude/settings.json |
.claude/settings.local.json |
| Subagents | ~/.claude/agents/ |
.claude/agents/ |
์์ |
| MCP servers | ~/.claude.json |
.mcp.json |
~/.claude.json (ํ๋ก์ ํธ๋ณ) |
| Plugins | ~/.claude/settings.json |
.claude/settings.json |
.claude/settings.local.json |
| CLAUDE.md | ~/.claude/CLAUDE.md |
CLAUDE.md ๋๋ .claude/CLAUDE.md |
CLAUDE.local.md |
Windows์์ ~/.claude๋ก ํ์๋ ๊ฒฝ๋ก๋ %USERPROFILE%\.claude๋ก ํ์ธ๋ฉ๋๋ค.
์ค์ ํ์ผ
settings.json ํ์ผ์ ๊ณ์ธต์ ์ค์ ์ ํตํด Claude Code๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ณต์ ๋ฉ์ปค๋์ฆ์
๋๋ค:
-
์ฌ์ฉ์ ์ค์ ์
~/.claude/settings.json์ ์ ์๋๋ฉฐ ๋ชจ๋ ํ๋ก์ ํธ์ ์ ์ฉ๋ฉ๋๋ค. -
ํ๋ก์ ํธ ์ค์ ์ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค:
- ์์ค ์ ์ด์ ์ฒดํฌ์ธ๋๊ณ ํ๊ณผ ๊ณต์ ๋๋ ์ค์ ์ ์ํ
.claude/settings.json - ์ฒดํฌ์ธ๋์ง ์์ ์ค์ ์ ์ํ
.claude/settings.local.json์ผ๋ก, ๊ฐ์ธ ์ค์ ๋ฐ ์คํ์ ์ ์ฉํฉ๋๋ค. Claude Code๋.claude/settings.local.json์ด ์์ฑ๋ ๋ git์ ๊ตฌ์ฑํ์ฌ ์ด๋ฅผ ๋ฌด์ํ๋๋ก ํฉ๋๋ค.
- ์์ค ์ ์ด์ ์ฒดํฌ์ธ๋๊ณ ํ๊ณผ ๊ณต์ ๋๋ ์ค์ ์ ์ํ
-
Managed ์ค์ : ์ค์ ์ง์ค์ ์ ์ด๊ฐ ํ์ํ ์กฐ์ง์ ๊ฒฝ์ฐ Claude Code๋ managed ์ค์ ์ ์ํ ์ฌ๋ฌ ์ ๋ฌ ๋ฉ์ปค๋์ฆ์ ์ง์ํฉ๋๋ค. ๋ชจ๋ ๋์ผํ JSON ํ์์ ์ฌ์ฉํ๋ฉฐ ์ฌ์ฉ์ ๋๋ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ์ฌ์ ์ํ ์ ์์ต๋๋ค:
-
์๋ฒ ๊ด๋ฆฌ ์ค์ : Anthropic์ ์๋ฒ์์ Claude.ai ๊ด๋ฆฌ ์ฝ์์ ํตํด ์ ๋ฌ๋ฉ๋๋ค. ์๋ฒ ๊ด๋ฆฌ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
-
MDM/OS ์์ค ์ ์ฑ : macOS ๋ฐ Windows์ ๊ธฐ๋ณธ ์ฅ์น ๊ด๋ฆฌ๋ฅผ ํตํด ์ ๋ฌ๋ฉ๋๋ค:
- macOS:
com.anthropic.claudecodemanaged preferences domain. plist์ ์ต์์ ํค๋managed-settings.json์ ๋ฐ์ํ๋ฉฐ, ์ค์ฒฉ๋ ์ค์ ์ ๋์ ๋๋ฆฌ์ด๊ณ ๋ฐฐ์ด์ plist ๋ฐฐ์ด์ ๋๋ค. Jamf, Kandji (Iru) ๋๋ ์ ์ฌํ MDM ๋๊ตฌ์ ๊ตฌ์ฑ ํ๋กํ์ ํตํด ๋ฐฐํฌํฉ๋๋ค. - Windows:
HKLM\SOFTWARE\Policies\ClaudeCode๋ ์ง์คํธ๋ฆฌ ํค์ JSON์ ํฌํจํ๋Settings๊ฐ (REG_SZ ๋๋ REG_EXPAND_SZ) (๊ทธ๋ฃน ์ ์ฑ ๋๋ Intune์ ํตํด ๋ฐฐํฌ) - Windows (์ฌ์ฉ์ ์์ค):
HKCU\SOFTWARE\Policies\ClaudeCode(์ต์ ์ ์ฑ ์ฐ์ ์์, ๊ด๋ฆฌ์ ์์ค ์์ค๊ฐ ์์ ๋๋ง ์ฌ์ฉ)
- macOS:
-
ํ์ผ ๊ธฐ๋ฐ: ์์คํ ๋๋ ํ ๋ฆฌ์ ๋ฐฐํฌ๋
managed-settings.json๋ฐmanaged-mcp.json:- macOS:
/Library/Application Support/ClaudeCode/ - Linux ๋ฐ WSL:
/etc/claude-code/ - Windows:
C:\Program Files\ClaudeCode\
Warning๋ ๊ฑฐ์ Windows ๊ฒฝ๋ก
C:\ProgramData\ClaudeCode\managed-settings.json์ v2.1.75๋ถํฐ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค. ํด๋น ์์น์ ์ค์ ์ ๋ฐฐํฌํ ๊ด๋ฆฌ์๋ ํ์ผ์C:\Program Files\ClaudeCode\managed-settings.json์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํฉ๋๋ค.ํ์ผ ๊ธฐ๋ฐ managed ์ค์ ์
managed-settings.json๊ณผ ๋์ผํ ์์คํ ๋๋ ํ ๋ฆฌ์managed-settings.d/๋๋กญ์ธ ๋๋ ํ ๋ฆฌ๋ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ณ๋์ ํ์ด ๋จ์ผ ํ์ผ ํธ์ง์ ์กฐ์ ํ์ง ์๊ณ ๋ ๋ฆฝ์ ์ธ ์ ์ฑ ์กฐ๊ฐ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.systemd ๊ท์น์ ๋ฐ๋ฅด๋ฉด
managed-settings.json์ด ๋จผ์ ๊ธฐ๋ณธ์ผ๋ก ๋ณํฉ๋๊ณ , ๋๋กญ์ธ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋*.jsonํ์ผ์ด ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ ๋ณํฉ๋ฉ๋๋ค. ์ค์นผ๋ผ ๊ฐ์ ๊ฒฝ์ฐ ๋์ค ํ์ผ์ด ์ด์ ํ์ผ์ ์ฌ์ ์ํฉ๋๋ค. ๋ฐฐ์ด์ ์ฐ๊ฒฐ๋๊ณ ์ค๋ณต ์ ๊ฑฐ๋ฉ๋๋ค. ๊ฐ์ฒด๋ ๊น๊ฒ ๋ณํฉ๋ฉ๋๋ค..๋ก ์์ํ๋ ์จ๊ฒจ์ง ํ์ผ์ ๋ฌด์๋ฉ๋๋ค.๋ณํฉ ์์๋ฅผ ์ ์ดํ๋ ค๋ฉด ์ซ์ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค (์:
10-telemetry.json๋ฐ20-security.json). - macOS:
managed ์ค์ ๋ฐ Managed MCP ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
์ด ์ ์ฅ์์๋ Jamf, Kandji (Iru), Intune ๋ฐ ๊ทธ๋ฃน ์ ์ฑ ์ ๋ํ ์์ ๋ฐฐํฌ ํ ํ๋ฆฟ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ํ์์ ๋ง๊ฒ ์กฐ์ ํฉ๋๋ค.
NoteManaged ๋ฐฐํฌ๋
strictKnownMarketplaces๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฌ๊ทธ์ธ ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ๋ฅผ ์ ํํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Managed ๋ง์ผํ๋ ์ด์ค ์ ํ์ ์ฐธ์กฐํ์ธ์. -
-
๊ธฐํ ๊ตฌ์ฑ์
~/.claude.json์ ์ ์ฅ๋ฉ๋๋ค. ์ด ํ์ผ์๋ OAuth ์ธ์ , MCP server ๊ตฌ์ฑ (์ฌ์ฉ์ ๋ฐ local ๋ฒ์), ํ๋ก์ ํธ๋ณ ์ํ (ํ์ฉ๋ ๋๊ตฌ, ์ ๋ขฐ ์ค์ ) ๋ฐ ๋ค์ํ ์บ์๊ฐ ํฌํจ๋ฉ๋๋ค. ํ๋ก์ ํธ ๋ฒ์ MCP ์๋ฒ๋.mcp.json์ ๋ณ๋๋ก ์ ์ฅ๋ฉ๋๋ค.
Claude Code๋ ์๋์ผ๋ก ๊ตฌ์ฑ ํ์ผ์ ํ์์คํฌํ๊ฐ ์ง์ ๋ ๋ฐฑ์ ์ ์์ฑํ๊ณ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ฐ์ฅ ์ต๊ทผ์ 5๊ฐ ๋ฐฑ์ ์ ์ ์งํฉ๋๋ค.
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Read(~/.zshrc)"
],
"deny": [
"Bash(curl *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp"
},
"companyAnnouncements": [
"Welcome to Acme Corp! Review our code guidelines at docs.acme.com",
"Reminder: Code reviews required for all PRs",
"New security policy in effect"
]
}
์์ ์์ ์์ $schema ์ค์ Claude Code ์ค์ ์ ๋ํ ๊ณต์ JSON ์คํค๋ง๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ์ด๋ฅผ settings.json์ ์ถ๊ฐํ๋ฉด VS Code, Cursor ๋ฐ JSON ์คํค๋ง ๊ฒ์ฆ์ ์ง์ํ๋ ๋ค๋ฅธ ํธ์ง๊ธฐ์์ ์๋ ์์ฑ ๋ฐ ์ธ๋ผ์ธ ๊ฒ์ฆ์ด ํ์ฑํ๋ฉ๋๋ค.
๊ฒ์๋ ์คํค๋ง๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ฉฐ ๊ฐ์ฅ ์ต๊ทผ CLI ๋ฆด๋ฆฌ์ค์์ ์ถ๊ฐ๋ ์ค์ ์ ํฌํจํ์ง ์์ ์ ์์ผ๋ฏ๋ก, ์ต๊ทผ์ ๋ฌธ์ํ๋ ํ๋์ ๋ํ ๊ฒ์ฆ ๊ฒฝ๊ณ ๊ฐ ๋ฐ๋์ ๊ตฌ์ฑ์ด ์ ํจํ์ง ์์์ ์๋ฏธํ์ง๋ ์์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ์ค์
settings.json์ ์ฌ๋ฌ ์ต์
์ ์ง์ํฉ๋๋ค:
| ํค | ์ค๋ช | ์์ |
|---|---|---|
agent |
๋ฉ์ธ ์ค๋ ๋๋ฅผ ๋ช ๋ช ๋ subagent๋ก ์คํํฉ๋๋ค. ํด๋น subagent์ ์์คํ ํ๋กฌํํธ, ๋๊ตฌ ์ ํ ๋ฐ ๋ชจ๋ธ์ ์ ์ฉํฉ๋๋ค. subagents ๋ช ์์ ์ผ๋ก ํธ์ถ์ ์ฐธ์กฐํ์ธ์ | "code-reviewer" |
allowedChannelPlugins |
(Managed ์ค์ ๋ง) ๋ฉ์์ง๋ฅผ ํธ์ํ ์ ์๋ ์ฑ๋ ํ๋ฌ๊ทธ์ธ์ ํ์ฉ ๋ชฉ๋ก์
๋๋ค. ์ค์ ๋๋ฉด ๊ธฐ๋ณธ Anthropic ํ์ฉ ๋ชฉ๋ก์ ๋์ฒดํฉ๋๋ค. ์ ์๋์ง ์์ = ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํด๋ฐฑ, ๋น ๋ฐฐ์ด = ๋ชจ๋ ์ฑ๋ ํ๋ฌ๊ทธ์ธ ์ฐจ๋จ. channelsEnabled: true๊ฐ ํ์ํฉ๋๋ค. ์ฑ๋ ํ๋ฌ๊ทธ์ธ ์คํ ์ ํ์ ์ฐธ์กฐํ์ธ์ |
[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }] |
allowedHttpHookUrls |
HTTP hooks๊ฐ ๋์์ผ๋ก ํ ์ ์๋ URL ํจํด์ ํ์ฉ ๋ชฉ๋ก์
๋๋ค. *๋ฅผ ์์ผ๋์นด๋๋ก ์ง์ํฉ๋๋ค. ์ค์ ๋๋ฉด ์ผ์นํ์ง ์๋ URL์ ๊ฐ์ง hooks๋ ์ฐจ๋จ๋ฉ๋๋ค. ์ ์๋์ง ์์ = ์ ํ ์์, ๋น ๋ฐฐ์ด = ๋ชจ๋ HTTP hooks ์ฐจ๋จ. ๋ฐฐ์ด์ ์ค์ ์์ค ์ ์ฒด์์ ๋ณํฉ๋ฉ๋๋ค. Hook ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ |
["https://hooks.example.com/*"] |
allowedMcpServers |
Managed ์ค์ ์์ ์ค์ ๋๋ฉด ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑํ ์ ์๋ MCP ์๋ฒ์ ํ์ฉ ๋ชฉ๋ก์ ๋๋ค. ์ ์๋์ง ์์ = ์ ํ ์์, ๋น ๋ฐฐ์ด = ์ ๊ธ. ๋ชจ๋ ๋ฒ์์ ์ ์ฉ๋ฉ๋๋ค. ๊ฑฐ๋ถ ๋ชฉ๋ก์ด ์ฐ์ ํฉ๋๋ค. Managed MCP ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ | [{ "serverName": "github" }] |
allowManagedHooksOnly |
(Managed ์ค์ ๋ง) Managed hooks, SDK hooks ๋ฐ managed ์ค์ enabledPlugins์์ ๊ฐ์ ํ์ฑํ๋ ํ๋ฌ๊ทธ์ธ์ hooks๋ง ๋ก๋๋ฉ๋๋ค. ์ฌ์ฉ์, ํ๋ก์ ํธ ๋ฐ ๋ค๋ฅธ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ hooks๋ ์ฐจ๋จ๋ฉ๋๋ค. Hook ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ |
true |
allowManagedMcpServersOnly |
(Managed ์ค์ ๋ง) Managed ์ค์ ์ allowedMcpServers๋ง ์กด์ค๋ฉ๋๋ค. deniedMcpServers๋ ์ฌ์ ํ ๋ชจ๋ ์์ค์์ ๋ณํฉ๋ฉ๋๋ค. ์ฌ์ฉ์๋ ์ฌ์ ํ MCP ์๋ฒ๋ฅผ ์ถ๊ฐํ ์ ์์ง๋ง ๊ด๋ฆฌ์ ์ ์ ํ์ฉ ๋ชฉ๋ก๋ง ์ ์ฉ๋ฉ๋๋ค. Managed MCP ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ |
true |
allowManagedPermissionRulesOnly |
(Managed ์ค์ ๋ง) ์ฌ์ฉ์ ๋ฐ ํ๋ก์ ํธ ์ค์ ์ด allow, ask ๋๋ deny ๊ถํ ๊ท์น์ ์ ์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. Managed ์ค์ ์ ๊ท์น๋ง ์ ์ฉ๋ฉ๋๋ค. Managed ์ ์ฉ ์ค์ ์ ์ฐธ์กฐํ์ธ์ |
true |
alwaysThinkingEnabled |
๋ชจ๋ ์ธ์
์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฅ ์ฌ๊ณ ๋ฅผ ํ์ฑํํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ง์ ํธ์งํ๊ธฐ๋ณด๋ค๋ /config ๋ช
๋ น์ ํตํด ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฌ๊ณ ๋ฅผ ๊ฐ์ ๋ก ๋๋ ค๋ฉด env์์ CLAUDE_CODE_DISABLE_THINKING์ ์ค์ ํฉ๋๋ค |
true |
apiKeyHelper |
/bin/sh์์ ์คํ๋ ์ฌ์ฉ์ ์ ์ ์คํฌ๋ฆฝํธ๋ก ์ธ์ฆ ๊ฐ์ ์์ฑํฉ๋๋ค. ์ด ๊ฐ์ ๋ชจ๋ธ ์์ฒญ์ ๋ํด X-Api-Key ๋ฐ Authorization: Bearer ํค๋๋ก ์ ์ก๋ฉ๋๋ค. CLAUDE_CODE_API_KEY_HELPER_TTL_MS๋ก ์๋ก๊ณ ์นจ ๊ฐ๊ฒฉ์ ์ค์ ํฉ๋๋ค |
/bin/generate_temp_api_key.sh |
attribution |
git ์ปค๋ฐ ๋ฐ pull request์ ๋ํ attribution์ ์ฌ์ฉ์ ์ ์ํฉ๋๋ค. Attribution ์ค์ ์ ์ฐธ์กฐํ์ธ์ | {"commit": "๐ค Generated with Claude Code", "pr": ""} |
autoMemoryDirectory |
์๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์๋ฅผ ์ํ ์ฌ์ฉ์ ์ ์ ๋๋ ํ ๋ฆฌ์
๋๋ค. ์ ๋ ๊ฒฝ๋ก ๋๋ ~/ ์ ๋์ฌ ๊ฒฝ๋ก๋ฅผ ํ์ฉํฉ๋๋ค. ์ ์ฑ
๋ฐ ์ฌ์ฉ์ ์ค์ ๊ณผ --settings ํ๋๊ทธ์์ ํ์ฉ๋ฉ๋๋ค. ๋ณต์ ๋ ์ ์ฅ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฐ๊ธฐ๋ฅผ ๋ฏผ๊ฐํ ์์น๋ก ๋ฆฌ๋๋ ์
ํ ์ ์์ผ๋ฏ๋ก ํ๋ก์ ํธ ๋๋ local ์ค์ ์์๋ ํ์ฉ๋์ง ์์ต๋๋ค |
"~/my-memory-dir" |
autoMemoryEnabled |
์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฑํํฉ๋๋ค. false์ผ ๋ Claude๋ ์๋ ๋ฉ๋ชจ๋ฆฌ ๋๋ ํ ๋ฆฌ์์ ์ฝ๊ฑฐ๋ ์ฐ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ: true. ์ธ์
์ค์ /memory๋ก๋ ์ ํํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์๋ก ๋นํ์ฑํํ๋ ค๋ฉด env์์ CLAUDE_CODE_DISABLE_AUTO_MEMORY๋ฅผ ์ค์ ํฉ๋๋ค |
false |
autoMode |
์๋ ๋ชจ๋ ๋ถ๋ฅ๊ธฐ๊ฐ ์ฐจ๋จํ๊ณ ํ์ฉํ๋ ๊ฒ์ ์ฌ์ฉ์ ์ ์ํฉ๋๋ค. environment, allow, soft_deny ๋ฐ hard_deny ๋ฐฐ์ด์ ์ฐ๋ฌธ ๊ท์น์ ํฌํจํฉ๋๋ค. ๋ฐฐ์ด์ ๋ฆฌํฐ๋ด ๋ฌธ์์ด "$defaults"๋ฅผ ํฌํจํ์ฌ ํด๋น ์์น์์ ๊ธฐ๋ณธ ์ ๊ณต ๊ท์น์ ์์ํฉ๋๋ค. ์๋ ๋ชจ๋ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์. ๊ณต์ ํ๋ก์ ํธ ์ค์ ์์๋ ์ฝ์ง ์์ |
{"soft_deny": ["$defaults", "Never run terraform apply"]} |
autoScrollEnabled |
fullscreen ๋ ๋๋ง์์ ์ ์ถ๋ ฅ์ ๋ํ์ ๋งจ ์๋๋ก ๋ฐ๋ฆ
๋๋ค. ๊ธฐ๋ณธ๊ฐ: true. /config์ ์๋ ์คํฌ๋กค๋ก ํ์๋ฉ๋๋ค. ์ด๊ฒ์ด ๊บผ์ ธ ์์ ๋๋ ๊ถํ ํ๋กฌํํธ๋ ์ฌ์ ํ ๋ณด๊ธฐ๋ก ์คํฌ๋กค๋ฉ๋๋ค |
false |
autoUpdatesChannel |
์
๋ฐ์ดํธ๋ฅผ ๋ฐ๋ฅผ ๋ฆด๋ฆฌ์ค ์ฑ๋์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฝ 1์ฃผ์ผ ๋ ๋ฒ์ ์ด๊ณ ์ฃผ์ ํ๊ท๊ฐ ์๋ ๋ฒ์ ์ ๊ฑด๋๋ฐ๋ "stable"์ ์ฌ์ฉํ๊ฑฐ๋ ๊ฐ์ฅ ์ต๊ทผ ๋ฆด๋ฆฌ์ค์ธ "latest" (๊ธฐ๋ณธ๊ฐ)์ ์ฌ์ฉํฉ๋๋ค. ์๋ ์
๋ฐ์ดํธ๋ฅผ ์์ ํ ๋นํ์ฑํํ๋ ค๋ฉด env์์ DISABLE_AUTOUPDATER๋ฅผ ์ค์ ํฉ๋๋ค |
"stable" |
availableModels |
/model, --model ๋๋ ANTHROPIC_MODEL์ ํตํด ์ฌ์ฉ์๊ฐ ์ ํํ ์ ์๋ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค. ๊ธฐ๋ณธ ์ต์
์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. ๋ชจ๋ธ ์ ํ ์ ํ์ ์ฐธ์กฐํ์ธ์ |
["sonnet", "haiku"] |
awaySummaryEnabled |
๋ช ๋ถ ๋์ ํฐ๋ฏธ๋์์ ๋จ์ด์ ธ ์๋ค๊ฐ ๋์์ฌ ๋ ํ ์ค ์ธ์
์์ฝ์ ํ์ํฉ๋๋ค. ๋นํ์ฑํํ๋ ค๋ฉด false๋ก ์ค์ ํ๊ฑฐ๋ /config์์ ์ธ์
์์ฝ์ ๋๋๋ค. CLAUDE_CODE_ENABLE_AWAY_SUMMARY์ ๋์ผํฉ๋๋ค |
true |
awsAuthRefresh |
.aws ๋๋ ํ ๋ฆฌ๋ฅผ ์์ ํ๋ ์ฌ์ฉ์ ์ ์ ์คํฌ๋ฆฝํธ (๊ณ ๊ธ ์๊ฒฉ ์ฆ๋ช
๊ตฌ์ฑ ์ฐธ์กฐ) |
aws sso login --profile myprofile |
awsCredentialExport |
AWS ์๊ฒฉ ์ฆ๋ช ์ด ํฌํจ๋ JSON์ ์ถ๋ ฅํ๋ ์ฌ์ฉ์ ์ ์ ์คํฌ๋ฆฝํธ (๊ณ ๊ธ ์๊ฒฉ ์ฆ๋ช ๊ตฌ์ฑ ์ฐธ์กฐ) | /bin/generate_aws_grant.sh |
blockedMarketplaces |
(Managed ์ค์ ๋ง) ๋ง์ผํ๋ ์ด์ค ์์ค์ ์ฐจ๋จ ๋ชฉ๋ก์ ๋๋ค. ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ ๋ฐ ํ๋ฌ๊ทธ์ธ ์ค์น, ์ ๋ฐ์ดํธ, ์๋ก๊ณ ์นจ ๋ฐ ์๋ ์ ๋ฐ์ดํธ์ ์ ์ฉ๋๋ฏ๋ก ์ ์ฑ ์ด ์ค์ ๋๊ธฐ ์ ์ ์ถ๊ฐ๋ ๋ง์ผํ๋ ์ด์ค๋ ํ๋ฌ๊ทธ์ธ์ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐจ๋จ๋ ์์ค๋ ๋ค์ด๋ก๋ ์ ์ ํ์ธ๋๋ฏ๋ก ํ์ผ ์์คํ ์ ๋ฟ์ง ์์ต๋๋ค. Managed ๋ง์ผํ๋ ์ด์ค ์ ํ์ ์ฐธ์กฐํ์ธ์ | [{ "source": "github", "repo": "untrusted/plugins" }] |
channelsEnabled |
(Managed ์ค์ ๋ง) ์กฐ์ง์ ์ํด channels๋ฅผ ํ์ฉํฉ๋๋ค. Claude.ai Team ๋ฐ Enterprise ํ๋์์ ์ค์ ๋์ง ์๊ฑฐ๋ false์ด๋ฉด ์ฑ๋์ด ์ฐจ๋จ๋ฉ๋๋ค. Anthropic Console ๊ณ์ ์ด API ํค ์ธ์ฆ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์กฐ์ง์ด managed ์ค์ ์ ๋ฐฐํฌํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๋์ด ํ์ฉ๋๋ฉฐ, ์ด ๊ฒฝ์ฐ ์ด ํค๋ฅผ true๋ก ์ค์ ํด์ผ ํฉ๋๋ค |
true |
claudeMd |
(Managed ์ค์ ๋ง) ์กฐ์ง ๊ด๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฃผ์ ๋ CLAUDE.md ์คํ์ผ ์ง์นจ์ ๋๋ค. Managed ๋๋ ์ ์ฑ ์ค์ ์์ ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋๋ฉฐ ์ฌ์ฉ์, ํ๋ก์ ํธ ๋ฐ local ์ค์ ์์๋ ๋ฌด์๋ฉ๋๋ค. ์กฐ์ง ์ ์ฒด CLAUDE.md๋ฅผ ์ฐธ์กฐํ์ธ์ | "Always run make lint before committing." |
claudeMdExcludes |
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ก๋ํ ๋ ๊ฑด๋๋ธ CLAUDE.md ํ์ผ์ Glob ํจํด ๋๋ ์ ๋ ๊ฒฝ๋ก์
๋๋ค. ํจํด์ ์ ๋ ํ์ผ ๊ฒฝ๋ก์ ์ผ์นํฉ๋๋ค. ์ฌ์ฉ์, ํ๋ก์ ํธ ๋ฐ local ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ฉ๋ฉ๋๋ค. managed ์ ์ฑ
ํ์ผ์ ์ ์ธํ ์ ์์ต๋๋ค |
["**/vendor/**/CLAUDE.md"] |
cleanupPeriodDays |
์ด ๊ธฐ๊ฐ๋ณด๋ค ์ค๋๋ ์ธ์
ํ์ผ์ ์์ ์ ์ญ์ ๋ฉ๋๋ค (๊ธฐ๋ณธ๊ฐ: 30์ผ, ์ต์ 1). 0์ผ๋ก ์ค์ ํ๋ฉด ๊ฒ์ฆ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ํ ์์ ์ ๊ณ ์ subagent worktrees์ ์๋ ์ ๊ฑฐ์ ๋ํ ๋์ด ๊ธฐ์ค์ ์ ์ดํฉ๋๋ค. ํธ๋์คํฌ๋ฆฝํธ ์ฐ๊ธฐ๋ฅผ ์์ ํ ๋นํ์ฑํํ๋ ค๋ฉด CLAUDE_CODE_SKIP_PROMPT_HISTORY ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๊ฑฐ๋ ๋น๋ํํ ๋ชจ๋ (-p)์์ --no-session-persistence ํ๋๊ทธ ๋๋ persistSession: false SDK ์ต์
์ ์ฌ์ฉํฉ๋๋ค. |
20 |
companyAnnouncements |
์์ ์ ์ฌ์ฉ์์๊ฒ ํ์ํ ๊ณต์ง์ฌํญ์ ๋๋ค. ์ฌ๋ฌ ๊ณต์ง์ฌํญ์ด ์ ๊ณต๋๋ฉด ๋ฌด์์๋ก ์ํ๋ฉ๋๋ค. | ["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"] |
defaultShell |
์
๋ ฅ ์์ ! ๋ช
๋ น์ ๊ธฐ๋ณธ ์
ธ์
๋๋ค. "bash" (๊ธฐ๋ณธ๊ฐ) ๋๋ "powershell"์ ํ์ฉํฉ๋๋ค. "powershell"์ ์ค์ ํ๋ฉด Windows์์ ๋ํํ ! ๋ช
๋ น์ PowerShell์ ํตํด ๋ผ์ฐํ
ํฉ๋๋ค. CLAUDE_CODE_USE_POWERSHELL_TOOL=1์ด ํ์ํฉ๋๋ค. PowerShell ๋๊ตฌ๋ฅผ ์ฐธ์กฐํ์ธ์ |
"powershell" |
deniedMcpServers |
Managed ์ค์ ์์ ์ค์ ๋๋ฉด ๋ช ์์ ์ผ๋ก ์ฐจ๋จ๋ MCP ์๋ฒ์ ๊ฑฐ๋ถ ๋ชฉ๋ก์ ๋๋ค. Managed ์๋ฒ๋ฅผ ํฌํจํ ๋ชจ๋ ๋ฒ์์ ์ ์ฉ๋ฉ๋๋ค. ๊ฑฐ๋ถ ๋ชฉ๋ก์ด ํ์ฉ ๋ชฉ๋ก๋ณด๋ค ์ฐ์ ํฉ๋๋ค. Managed MCP ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ | [{ "serverName": "filesystem" }] |
disableAgentView |
๋ฐฐ๊ฒฝ ์์ด์ ํธ ๋ฐ ์์ด์ ํธ ๋ณด๊ธฐ๋ฅผ ๋๋ ค๋ฉด true๋ก ์ค์ ํฉ๋๋ค: claude agents, --bg, /background ๋ฐ ์จ๋๋งจ๋ ๊ฐ๋
์. ์ผ๋ฐ์ ์ผ๋ก managed ์ค์ ์์ ์ค์ ๋ฉ๋๋ค. CLAUDE_CODE_DISABLE_AGENT_VIEW๋ฅผ 1๋ก ์ค์ ํ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค |
true |
disableAllHooks |
๋ชจ๋ hooks ๋ฐ ์ฌ์ฉ์ ์ ์ ์ํ ์ค ๋นํ์ฑํ | true |
disableAutoMode |
์๋ ๋ชจ๋๊ฐ ํ์ฑํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด "disable"๋ก ์ค์ ํฉ๋๋ค. Shift+Tab ์ํ์์ auto๋ฅผ ์ ๊ฑฐํ๊ณ ์์ ์ --permission-mode auto๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. managed ์ค์ ์์ ์ฌ์ฉ์๊ฐ ์ฌ์ ์ํ ์ ์์ ๋ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค |
"disable" |
disableDeepLinkRegistration |
Claude Code๊ฐ ์์ ์ ์ด์ ์ฒด์ ์ claude-cli:// ํ๋กํ ์ฝ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด "disable"๋ก ์ค์ ํฉ๋๋ค. Deep links๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ๋๊ตฌ๊ฐ ์ฌ์ ์ฑ์์ง ํ๋กฌํํธ๋ก Claude Code ์ธ์
์ ์ด ์ ์์ต๋๋ค. ํ๋กํ ์ฝ ํธ๋ค๋ฌ ๋ฑ๋ก์ด ์ ํ๋๊ฑฐ๋ ๋ณ๋๋ก ๊ด๋ฆฌ๋๋ ํ๊ฒฝ์์ ์ ์ฉํฉ๋๋ค |
"disable" |
disabledMcpjsonServers |
.mcp.json ํ์ผ์์ ๊ฑฐ๋ถํ ํน์ MCP ์๋ฒ ๋ชฉ๋ก |
["filesystem"] |
disableRemoteControl |
{/* min-version: 2.1.128 */}Remote Control ๋นํ์ฑํ: claude remote-control, --remote-control ํ๋๊ทธ, ์๋ ์์ ๋ฐ ์ธ์
๋ด ์ ํ์ ์ฐจ๋จํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฅ์น๋ณ MDM ์ ์ฉ์ ์ํด managed ์ค์ ์ ๋ฐฐ์น๋์ง๋ง ๋ชจ๋ ๋ฒ์์์ ์๋ํฉ๋๋ค. Claude Code v2.1.128 ์ด์์ด ํ์ํฉ๋๋ค |
true |
disableSkillShellExecution |
skills ๋ฐ ์ฌ์ฉ์, ํ๋ก์ ํธ, ํ๋ฌ๊ทธ์ธ ๋๋ ์ถ๊ฐ ๋๋ ํ ๋ฆฌ ์์ค์ ์ฌ์ฉ์ ์ ์ ๋ช
๋ น์์ !`...` ๋ฐ ```! ๋ธ๋ก์ ๋ํ ์ธ๋ผ์ธ ์
ธ ์คํ์ ๋นํ์ฑํํฉ๋๋ค. ๋ช
๋ น์ ์คํ๋๋ ๋์ [shell command execution disabled by policy]๋ก ๋์ฒด๋ฉ๋๋ค. ๋ฒ๋ค ๋ฐ managed skills๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. managed ์ค์ ์์ ์ฌ์ฉ์๊ฐ ์ฌ์ ์ํ ์ ์์ ๋ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค |
true |
editorMode |
์
๋ ฅ ํ๋กฌํํธ์ ํค ๋ฐ์ธ๋ฉ ๋ชจ๋: "normal" ๋๋ "vim". ๊ธฐ๋ณธ๊ฐ: "normal". /config์ ํธ์ง๊ธฐ ๋ชจ๋๋ก ํ์๋ฉ๋๋ค |
"vim" |
effortLevel |
๋
ธ๋ ฅ ์์ค์ ์ธ์
๊ฐ์ ์ ์งํฉ๋๋ค. "low", "medium", "high" ๋๋ "xhigh"๋ฅผ ํ์ฉํฉ๋๋ค. /effort๋ฅผ ์ด๋ฌํ ๊ฐ ์ค ํ๋๋ก ์คํํ ๋ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. --effort ๋ฐ CLAUDE_CODE_EFFORT_LEVEL์ ํ ์ธ์
์ ๋ํด ์ด๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ๋
ธ๋ ฅ ์์ค ์กฐ์ ์์ ์ง์๋๋ ๋ชจ๋ธ์ ์ฐธ์กฐํ์ธ์ |
"xhigh" |
enableAllProjectMcpServers |
ํ๋ก์ ํธ .mcp.json ํ์ผ์ ์ ์๋ ๋ชจ๋ MCP ์๋ฒ๋ฅผ ์๋์ผ๋ก ์น์ธํฉ๋๋ค |
true |
enabledMcpjsonServers |
.mcp.json ํ์ผ์์ ์น์ธํ ํน์ MCP ์๋ฒ ๋ชฉ๋ก |
["memory", "github"] |
env |
๋ชจ๋ ์ธ์ ์ ์ ์ฉ๋ ํ๊ฒฝ ๋ณ์ | {"FOO": "bar"} |
fastModePerSessionOptIn |
true์ผ ๋ ๋น ๋ฅธ ๋ชจ๋๋ ์ธ์
๊ฐ์ ์ง์๋์ง ์์ต๋๋ค. ๊ฐ ์ธ์
์ ๋น ๋ฅธ ๋ชจ๋๊ฐ ๊บผ์ง ์ํ๋ก ์์๋๋ฉฐ ์ฌ์ฉ์๊ฐ /fast๋ก ํ์ฑํํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์์ ๋น ๋ฅธ ๋ชจ๋ ์ค์ ์ ์ฌ์ ํ ์ ์ฅ๋ฉ๋๋ค. ์ธ์
๋ณ ์ตํธ์ธ ํ์๋ฅผ ์ฐธ์กฐํ์ธ์ |
true |
feedbackSurveyRate |
์ธ์
ํ์ง ์ค๋ฌธ์กฐ์ฌ๊ฐ ์ ๊ฒฉ์ผ ๋ ๋ํ๋ ํ๋ฅ (0โ1). ์์ ํ ์ต์ ํ๋ ค๋ฉด 0์ผ๋ก ์ค์ ํ๊ฑฐ๋ env์์ CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY๋ฅผ ์ค์ ํฉ๋๋ค. Bedrock, Vertex ๋๋ Foundry๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฉํ๋ฉฐ ๊ธฐ๋ณธ ์ํ ๋ ์ดํธ๊ฐ ์ ์ฉ๋์ง ์์ต๋๋ค |
0.05 |
fileSuggestion |
@ ํ์ผ ์๋ ์์ฑ์ ์ํ ์ฌ์ฉ์ ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ํ์ผ ์ ์ ์ค์ ์ ์ฐธ์กฐํ์ธ์ |
{"type": "command", "command": "~/.claude/file-suggestion.sh"} |
forceLoginMethod |
claudeai๋ฅผ ์ฌ์ฉํ์ฌ Claude.ai ๊ณ์ ์ผ๋ก๋ง ๋ก๊ทธ์ธ์ ์ ํํ๊ฑฐ๋, console์ ์ฌ์ฉํ์ฌ Claude Console (API ์ฌ์ฉ ์ฒญ๊ตฌ) ๊ณ์ ์ผ๋ก๋ง ์ ํํฉ๋๋ค |
claudeai |
forceLoginOrgUUID |
๋ก๊ทธ์ธ์ด ํน์ ์กฐ์ง์ ์ํ๋๋ก ์๊ตฌํฉ๋๋ค. ๋จ์ผ UUID ๋ฌธ์์ด์ ํ์ฉํ๋ฉฐ, ์ด๋ ๋ก๊ทธ์ธ ์ค์ ํด๋น ์กฐ์ง์ ์ฌ์ ์ ํํ๊ฑฐ๋, ๋์ด๋ ์กฐ์ง์ด ์ฌ์ ์ ํ ์์ด ํ์ฉ๋๋ UUID ๋ฐฐ์ด์ ํ์ฉํฉ๋๋ค. Managed ์ค์ ์์ ์ค์ ๋๋ฉด ์ธ์ฆ๋ ๊ณ์ ์ด ๋์ด๋ ์กฐ์ง์ ์ํ์ง ์์ผ๋ฉด ๋ก๊ทธ์ธ์ด ์คํจํฉ๋๋ค. ๋น ๋ฐฐ์ด์ ์คํจํ๊ณ ์๋ชป๋ ๊ตฌ์ฑ ๋ฉ์์ง๋ก ๋ก๊ทธ์ธ์ ์ฐจ๋จํฉ๋๋ค | "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ๋๋ ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"] |
forceRemoteSettingsRefresh |
(Managed ์ค์ ๋ง) ์๊ฒฉ managed ์ค์ ์ด ์๋ฒ์์ ์๋ก ๊ฐ์ ธ์ฌ ๋๊น์ง CLI ์์์ ์ฐจ๋จํฉ๋๋ค. ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์คํจํ๋ฉด ์บ์๋ ๋๋ ์ค์ ์์ด ๊ณ์ํ๋ ๋์ CLI๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ์ค์ ๋์ง ์์ผ๋ฉด ์์์ด ์๊ฒฉ ์ค์ ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๊ณ์๋ฉ๋๋ค. ์คํจ ํ์ ์ ์ฉ์ ์ฐธ์กฐํ์ธ์ | true |
gcpAuthRefresh |
GCP Application Default Credentials๊ฐ ๋ง๋ฃ๋๊ฑฐ๋ ๋ก๋ํ ์ ์์ ๋ ์๋ก๊ณ ์นจํ๋ ์ฌ์ฉ์ ์ ์ ์คํฌ๋ฆฝํธ์ ๋๋ค. ๊ณ ๊ธ ์๊ฒฉ ์ฆ๋ช ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ | gcloud auth application-default login |
hooks |
๋ผ์ดํ์ฌ์ดํด ์ด๋ฒคํธ์์ ์คํํ ์ฌ์ฉ์ ์ ์ ๋ช ๋ น์ ๊ตฌ์ฑํฉ๋๋ค. ํ์์ hooks ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์ | hooks ์ฐธ์กฐ |
httpHookAllowedEnvVars |
HTTP hooks๊ฐ ํค๋์ ๋ณด๊ฐํ ์ ์๋ ํ๊ฒฝ ๋ณ์ ์ด๋ฆ์ ํ์ฉ ๋ชฉ๋ก์
๋๋ค. ์ค์ ๋๋ฉด ๊ฐ hook์ ์ ํจํ allowedEnvVars๋ ์ด ์ค์ ๊ณผ์ ๊ต์งํฉ์
๋๋ค. ์ ์๋์ง ์์ = ์ ํ ์์. ๋ฐฐ์ด์ ์ค์ ์์ค ์ ์ฒด์์ ๋ณํฉ๋ฉ๋๋ค. Hook ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์ |
["MY_TOKEN", "HOOK_SECRET"] |
includeCoAuthoredBy |
๋ ์ด์ ์ฌ์ฉ๋์ง ์์: ๋์ attribution์ ์ฌ์ฉํ์ธ์. git ์ปค๋ฐ ๋ฐ pull request์ co-authored-by Claude ๋ฐ์ด๋ผ์ธ์ ํฌํจํ ์ง ์ฌ๋ถ (๊ธฐ๋ณธ๊ฐ: true) |
false |
includeGitInstructions |
Claude์ ์์คํ
ํ๋กฌํํธ์ ๊ธฐ๋ณธ ์ ๊ณต ์ปค๋ฐ ๋ฐ PR ์ํฌํ๋ก์ฐ ์ง์นจ ๋ฐ git ์ํ ์ค๋
์ท์ ํฌํจํฉ๋๋ค (๊ธฐ๋ณธ๊ฐ: true). ์๋ฅผ ๋ค์ด ์์ ์ git ์ํฌํ๋ก์ฐ skills์ ์ฌ์ฉํ ๋ ์ด๋ฅผ false๋ก ์ค์ ํ์ฌ ๋ ๋ค ์ ๊ฑฐํฉ๋๋ค. CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋๋ฉด ์ด ์ค์ ๋ณด๋ค ์ฐ์ ํฉ๋๋ค |
false |
language |
Claude์ ์ ํธ ์๋ต ์ธ์ด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค (์: "japanese", "spanish", "french"). Claude๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ธ์ด๋ก ์๋ตํฉ๋๋ค. ๋ํ ์์ฑ ๋ฐ์์ฐ๊ธฐ ์ธ์ด๋ฅผ ์ค์ ํฉ๋๋ค |
"japanese" |
maxSkillDescriptionChars |
{/* min-version: 2.1.105 */}Claude๊ฐ ๊ฐ ํด์ ๋ณด๋ skill ๋ชฉ๋ก์ ๊ฒฐํฉ๋ description ๋ฐ when_to_use ํ
์คํธ์ ๋ํ skill๋ณ ๋ฌธ์ ์ ํ (๊ธฐ๋ณธ๊ฐ: 1536). ์ด ๊ธธ์ด๋ณด๋ค ๊ธด ํ
์คํธ๋ ์๋ฆฝ๋๋ค. ๋ ๊ธด ์ค๋ช
์ ์ ์งํ๋ ค๋ฉด ๋์ด๊ณ ํด๋น ๋ ๋ง์ ์ปจํ
์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. skillListingBudgetFraction์ ๋ง์ถ๋ ค๋ฉด ๋ฎ์ถฅ๋๋ค. /doctor๋ ํ์ฌ ์๋ฆผ ์์ ์ํฅ์ ๋ฐ๋ skills๋ฅผ ํ์ํฉ๋๋ค. Claude Code v2.1.105 ์ด์์ด ํ์ํฉ๋๋ค |
2048 |
minimumVersion |
๋ฐฐ๊ฒฝ ์๋ ์
๋ฐ์ดํธ ๋ฐ claude update๊ฐ ์ด ๋ฒ์ ์๋๋ก ์ค์น๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ํํ์
๋๋ค. "latest" ์ฑ๋์์ "stable"๋ก ์ ํํ ๋ /config๋ฅผ ํตํด ํ์ฌ ๋ฒ์ ์ ๋จธ๋ฌผ๊ธฐ ๋๋ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ํ์ฉํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ๋จธ๋ฌผ๊ธฐ๋ฅผ ์ ํํ๋ฉด ์ด ๊ฐ์ด ์ค์ ๋ฉ๋๋ค. ๋ํ managed ์ค์ ์์ ์กฐ์ง ์ ์ฒด ์ต์๊ฐ์ ๊ณ ์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค |
"2.1.100" |
model |
Claude Code์ ์ฌ์ฉํ ๊ธฐ๋ณธ ๋ชจ๋ธ์ ์ฌ์ ์ํฉ๋๋ค. --model ๋ฐ ANTHROPIC_MODEL์ ํ ์ธ์
์ ๋ํด ์ด๋ฅผ ์ฌ์ ์ํฉ๋๋ค |
"claude-sonnet-4-6" |
modelOverrides |
Anthropic ๋ชจ๋ธ ID๋ฅผ Bedrock ์ถ๋ก ํ๋กํ ARN๊ณผ ๊ฐ์ ๊ณต๊ธ์ ํน์ ๋ชจ๋ธ ID๋ก ๋งคํํฉ๋๋ค. ๊ฐ ๋ชจ๋ธ ์ ํ๊ธฐ ํญ๋ชฉ์ ๊ณต๊ธ์ API๋ฅผ ํธ์ถํ ๋ ๋งคํ๋ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋ฒ์ ๋ณ ๋ชจ๋ธ ID ์ฌ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์ | {"claude-opus-4-6": "arn:aws:bedrock:..."} |
otelHeadersHelper |
๋์ OpenTelemetry ํค๋๋ฅผ ์์ฑํ๋ ์คํฌ๋ฆฝํธ์
๋๋ค. ์์ ์ ๋ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS๋ก ์๋ก๊ณ ์นจ ๊ฐ๊ฒฉ์ ์ค์ ํฉ๋๋ค. ๋์ ํค๋๋ฅผ ์ฐธ์กฐํ์ธ์ |
/bin/generate_otel_headers.sh |
outputStyle |
์์คํ ํ๋กฌํํธ๋ฅผ ์กฐ์ ํ๊ธฐ ์ํ ์ถ๋ ฅ ์คํ์ผ์ ๊ตฌ์ฑํฉ๋๋ค. ์ถ๋ ฅ ์คํ์ผ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์ | "Explanatory" |
parentSettingsBehavior |
{/* min-version: 2.1.133 */}(Managed ์ค์ ๋ง) Agent SDK ๋๋ IDE ํ์ฅ๊ณผ ๊ฐ์ embedding host ํ๋ก์ธ์ค์ ์ํด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ๊ณต๋๋ managed ์ค์ ์ด ๊ด๋ฆฌ์ ๋ฐฐํฌ managed ๊ณ์ธต๋ ์์ ๋ ์ ์ฉ๋๋์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค. "first-wins": ๋ถ๋ชจ ์ ๊ณต ์ค์ ์ด ์ญ์ ๋๊ณ ๊ด๋ฆฌ์ ๊ณ์ธต๋ง ์ ์ฉ๋ฉ๋๋ค. "merge": ๋ถ๋ชจ ์ ๊ณต ์ค์ ์ด ๊ด๋ฆฌ์ ๊ณ์ธต ์๋์ ์ ์ฉ๋๋ฉฐ, ์ ์ฑ
์ ๊ฐํํ ์ ์์ง๋ง ์ํํ ์ ์๋๋ก ํํฐ๋ง๋ฉ๋๋ค. ๊ด๋ฆฌ์ ๊ณ์ธต์ด ๋ฐฐํฌ๋์ง ์์ผ๋ฉด ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ: "first-wins". Claude Code v2.1.133 ์ด์์ด ํ์ํฉ๋๋ค |
"merge" |
permissions |
๊ถํ์ ๊ตฌ์กฐ๋ ์๋ ํ๋ฅผ ์ฐธ์กฐํ์ธ์. | |
plansDirectory |
๊ณํ ํ์ผ์ด ์ ์ฅ๋๋ ์์น๋ฅผ ์ฌ์ฉ์ ์ ์ํฉ๋๋ค. ๊ฒฝ๋ก๋ ํ๋ก์ ํธ ๋ฃจํธ์ ์๋์ ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ: ~/.claude/plans |
"./plans" |
pluginTrustMessage |
(Managed ์ค์ ๋ง) ์ค์น ์ ์ ํ์๋๋ ํ๋ฌ๊ทธ์ธ ์ ๋ขฐ ๊ฒฝ๊ณ ์ ์ถ๊ฐ๋ ์ฌ์ฉ์ ์ ์ ๋ฉ์์ง์ ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ์ง ํน์ ์ปจํ ์คํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ด๋ถ ๋ง์ผํ๋ ์ด์ค์ ํ๋ฌ๊ทธ์ธ์ด ๊ฒ์ฆ๋์์์ ํ์ธํฉ๋๋ค. | "All plugins from our marketplace are approved by IT" |
policyHelper |
{/* min-version: 2.1.136 */}๊ด๋ฆฌ์ ๋ฐฐํฌ ์คํ ํ์ผ๋ก ์์ ์ managed ์ค์ ์ ๋์ ์ผ๋ก ๊ณ์ฐํฉ๋๋ค. MDM ๋๋ ์์คํ
managed-settings.json ํ์ผ์์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ ์ฑ
๋์ฐ๋ฏธ๋ก managed ์ค์ ๊ณ์ฐ์ ์ฐธ์กฐํ์ธ์. Claude Code v2.1.136 ์ด์์ด ํ์ํฉ๋๋ค |
{"path": "/usr/local/bin/claude-policy"} |
preferredNotifChannel |
์์
์๋ฃ ๋ฐ ๊ถํ ํ๋กฌํํธ ์๋ฆผ ๋ฐฉ๋ฒ: "auto", "terminal_bell", "iterm2", "iterm2_with_bell", "kitty", "ghostty" ๋๋ "notifications_disabled". ๊ธฐ๋ณธ๊ฐ: "auto"๋ก, iTerm2, Ghostty ๋ฐ Kitty์์ ๋ฐ์คํฌํฑ ์๋ฆผ์ ๋ณด๋ด๊ณ ๋ค๋ฅธ ํฐ๋ฏธ๋์์๋ ์๋ฌด๊ฒ๋ ํ์ง ์์ต๋๋ค. ๋ชจ๋ ํฐ๋ฏธ๋์์ ๋ฒจ ๋ฌธ์๋ฅผ ์ธ๋ฆฌ๋ ค๋ฉด "terminal_bell"์ ์ค์ ํฉ๋๋ค. /config์ ์๋ฆผ์ผ๋ก ํ์๋ฉ๋๋ค. ํฐ๋ฏธ๋ ๋ฒจ ๋๋ ์๋ฆผ ๋ฐ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์ |
"terminal_bell" |
prefersReducedMotion |
์ ๊ทผ์ฑ์ ์ํด UI ์ ๋๋ฉ์ด์ (์คํผ๋, shimmer, flash ํจ๊ณผ) ๊ฐ์ ๋๋ ๋นํ์ฑํ | true |
prUrlTemplate |
PR ๋ฐฐ์ง์ ๋ํ URL ํ
ํ๋ฆฟ์ผ๋ก ๋ฐ๋ฅ๊ธ ๋ฐ ๋๊ตฌ ๊ฒฐ๊ณผ ์์ฝ์ ํ์๋ฉ๋๋ค. gh์์ ๋ณด๊ณ ํ PR URL์์ {host}, {owner}, {repo}, {number} ๋ฐ {url}์ ๋์ฒดํฉ๋๋ค. github.com ๋์ ๋ด๋ถ ์ฝ๋ ๊ฒํ ๋๊ตฌ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ์ฌ์ฉํฉ๋๋ค. Claude์ ์ฐ๋ฌธ์์ #123 ์๋ ๋งํฌ์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค |
"https://reviews.example.com/{owner}/{repo}/pull/{number}" |
respectGitignore |
@ ํ์ผ ์ ํ๊ธฐ๊ฐ .gitignore ํจํด์ ์กด์คํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค. true (๊ธฐ๋ณธ๊ฐ)์ผ ๋ .gitignore ํจํด๊ณผ ์ผ์นํ๋ ํ์ผ์ ์ ์์์ ์ ์ธ๋ฉ๋๋ค |
false |
showClearContextOnPlanAccept |
๊ณํ ์๋ฝ ํ๋ฉด์์ "์ปจํ
์คํธ ์ง์ฐ๊ธฐ" ์ต์
์ ํ์ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: false. ์ต์
์ ๋ณต์ํ๋ ค๋ฉด true๋ก ์ค์ ํฉ๋๋ค |
true |
showThinkingSummaries |
๋ํํ ์ธ์
์์ ํ์ฅ ์ฌ๊ณ ์์ฝ์ ํ์ํฉ๋๋ค. ์ค์ ๋์ง ์๊ฑฐ๋ false (๋ํํ ๋ชจ๋์ ๊ธฐ๋ณธ๊ฐ)์ผ ๋ ์ฌ๊ณ ๋ธ๋ก์ API์ ์ํด ํธ์ง๋๊ณ ์ถ์๋ ์คํ
์ผ๋ก ํ์๋ฉ๋๋ค. ํธ์ง์ ํ์๋๋ ๋ด์ฉ๋ง ๋ณ๊ฒฝํ๊ณ ๋ชจ๋ธ์ด ์์ฑํ๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์ฌ๊ณ ์ง์ถ์ ์ค์ด๋ ค๋ฉด ์์ฐ์ ๋ฎ์ถ๊ฑฐ๋ ์ฌ๊ณ ๋ฅผ ๋นํ์ฑํํ์ธ์. ๋น๋ํํ ๋ชจ๋ (-p) ๋ฐ SDK ํธ์ถ์๋ ์ด ์ค์ ๊ณผ ๊ด๊ณ์์ด ํญ์ ์์ฝ์ ๋ฐ์ต๋๋ค |
true |
showTurnDuration |
์๋ต ํ ํด ์ง์ ์๊ฐ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค (์: "Cooked for 1m 6s"). ๊ธฐ๋ณธ๊ฐ: true. /config์ ํด ์ง์ ์๊ฐ ํ์๋ก ํ์๋ฉ๋๋ค |
false |
skillListingBudgetFraction |
{/* min-version: 2.1.105 */}Claude๊ฐ ๊ฐ ํด์ ๋ณด๋ skill ๋ชฉ๋ก์ ์ํด ์์ฝ๋ ๋ชจ๋ธ์ ์ปจํ
์คํธ ์๋์ฐ์ ๋ถ์ (๊ธฐ๋ณธ๊ฐ: 0.01 = 1%). ๋ชฉ๋ก์ด ์์ฐ์ ์ด๊ณผํ๋ฉด ๊ฐ์ฅ ์ ๊ฒ ์ฌ์ฉ๋๋ skills์ ์ค๋ช
์ด ๋ฒ ์ด ์ด๋ฆ์ผ๋ก ์ถ์๋์ด Claude๊ฐ ์ฌ์ ํ ํธ์ถํ ์ ์์ง๋ง ์ด์ ๋ฅผ ๋ณด์ง ๋ชปํฉ๋๋ค. ๋ ๋ง์ ์ค๋ช
์ ๋ณด์ด๋ ค๋ฉด ๋์ด๊ณ ํด๋น ๋ ๋ง์ ์ปจํ
์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ๋ง์ skills์ maxSkillDescriptionChars ์๋์ ๋ง์ถ๋ ค๋ฉด ๋ฎ์ถฅ๋๋ค. /doctor๋ ํ์ฌ ์๋ฆผ ์์ ์ํฅ์ ๋ฐ๋ skills๋ฅผ ํ์ํฉ๋๋ค. Claude Code v2.1.105 ์ด์์ด ํ์ํฉ๋๋ค |
0.02 |
skillOverrides |
{/* min-version: 2.1.129 */}skill ์ด๋ฆ์ผ๋ก ํค๊ฐ ์ง์ ๋ skill๋ณ ๊ฐ์์ฑ ์ฌ์ ์์
๋๋ค. ๊ฐ์ "on", "name-only", "user-invocable-only" ๋๋ "off"์
๋๋ค. SKILL.md๋ฅผ ํธ์งํ์ง ์๊ณ skill์ ์จ๊ธฐ๊ฑฐ๋ ์ถ์ํ ์ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ skills์๋ ์ ์ฉ๋์ง ์์ผ๋ฉฐ, ์ด๋ /plugin์ ํตํด ๊ด๋ฆฌ๋ฉ๋๋ค. /skills ๋ฉ๋ด๋ ์ด๋ฅผ .claude/settings.local.json์ ์์ฑํฉ๋๋ค. ์ค์ ์์ skill ๊ฐ์์ฑ ์ฌ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์. Claude Code v2.1.129 ์ด์์ด ํ์ํฉ๋๋ค |
{"legacy-context": "name-only", "deploy": "off"} |
skipWebFetchPreflight |
WebFetch ๋๋ฉ์ธ ์์ ๊ฒ์ฌ๋ฅผ ๊ฑด๋๋๋๋ค. ์ด ๊ฒ์ฌ๋ ๊ฐ ์์ฒญ๋ ํธ์คํธ๋ช
์ ๊ฐ์ ธ์ค๊ธฐ ์ ์ api.anthropic.com์ผ๋ก ์ ์กํฉ๋๋ค. Bedrock, Vertex AI ๋๋ Foundry ๋ฐฐํฌ์ ๊ฐ์ด Anthropic์ผ๋ก์ ํธ๋ํฝ์ ์ฐจ๋จํ๋ ํ๊ฒฝ์์ true๋ก ์ค์ ํฉ๋๋ค. ๊ฑด๋๋ฐ๋ฉด WebFetch๋ ์ฐจ๋จ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ง ์๊ณ ๋ชจ๋ URL์ ์๋ํฉ๋๋ค |
true |
spinnerTipsEnabled |
Claude๊ฐ ์์
์ค์ผ ๋ ์คํผ๋์ ํ์ ํ์ํฉ๋๋ค. ํ์ ๋นํ์ฑํํ๋ ค๋ฉด false๋ก ์ค์ ํฉ๋๋ค (๊ธฐ๋ณธ๊ฐ: true) |
false |
spinnerTipsOverride |
์ฌ์ฉ์ ์ ์ ๋ฌธ์์ด๋ก ์คํผ๋ ํ์ ์ฌ์ ์ํฉ๋๋ค. tips: ํ ๋ฌธ์์ด ๋ฐฐ์ด. excludeDefault: true์ด๋ฉด ์ฌ์ฉ์ ์ ์ ํ๋ง ํ์ํ๊ณ , false์ด๊ฑฐ๋ ์์ผ๋ฉด ์ฌ์ฉ์ ์ ์ ํ์ด ๊ธฐ๋ณธ ์ ๊ณต ํ๊ณผ ๋ณํฉ๋ฉ๋๋ค |
{ "excludeDefault": true, "tips": ["Use our internal tool X"] } |
spinnerVerbs |
์คํผ๋ ๋ฐ ํด ์ง์ ์๊ฐ ๋ฉ์์ง์ ํ์๋๋ ์์
๋์ฌ๋ฅผ ์ฌ์ฉ์ ์ ์ํฉ๋๋ค. mode๋ฅผ "replace"๋ก ์ค์ ํ์ฌ ๋์ฌ๋ง ์ฌ์ฉํ๊ฑฐ๋ "append"๋ก ์ค์ ํ์ฌ ๊ธฐ๋ณธ๊ฐ์ ์ถ๊ฐํฉ๋๋ค |
{"mode": "append", "verbs": ["Pondering", "Crafting"]} |
sshConfigs |
Desktop ํ๊ฒฝ ๋๋กญ๋ค์ด์ ํ์ํ SSH ์ฐ๊ฒฐ์
๋๋ค. ๊ฐ ํญ๋ชฉ์๋ id, name ๋ฐ sshHost๊ฐ ํ์ํ๋ฉฐ, sshPort, sshIdentityFile ๋ฐ startDirectory๋ ์ ํ ์ฌํญ์
๋๋ค. Managed ์ค์ ์์ ์ค์ ๋๋ฉด ์ฐ๊ฒฐ์ ์ฌ์ฉ์์๊ฒ ์ฝ๊ธฐ ์ ์ฉ์
๋๋ค. Managed ๋ฐ ์ฌ์ฉ์ ์ค์ ์์๋ง ์ฝ์ |
[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}] |
statusLine |
์ปจํ
์คํธ๋ฅผ ํ์ํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ ์ ์ํ ์ค์ ๊ตฌ์ฑํฉ๋๋ค. statusLine ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์ |
{"type": "command", "command": "~/.claude/statusline.sh"} |
strictKnownMarketplaces |
(Managed ์ค์ ๋ง) ํ๋ฌ๊ทธ์ธ ๋ง์ผํ๋ ์ด์ค ์์ค์ ํ์ฉ ๋ชฉ๋ก์ ๋๋ค. ์ ์๋์ง ์์ = ์ ํ ์์, ๋น ๋ฐฐ์ด = ์ ๊ธ. ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ ๋ฐ ํ๋ฌ๊ทธ์ธ ์ค์น, ์ ๋ฐ์ดํธ, ์๋ก๊ณ ์นจ ๋ฐ ์๋ ์ ๋ฐ์ดํธ์ ์ ์ฉ๋๋ฏ๋ก ์ ์ฑ ์ด ์ค์ ๋๊ธฐ ์ ์ ์ถ๊ฐ๋ ๋ง์ผํ๋ ์ด์ค๋ ํ๋ฌ๊ทธ์ธ์ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. Managed ๋ง์ผํ๋ ์ด์ค ์ ํ์ ์ฐธ์กฐํ์ธ์ | [{ "source": "github", "repo": "acme-corp/plugins" }] |
syntaxHighlightingDisabled |
diffs, ์ฝ๋ ๋ธ๋ก ๋ฐ ํ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์ ๊ตฌ๋ฌธ ๊ฐ์กฐ ๋นํ์ฑํ | true |
teammateMode |
์์ด์ ํธ ํ ํ์์ด ํ์๋๋ ๋ฐฉ์: auto (tmux ๋๋ iTerm2์์ ๋ถํ ์ฐฝ ์ ํ, ๊ทธ ์ธ์๋ in-process), in-process ๋๋ tmux. --teammate-mode์ ํ ์ธ์
์ ๋ํด ์ด๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ๋์คํ๋ ์ด ๋ชจ๋ ์ ํ์ ์ฐธ์กฐํ์ธ์ |
"in-process" |
terminalProgressBarEnabled |
์ง์๋๋ ํฐ๋ฏธ๋์์ ํฐ๋ฏธ๋ ์งํ๋ฅ ํ์์ค์ ํ์ํฉ๋๋ค: ConEmu, Ghostty 1.2.0+ ๋ฐ iTerm2 3.6.6+. ๊ธฐ๋ณธ๊ฐ: true. /config์ ํฐ๋ฏธ๋ ์งํ๋ฅ ํ์์ค๋ก ํ์๋ฉ๋๋ค |
false |
tui |
ํฐ๋ฏธ๋ UI ๋ ๋๋ฌ์
๋๋ค. ๊น๋ฐ์ ์๋ alt-screen ๋ ๋๋ฌ๊ฐ ์๋ ๊ฐ์ํ๋ ์คํฌ๋กค๋ฐฑ์ ์ํด "fullscreen"์ ์ฌ์ฉํฉ๋๋ค. ํด๋์ ๋ฉ์ธ ํ๋ฉด ๋ ๋๋ฌ๋ฅผ ์ํด "default"๋ฅผ ์ฌ์ฉํฉ๋๋ค. /tui๋ฅผ ํตํด ์ค์ ํฉ๋๋ค. CLAUDE_CODE_NO_FLICKER ํ๊ฒฝ ๋ณ์๋ ์ค์ ํ ์ ์์ต๋๋ค |
"fullscreen" |
useAutoModeDuringPlan |
์๋ ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ ๊ณํ ๋ชจ๋๊ฐ ์๋ ๋ชจ๋ ์๋ฏธ๋ก ์ ์ฌ์ฉํ ์ง ์ฌ๋ถ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ: true. ๊ณต์ ํ๋ก์ ํธ ์ค์ ์์๋ ์ฝ์ง ์์. /config์ "๊ณํ ์ค ์๋ ๋ชจ๋ ์ฌ์ฉ"์ผ๋ก ํ์๋จ |
false |
viewMode |
์์ ์ ๊ธฐ๋ณธ ํธ๋์คํฌ๋ฆฝํธ ๋ณด๊ธฐ ๋ชจ๋: "default", "verbose" ๋๋ "focus". ์ค์ ๋๋ฉด sticky /focus ์ ํ์ ์ฌ์ ์ํฉ๋๋ค. --verbose ํ๋๊ทธ๋ ํ ์ธ์
์ ๋ํด ์ด๋ฅผ ์ฌ์ ์ํฉ๋๋ค |
"verbose" |
voice |
์์ฑ ๋ฐ์์ฐ๊ธฐ ์ค์ : enabled๋ ๋ฐ์์ฐ๊ธฐ๋ฅผ ์ผ๊ณ , mode๋ "hold" ๋๋ "tap"์ ์ ํํ๊ณ , autoSubmit์ hold ๋ชจ๋์์ ํค ๋ฆด๋ฆฌ์ค ์ ํ๋กฌํํธ๋ฅผ ์ ์กํฉ๋๋ค. /voice๋ฅผ ์คํํ ๋ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. Claude.ai ๊ณ์ ์ด ํ์ํฉ๋๋ค |
{ "enabled": true, "mode": "tap" } |
voiceEnabled |
voice.enabled์ ๋ํ ๋ ๊ฑฐ์ ๋ณ์นญ์
๋๋ค. voice ๊ฐ์ฒด๋ฅผ ์ ํธํฉ๋๋ค |
true |
wslInheritsWindowsSettings |
(Windows managed ์ค์ ๋ง) true์ผ ๋ WSL์ Claude Code๋ /etc/claude-code์ ์ถ๊ฐํ์ฌ Windows ์ ์ฑ
์ฒด์ธ์์ managed ์ค์ ์ ์ฝ์ผ๋ฉฐ Windows ์์ค๊ฐ ์ฐ์ ํฉ๋๋ค. Windows ๊ด๋ฆฌ์๊ฐ ์์ฑํด์ผ ํ๋ HKLM ๋ ์ง์คํธ๋ฆฌ ํค ๋๋ C:\Program Files\ClaudeCode\managed-settings.json์์ ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค. HKCU ์ ์ฑ
๋ WSL์ ์ ์ฉ๋๋ ค๋ฉด ํ๋๊ทธ๋ฅผ HKCU ์์ฒด์๋ ์ค์ ํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ Windows์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค |
true |
์ ์ญ ๊ตฌ์ฑ ์ค์
์ด๋ฌํ ์ค์ ์ settings.json์ด ์๋ ~/.claude.json์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ค์ settings.json์ ์ถ๊ฐํ๋ฉด ์คํค๋ง ๊ฒ์ฆ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
v2.1.119 ์ด์ ๋ฒ์ ์ autoScrollEnabled, editorMode, showTurnDuration, teammateMode ๋ฐ terminalProgressBarEnabled๋ฅผ settings.json ๋์ ์ฌ๊ธฐ์ ์ ์ฅํฉ๋๋ค.
| ํค | ์ค๋ช | ์์ |
|---|---|---|
autoConnectIde |
Claude Code๊ฐ ์ธ๋ถ ํฐ๋ฏธ๋์์ ์์๋ ๋ ์คํ ์ค์ธ IDE์ ์๋์ผ๋ก ์ฐ๊ฒฐํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: false. VS Code ๋๋ JetBrains ํฐ๋ฏธ๋ ์ธ๋ถ์์ ์คํํ ๋ /config์ **IDE์ ์๋ ์ฐ๊ฒฐ (์ธ๋ถ ํฐ๋ฏธ๋)**๋ก ํ์๋ฉ๋๋ค. CLAUDE_CODE_AUTO_CONNECT_IDE ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋๋ฉด ์ด๋ฅผ ์ฌ์ ์ํฉ๋๋ค |
true |
autoInstallIdeExtension |
VS Code ํฐ๋ฏธ๋์์ ์คํํ ๋ Claude Code IDE ํ์ฅ์ ์๋์ผ๋ก ์ค์นํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: true. VS Code ๋๋ JetBrains ํฐ๋ฏธ๋ ๋ด์์ ์คํํ ๋ /config์ IDE ํ์ฅ ์๋ ์ค์น๋ก ํ์๋ฉ๋๋ค. CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL ํ๊ฒฝ ๋ณ์๋ ์ค์ ํ ์ ์์ต๋๋ค |
false |
externalEditorContext |
Ctrl+G๋ก ์ธ๋ถ ํธ์ง๊ธฐ๋ฅผ ์ด ๋ Claude์ ์ด์ ์๋ต์ # ์ฃผ์ ์ฒ๋ฆฌ๋ ์ปจํ
์คํธ๋ก ์์ ๋ถ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ: false. /config์ ์ธ๋ถ ํธ์ง๊ธฐ์ ๋ง์ง๋ง ์๋ต ํ์๋ก ํ์๋ฉ๋๋ค |
true |
teammateDefaultModel |
์์ด์ ํธ ํ ํ์์ ์ํ ๊ธฐ๋ณธ ๋ชจ๋ธ๋ก spawn ํ๋กฌํํธ๊ฐ ํ๋๋ฅผ ์ง์ ํ์ง ์์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. "sonnet"๊ณผ ๊ฐ์ ๋ชจ๋ธ ๋ณ์นญ์ผ๋ก ์ค์ ํ๊ฑฐ๋ lead์ ํ์ฌ /model ์ ํ์ ์์ํ๋ ค๋ฉด null๋ก ์ค์ ํฉ๋๋ค. /config์ ๊ธฐ๋ณธ ํ์ ๋ชจ๋ธ๋ก ํ์๋ฉ๋๋ค |
"sonnet" |
Worktree ์ค์
--worktree๊ฐ git worktrees๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๊ตฌ์ฑํฉ๋๋ค.
| ํค | ์ค๋ช | ์์ |
|---|---|---|
worktree.baseRef |
์ worktrees๊ฐ ๋ถ๊ธฐํ๋ ref์
๋๋ค. "fresh" (๊ธฐ๋ณธ๊ฐ)์ ๊นจ๋ํ ํธ๋ฆฌ์ ์ผ์นํ๋ ์๊ฒฉ์ ๋ํด origin/<default-branch>์์ ๋ถ๊ธฐํฉ๋๋ค. "head"๋ ํ์ฌ local HEAD์์ ๋ถ๊ธฐํ๋ฏ๋ก ํธ์๋์ง ์์ ์ปค๋ฐ ๋ฐ feature-branch ์ํ๊ฐ worktree์ ์์ต๋๋ค. --worktree, EnterWorktree ๋๊ตฌ ๋ฐ subagent ๊ฒฉ๋ฆฌ์ ์ ์ฉ๋ฉ๋๋ค |
"head" |
worktree.symlinkDirectories |
๊ฐ worktree์์ ์ค๋ณต์ ํผํ๊ธฐ ์ํด ๋ฉ์ธ ์ ์ฅ์์์ symlinkํ ๋๋ ํ ๋ฆฌ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ ํ ๋ฆฌ๋ symlink๋์ง ์์ต๋๋ค | ["node_modules", ".cache"] |
worktree.sparsePaths |
git sparse-checkout์ ํตํด ๊ฐ worktree์์ ์ฒดํฌ์์ํ ๋๋ ํ ๋ฆฌ์ ๋๋ค. ๋์ด๋ ๊ฒฝ๋ก๋ง ๋์คํฌ์ ์์ฑ๋๋ฏ๋ก ๋๊ท๋ชจ monorepos์์ ๋ ๋น ๋ฆ ๋๋ค | ["packages/my-app", "shared/utils"] |
worktrees์ .env์ ๊ฐ์ gitignored ํ์ผ์ ๋ณต์ฌํ๋ ค๋ฉด ์ค์ ๋์ ํ๋ก์ ํธ ๋ฃจํธ์ .worktreeinclude ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.
๊ถํ ์ค์
| ํค | ์ค๋ช | ์์ |
|---|---|---|
allow |
๋๊ตฌ ์ฌ์ฉ์ ํ์ฉํ๋ ๊ถํ ๊ท์น ๋ฐฐ์ด์ ๋๋ค. ํจํด ๋งค์นญ ์ธ๋ถ ์ฌํญ์ ์๋ ๊ถํ ๊ท์น ๊ตฌ๋ฌธ์ ์ฐธ์กฐํ์ธ์ | [ "Bash(git diff *)" ] |
ask |
๋๊ตฌ ์ฌ์ฉ ์ ํ์ธ์ ์์ฒญํ๋ ๊ถํ ๊ท์น ๋ฐฐ์ด์ ๋๋ค. ํจํด ๋งค์นญ ์ธ๋ถ ์ฌํญ์ ์๋ ๊ถํ ๊ท์น ๊ตฌ๋ฌธ์ ์ฐธ์กฐํ์ธ์ | [ "Bash(git push *)" ] |
deny |
๋๊ตฌ ์ฌ์ฉ์ ๊ฑฐ๋ถํ๋ ๊ถํ ๊ท์น ๋ฐฐ์ด์ ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ Claude Code ์ก์ธ์ค์์ ๋ฏผ๊ฐํ ํ์ผ์ ์ ์ธํฉ๋๋ค. ๊ถํ ๊ท์น ๊ตฌ๋ฌธ ๋ฐ Bash ๊ถํ ์ ํ์ ์ฐธ์กฐํ์ธ์ | [ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ] |
additionalDirectories |
Claude๊ฐ ์ก์ธ์คํ ์ ์๋ ์ถ๊ฐ ์์
๋๋ ํ ๋ฆฌ์
๋๋ค. ๋๋ถ๋ถ์ .claude/ ๊ตฌ์ฑ์ ์ด๋ฌํ ๋๋ ํ ๋ฆฌ์์ ๋ฐ๊ฒฌ๋์ง ์์ต๋๋ค |
[ "../docs/" ] |
defaultMode |
Claude Code๋ฅผ ์ด ๋ ๊ธฐ๋ณธ ๊ถํ ๋ชจ๋์
๋๋ค. ์ ํจํ ๊ฐ: default, acceptEdits, plan, auto, dontAsk, bypassPermissions. --permission-mode CLI ํ๋๊ทธ๋ ๋จ์ผ ์ธ์
์ ๋ํด ์ด ์ค์ ์ ์ฌ์ ์ํฉ๋๋ค |
"acceptEdits" |
disableBypassPermissionsMode |
bypassPermissions ๋ชจ๋๊ฐ ํ์ฑํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด "disable"๋ก ์ค์ ํฉ๋๋ค. ์ด๋ --dangerously-skip-permissions ๋ช
๋ น์ค ํ๋๊ทธ๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก managed ์ค์ ์ ๋ฐฐ์น๋์ด ์กฐ์ง ์ ์ฑ
์ ์ ์ฉํ์ง๋ง ๋ชจ๋ ๋ฒ์์์ ์๋ํฉ๋๋ค |
"disable" |
skipDangerousModePermissionPrompt |
--dangerously-skip-permissions ๋๋ defaultMode: "bypassPermissions"๋ฅผ ํตํด bypass permissions ๋ชจ๋์ ๋ค์ด๊ฐ๊ธฐ ์ ์ ํ์๋๋ ํ์ธ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋๋๋ค. ์ ๋ขฐํ ์ ์๋ ์ ์ฅ์๊ฐ ํ๋กฌํํธ๋ฅผ ์๋์ผ๋ก ์ฐํํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋ก์ ํธ ์ค์ (.claude/settings.json)์์ ์ค์ ๋๋ฉด ๋ฌด์๋ฉ๋๋ค |
true |
๊ถํ ๊ท์น ๊ตฌ๋ฌธ
๊ถํ ๊ท์น์ Tool ๋๋ Tool(specifier) ํ์์ ๋ฐ๋ฆ
๋๋ค. ๊ท์น์ ์์๋๋ก ํ๊ฐ๋ฉ๋๋ค: ๋จผ์ ๊ฑฐ๋ถ ๊ท์น, ๊ทธ ๋ค์ ์์ฒญ, ๊ทธ ๋ค์ ํ์ฉ. ์ฒซ ๋ฒ์งธ ์ผ์น ๊ท์น์ด ์ฐ์นํฉ๋๋ค.
๋น ๋ฅธ ์์ :
| ๊ท์น | ํจ๊ณผ |
|---|---|
Bash |
๋ชจ๋ Bash ๋ช ๋ น๊ณผ ์ผ์น |
Bash(npm run *) |
npm run์ผ๋ก ์์ํ๋ ๋ช
๋ น๊ณผ ์ผ์น |
Read(./.env) |
.env ํ์ผ ์ฝ๊ธฐ์ ์ผ์น |
WebFetch(domain:example.com) |
example.com์ ๋ํ fetch ์์ฒญ๊ณผ ์ผ์น |
Read, Edit, WebFetch, MCP ๋ฐ Agent ๊ท์น์ ๋ํ ์์ผ๋์นด๋ ๋์, ๋๊ตฌ ํน์ ํจํด ๋ฐ Bash ํจํด์ ๋ณด์ ์ ํ์ ํฌํจํ ์์ ํ ๊ท์น ๊ตฌ๋ฌธ ์ฐธ์กฐ๋ ๊ถํ ๊ท์น ๊ตฌ๋ฌธ์ ์ฐธ์กฐํ์ธ์.
Sandbox ์ค์
๊ณ ๊ธ ์๋๋ฐ์ฑ ๋์์ ๊ตฌ์ฑํฉ๋๋ค. ์๋๋ฐ์ฑ์ bash ๋ช ๋ น์ ํ์ผ ์์คํ ๋ฐ ๋คํธ์ํฌ์์ ๊ฒฉ๋ฆฌํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Sandboxing์ ์ฐธ์กฐํ์ธ์.
| ํค | ์ค๋ช | ์์ |
|---|---|---|
enabled |
bash ์๋๋ฐ์ฑ ํ์ฑํ (macOS, Linux ๋ฐ WSL2). ๊ธฐ๋ณธ๊ฐ: false | true |
failIfUnavailable |
sandbox.enabled๊ฐ true์ด์ง๋ง ์๋๋ฐ์ค๋ฅผ ์์ํ ์ ์๋ ๊ฒฝ์ฐ (์ข
์์ฑ ๋๋ฝ, ์ง์๋์ง ์๋ ํ๋ซํผ) ์์ ์ ์ค๋ฅ๋ก ์ข
๋ฃํฉ๋๋ค. false (๊ธฐ๋ณธ๊ฐ)์ผ ๋ ๊ฒฝ๊ณ ๊ฐ ํ์๋๊ณ ๋ช
๋ น์ด ์๋๋ฐ์ฑ๋์ง ์์ ์ํ๋ก ์คํ๋ฉ๋๋ค. Managed ์ค์ ๋ฐฐํฌ์์ ์๋๋ฐ์ฑ์ ํ๋ ๊ฒ์ดํธ๋ก ์๊ตฌํ๋ ๊ฒฝ์ฐ๋ฅผ ์ํ ๊ฒ์
๋๋ค |
true |
autoAllowBashIfSandboxed |
์๋๋ฐ์ฑ๋๋ฉด bash ๋ช ๋ น ์๋ ์น์ธ. ๊ธฐ๋ณธ๊ฐ: true | true |
excludedCommands |
์๋๋ฐ์ค ์ธ๋ถ์์ ์คํํด์ผ ํ๋ ๋ช ๋ น | ["docker *"] |
allowUnsandboxedCommands |
dangerouslyDisableSandbox ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์๋๋ฐ์ค ์ธ๋ถ์์ ๋ช
๋ น์ ์คํํ๋๋ก ํ์ฉํฉ๋๋ค. false๋ก ์ค์ ๋๋ฉด dangerouslyDisableSandbox ์ด์ค์ผ์ดํ ํด์น๊ฐ ์์ ํ ๋นํ์ฑํ๋๊ณ ๋ชจ๋ ๋ช
๋ น์ ์๋๋ฐ์ฑ๋๊ฑฐ๋ excludedCommands์ ์์ด์ผ ํฉ๋๋ค. ์๊ฒฉํ ์๋๋ฐ์ฑ์ด ํ์ํ ์ํฐํ๋ผ์ด์ฆ ์ ์ฑ
์ ์ ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: true |
false |
filesystem.allowWrite |
์๋๋ฐ์ฑ๋ ๋ช
๋ น์ด ์ธ ์ ์๋ ์ถ๊ฐ ๊ฒฝ๋ก์
๋๋ค. ๋ฐฐ์ด์ ๋ชจ๋ ์ค์ ๋ฒ์์์ ๋ณํฉ๋ฉ๋๋ค: ์ฌ์ฉ์, ํ๋ก์ ํธ ๋ฐ managed ๊ฒฝ๋ก๊ฐ ๊ฒฐํฉ๋๊ณ ๋์ฒด๋์ง ์์ต๋๋ค. Edit(...) ํ์ฉ ๊ถํ ๊ท์น์ ๊ฒฝ๋ก์๋ ๋ณํฉ๋ฉ๋๋ค. ๊ฒฝ๋ก ์ ๋์ฌ๋ฅผ ์ฐธ์กฐํ์ธ์. |
["/tmp/build", "~/.kube"] |
filesystem.denyWrite |
์๋๋ฐ์ฑ๋ ๋ช
๋ น์ด ์ธ ์ ์๋ ๊ฒฝ๋ก์
๋๋ค. ๋ฐฐ์ด์ ๋ชจ๋ ์ค์ ๋ฒ์์์ ๋ณํฉ๋ฉ๋๋ค. Edit(...) ๊ฑฐ๋ถ ๊ถํ ๊ท์น์ ๊ฒฝ๋ก์๋ ๋ณํฉ๋ฉ๋๋ค. |
["/etc", "/usr/local/bin"] |
filesystem.denyRead |
์๋๋ฐ์ฑ๋ ๋ช
๋ น์ด ์ฝ์ ์ ์๋ ๊ฒฝ๋ก์
๋๋ค. ๋ฐฐ์ด์ ๋ชจ๋ ์ค์ ๋ฒ์์์ ๋ณํฉ๋ฉ๋๋ค. Read(...) ๊ฑฐ๋ถ ๊ถํ ๊ท์น์ ๊ฒฝ๋ก์๋ ๋ณํฉ๋ฉ๋๋ค. |
["~/.aws/credentials"] |
filesystem.allowRead |
denyRead ์์ญ ๋ด์์ ์ฝ๊ธฐ๋ฅผ ๋ค์ ํ์ฉํ ๊ฒฝ๋ก์
๋๋ค. denyRead๋ณด๋ค ์ฐ์ ํฉ๋๋ค. ๋ฐฐ์ด์ ๋ชจ๋ ์ค์ ๋ฒ์์์ ๋ณํฉ๋ฉ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์
๊ณต๊ฐ ์ ์ฉ ์ฝ๊ธฐ ์ก์ธ์ค ํจํด์ ๋ง๋ญ๋๋ค. |
["."] |
filesystem.allowManagedReadPathsOnly |
(Managed ์ค์ ๋ง) Managed ์ค์ ์ filesystem.allowRead ๊ฒฝ๋ก๋ง ์กด์ค๋ฉ๋๋ค. denyRead๋ ์ฌ์ ํ ๋ชจ๋ ์์ค์์ ๋ณํฉ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: false |
true |
network.allowUnixSockets |
(macOS๋ง) Unix ์์ผ ๊ฒฝ๋ก ์๋๋ฐ์ค์์ ์ก์ธ์ค ๊ฐ๋ฅ. Linux ๋ฐ WSL2์์๋ ๋ฌด์๋๋ฉฐ, seccomp ํํฐ๊ฐ ์์ผ ๊ฒฝ๋ก๋ฅผ ๊ฒ์ฌํ ์ ์์ต๋๋ค. ๋์ allowAllUnixSockets๋ฅผ ์ฌ์ฉํฉ๋๋ค. |
["~/.ssh/agent-socket"] |
network.allowAllUnixSockets |
์๋๋ฐ์ค์์ ๋ชจ๋ Unix ์์ผ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. Linux ๋ฐ WSL2์์ ์ด๋ socket(AF_UNIX, ...) ํธ์ถ์ ์ฐจ๋จํ๋ seccomp ํํฐ๋ฅผ ๊ฑด๋๋ฐ๋ฏ๋ก Unix ์์ผ์ ํ์ฉํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ: false |
true |
network.allowLocalBinding |
localhost ํฌํธ์ ๋ฐ์ธ๋ฉ ํ์ฉ (macOS๋ง). ๊ธฐ๋ณธ๊ฐ: false | true |
network.allowMachLookup |
์๋๋ฐ์ค๊ฐ ์กฐํํ ์ ์๋ ์ถ๊ฐ XPC/Mach ์๋น์ค ์ด๋ฆ (macOS๋ง). ์ ๋์ฌ ์ผ์น๋ฅผ ์ํด ๋จ์ผ ํํ *๋ฅผ ์ง์ํฉ๋๋ค. iOS Simulator ๋๋ Playwright์ ๊ฐ์ด XPC๋ฅผ ํตํด ํต์ ํ๋ ๋๊ตฌ์ ํ์ํฉ๋๋ค. |
["com.apple.coresimulator.*"] |
network.allowedDomains |
์์๋ฐ์ด๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ํ์ฉํ ๋๋ฉ์ธ ๋ฐฐ์ด์
๋๋ค. ์์ผ๋์นด๋๋ฅผ ์ง์ํฉ๋๋ค (์: *.example.com). |
["github.com", "*.npmjs.org"] |
network.deniedDomains |
์์๋ฐ์ด๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ์ฐจ๋จํ ๋๋ฉ์ธ ๋ฐฐ์ด์
๋๋ค. allowedDomains์ ๋์ผํ ์์ผ๋์นด๋ ๊ตฌ๋ฌธ์ ์ง์ํฉ๋๋ค. ๋ ๋ค ์ผ์นํ ๋ allowedDomains๋ณด๋ค ์ฐ์ ํฉ๋๋ค. ๋ชจ๋ ์ค์ ์์ค์ ๊ด๊ณ์์ด ๋ณํฉ๋ฉ๋๋ค |
["sensitive.cloud.example.com"] |
network.allowManagedDomainsOnly |
(Managed ์ค์ ๋ง) Managed ์ค์ ์ allowedDomains ๋ฐ WebFetch(domain:...) ํ์ฉ ๊ท์น๋ง ์กด์ค๋ฉ๋๋ค. ์ฌ์ฉ์, ํ๋ก์ ํธ ๋ฐ local ์ค์ ์ ๋๋ฉ์ธ์ ๋ฌด์๋ฉ๋๋ค. ํ์ฉ๋์ง ์์ ๋๋ฉ์ธ์ ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง๋ฅผ ํ์ํ์ง ์๊ณ ์๋์ผ๋ก ์ฐจ๋จ๋ฉ๋๋ค. ๊ฑฐ๋ถ๋ ๋๋ฉ์ธ์ ์ฌ์ ํ ๋ชจ๋ ์์ค์์ ์กด์ค๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: false |
true |
network.httpProxyPort |
์์ ์ ํ๋ก์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ HTTP ํ๋ก์ ํฌํธ์ ๋๋ค. ์ง์ ๋์ง ์์ผ๋ฉด Claude๊ฐ ์์ ์ ํ๋ก์๋ฅผ ์คํํฉ๋๋ค. | 8080 |
network.socksProxyPort |
์์ ์ ํ๋ก์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ SOCKS5 ํ๋ก์ ํฌํธ์ ๋๋ค. ์ง์ ๋์ง ์์ผ๋ฉด Claude๊ฐ ์์ ์ ํ๋ก์๋ฅผ ์คํํฉ๋๋ค. | 8081 |
enableWeakerNestedSandbox |
๊ถํ์ด ์๋ Docker ํ๊ฒฝ์์ ๋ ์ฝํ ์๋๋ฐ์ค๋ฅผ ํ์ฑํํฉ๋๋ค (Linux ๋ฐ WSL2๋ง). ๋ณด์์ ๊ฐ์์ํต๋๋ค. ๊ธฐ๋ณธ๊ฐ: false | true |
enableWeakerNetworkIsolation |
(macOS๋ง) ์๋๋ฐ์ค์์ ์์คํ
TLS ์ ๋ขฐ ์๋น์ค (com.apple.trustd.agent)์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํฉ๋๋ค. MITM ํ๋ก์ ๋ฐ ์ฌ์ฉ์ ์ ์ CA๋ฅผ ์ฌ์ฉํ๋ httpProxyPort๋ฅผ ์ฌ์ฉํ ๋ gh, gcloud ๋ฐ terraform๊ณผ ๊ฐ์ Go ๊ธฐ๋ฐ ๋๊ตฌ๊ฐ TLS ์ธ์ฆ์๋ฅผ ํ์ธํ๋ ๋ฐ ํ์ํฉ๋๋ค. ๋ณด์์ ๊ฐ์์ํต๋๋ค ์ ์ฌ์ ๋ฐ์ดํฐ ์ ์ถ ๊ฒฝ๋ก๋ฅผ ์ด์ด์. ๊ธฐ๋ณธ๊ฐ: false |
true |
bwrapPath |
(Managed ์ค์ ๋ง, Linux/WSL2) bubblewrap (bwrap) ๋ฐ์ด๋๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก์
๋๋ค. PATH๋ฅผ ํตํ ์๋ ๊ฐ์ง๋ฅผ ์ฌ์ ์ํฉ๋๋ค. managed ์ค์ ์์๋ง ์ ์ฉ๋๋ฉฐ ์ฌ์ฉ์ ๋๋ ํ๋ก์ ํธ ์ค์ ์์๋ ์ ์ฉ๋์ง ์์ต๋๋ค. bwrap์ด managed ํ๊ฒฝ์์ ๋นํ์ค ์์น์ ์ค์น๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค. |
/opt/admin/bwrap |
socatPath |
(Managed ์ค์ ๋ง, Linux/WSL2) ์๋๋ฐ์ค ๋คํธ์ํฌ ํ๋ก์์ ์ฌ์ฉ๋๋ socat ๋ฐ์ด๋๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก์
๋๋ค. PATH๋ฅผ ํตํ ์๋ ๊ฐ์ง๋ฅผ ์ฌ์ ์ํฉ๋๋ค. Managed ์ค์ ์์๋ง ์ ์ฉ๋ฉ๋๋ค. |
/opt/admin/socat |
Sandbox ๊ฒฝ๋ก ์ ๋์ฌ
filesystem.allowWrite, filesystem.denyWrite, filesystem.denyRead ๋ฐ filesystem.allowRead์ ๊ฒฝ๋ก๋ ๋ค์ ์ ๋์ฌ๋ฅผ ์ง์ํฉ๋๋ค:
| ์ ๋์ฌ | ์๋ฏธ | ์์ |
|---|---|---|
/ |
ํ์ผ ์์คํ ๋ฃจํธ์ ์ ๋ ๊ฒฝ๋ก | /tmp/build๋ /tmp/build๋ก ์ ์ง๋จ |
~/ |
ํ ๋๋ ํ ๋ฆฌ์ ์๋์ | ~/.kube๋ $HOME/.kube๊ฐ ๋จ |
./ ๋๋ ์ ๋์ฌ ์์ |
ํ๋ก์ ํธ ์ค์ ์ ๊ฒฝ์ฐ ํ๋ก์ ํธ ๋ฃจํธ์ ์๋์ ์ด๊ฑฐ๋ ์ฌ์ฉ์ ์ค์ ์ ๊ฒฝ์ฐ ~/.claude์ ์๋์ |
./output์ .claude/settings.json์์ <project-root>/output์ผ๋ก ํด๊ฒฐ๋จ |
์ด์ //path ์ ๋์ฌ๋ ์ ๋ ๊ฒฝ๋ก์ ๋ํด ์ฌ์ ํ ์๋ํฉ๋๋ค. ์ด์ ์ ํ๋ก์ ํธ ์๋ ํด๊ฒฐ์ ๊ธฐ๋ํ๋ฉด์ ๋จ์ผ ์ฌ๋์ /path๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ./path๋ก ์ ํํฉ๋๋ค. ์ด ๊ตฌ๋ฌธ์ /path๋ฅผ ํ๋ก์ ํธ ์๋๋ก ์ฌ์ฉํ๋ Read ๋ฐ Edit ๊ถํ ๊ท์น๊ณผ ๋ค๋ฆ
๋๋ค. Sandbox ํ์ผ ์์คํ
๊ฒฝ๋ก๋ ํ์ค ๊ท์น์ ์ฌ์ฉํฉ๋๋ค: /tmp/build๋ ์ ๋ ๊ฒฝ๋ก์
๋๋ค.
๊ตฌ์ฑ ์์ :
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true,
"excludedCommands": ["docker *"],
"filesystem": {
"allowWrite": ["/tmp/build", "~/.kube"],
"denyRead": ["~/.aws/credentials"]
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],
"deniedDomains": ["uploads.github.com"],
"allowUnixSockets": [
"/var/run/docker.sock"
],
"allowLocalBinding": true
}
}
}
ํ์ผ ์์คํ ๋ฐ ๋คํธ์ํฌ ์ ํ์ ํจ๊ป ๋ณํฉ๋๋ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
sandbox.filesystem์ค์ (์์ ํ์๋จ): OS ์์ค ์๋๋ฐ์ค ๊ฒฝ๊ณ์์ ๊ฒฝ๋ก๋ฅผ ์ ์ดํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ Claude์ ํ์ผ ๋๊ตฌ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ํ์ ํ๋ก์ธ์ค ๋ช ๋ น (์:kubectl,terraform,npm)์ ์ ์ฉ๋ฉ๋๋ค.- ๊ถํ ๊ท์น:
Editํ์ฉ/๊ฑฐ๋ถ ๊ท์น์ ์ฌ์ฉํ์ฌ Claude์ ํ์ผ ๋๊ตฌ ์ก์ธ์ค๋ฅผ ์ ์ดํ๊ณ ,Read๊ฑฐ๋ถ ๊ท์น์ ์ฌ์ฉํ์ฌ ์ฝ๊ธฐ๋ฅผ ์ฐจ๋จํ๊ณ ,WebFetchํ์ฉ/๊ฑฐ๋ถ ๊ท์น์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ๋๋ฉ์ธ์ ์ ์ดํฉ๋๋ค. ์ด๋ฌํ ๊ท์น์ ๊ฒฝ๋ก๋ ์๋๋ฐ์ค ๊ตฌ์ฑ์ ๋ณํฉ๋ฉ๋๋ค.
Attribution ์ค์
Claude Code๋ git ์ปค๋ฐ ๋ฐ pull request์ attribution์ ์ถ๊ฐํฉ๋๋ค. ์ด๋ค์ ๋ณ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ์ปค๋ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก git trailers (์:
Co-Authored-By)๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ฌ์ฉ์ ์ ์ํ๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค - Pull request ์ค๋ช ์ ์ผ๋ฐ ํ ์คํธ์ ๋๋ค
| ํค | ์ค๋ช |
|---|---|
commit |
git ์ปค๋ฐ์ ๋ํ attribution์ผ๋ก ๋ชจ๋ trailers๋ฅผ ํฌํจํฉ๋๋ค. ๋น ๋ฌธ์์ด์ ์ปค๋ฐ attribution์ ์จ๊น๋๋ค |
pr |
Pull request ์ค๋ช ์ ๋ํ attribution์ ๋๋ค. ๋น ๋ฌธ์์ด์ pull request attribution์ ์จ๊น๋๋ค |
๊ธฐ๋ณธ ์ปค๋ฐ attribution:
๐ค Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
๊ธฐ๋ณธ pull request attribution:
๐ค Generated with [Claude Code](https://claude.com/claude-code)
์์ :
{
"attribution": {
"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
"pr": ""
}
}
attribution ์ค์ ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ includeCoAuthoredBy ์ค์ ๋ณด๋ค ์ฐ์ ํฉ๋๋ค. ๋ชจ๋ attribution์ ์จ๊ธฐ๋ ค๋ฉด commit ๋ฐ pr์ ๋น ๋ฌธ์์ด๋ก ์ค์ ํฉ๋๋ค.
ํ์ผ ์ ์ ์ค์
@ ํ์ผ ๊ฒฝ๋ก ์๋ ์์ฑ์ ์ํ ์ฌ์ฉ์ ์ ์ ๋ช
๋ น์ ๊ตฌ์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ํ์ผ ์ ์์ ๋น ๋ฅธ ํ์ผ ์์คํ
์ํ๋ฅผ ์ฌ์ฉํ์ง๋ง ๋๊ท๋ชจ monorepos๋ ์ฌ์ ๊ตฌ์ถ๋ ํ์ผ ์ธ๋ฑ์ค ๋๋ ์ฌ์ฉ์ ์ ์ ๋๊ตฌ์ ๊ฐ์ ํ๋ก์ ํธ ํน์ ์ธ๋ฑ์ฑ์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
{
"fileSuggestion": {
"type": "command",
"command": "~/.claude/file-suggestion.sh"
}
}
๋ช
๋ น์ CLAUDE_PROJECT_DIR์ ํฌํจํ hooks์ ๋์ผํ ํ๊ฒฝ ๋ณ์๋ก ์คํ๋ฉ๋๋ค. stdin์ ํตํด query ํ๋๊ฐ ์๋ JSON์ ๋ฐ์ต๋๋ค:
{"query": "src/comp"}
stdout์ ์ค ๋ฐ๊ฟ์ผ๋ก ๊ตฌ๋ถ๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค (ํ์ฌ 15๊ฐ๋ก ์ ํ๋จ):
src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx
์์ :
#!/bin/bash
query=$(cat | jq -r '.query')
your-repo-file-index --query "$query" | head -20
Hook ๊ตฌ์ฑ
์ด๋ฌํ ์ค์ ์ ์ด๋ค hooks๊ฐ ์คํ๋ ์ ์๋์ง์ HTTP hooks๊ฐ ์ก์ธ์คํ ์ ์๋ ๊ฒ์ ์ ์ดํฉ๋๋ค. allowManagedHooksOnly ์ค์ ์ managed ์ค์ ์์๋ง ๊ตฌ์ฑํ ์ ์์ต๋๋ค. URL ๋ฐ env var ํ์ฉ ๋ชฉ๋ก์ ๋ชจ๋ ์ค์ ์์ค์์ ์ค์ ํ ์ ์์ผ๋ฉฐ ์์ค ์ ์ฒด์์ ๋ณํฉ๋ฉ๋๋ค.
allowManagedHooksOnly๊ฐ true์ผ ๋์ ๋์:
- Managed hooks ๋ฐ SDK hooks๊ฐ ๋ก๋๋จ
- Managed ์ค์
enabledPlugins์์ ๊ฐ์ ํ์ฑํ๋ ํ๋ฌ๊ทธ์ธ์ hooks๊ฐ ๋ก๋๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ด๋ฆฌ์๋ ์กฐ์ง ๋ง์ผํ๋ ์ด์ค๋ฅผ ํตํด ๊ฒ์ฆ๋ hooks๋ฅผ ๋ฐฐํฌํ๋ฉด์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ์ ๋ขฐ๋ ์ ์ฒดplugin@marketplaceID๋ก ๋ถ์ฌ๋๋ฏ๋ก ๋ค๋ฅธ ๋ง์ผํ๋ ์ด์ค์ ๋์ผํ ์ด๋ฆ์ ํ๋ฌ๊ทธ์ธ์ ์ฐจ๋จ๋ ์ํ๋ก ์ ์ง๋ฉ๋๋ค - ์ฌ์ฉ์ hooks, ํ๋ก์ ํธ hooks ๋ฐ ๋ค๋ฅธ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ hooks๋ ์ฐจ๋จ๋ฉ๋๋ค
HTTP hook URL ์ ํ:
HTTP hooks๊ฐ ๋์์ผ๋ก ํ ์ ์๋ URL์ ์ ํํฉ๋๋ค. ์ผ์น๋ฅผ ์ํด *๋ฅผ ์์ผ๋์นด๋๋ก ์ง์ํฉ๋๋ค. ๋ฐฐ์ด์ด ์ ์๋๋ฉด ์ผ์นํ์ง ์๋ URL์ ๋์์ผ๋ก ํ๋ HTTP hooks๋ ์๋์ผ๋ก ์ฐจ๋จ๋ฉ๋๋ค. ํธ์คํธ๋ช
์ผ์น๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฉฐ ํํ FQDN ์ ์ ๋ฌด์ํ์ฌ DNS ์๋ฏธ๋ก ๊ณผ ์ผ์นํฉ๋๋ค.
{
"allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}
HTTP hook ํ๊ฒฝ ๋ณ์ ์ ํ:
HTTP hooks๊ฐ ํค๋ ๊ฐ์ ๋ณด๊ฐํ ์ ์๋ ํ๊ฒฝ ๋ณ์ ์ด๋ฆ์ ์ ํํฉ๋๋ค. ๊ฐ hook์ ์ ํจํ allowedEnvVars๋ ์ด ์ค์ ๊ณผ์ ๊ต์งํฉ์
๋๋ค.
{
"httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}
์ ์ฑ ๋์ฐ๋ฏธ๋ก managed ์ค์ ๊ณ์ฐ
policyHelper ์ค์ ์ ์์ ์ managed ์ค์ ์ ๋์ ์ผ๋ก ๊ณ์ฐํ๋ ์คํ ํ์ผ์ ๊ฐ๋ฆฌํค๋ฏ๋ก ๊ด๋ฆฌ์๋ ์ฅ์น ์ํ, ID ๋๋ ์๊ฒฉ ์๋น์ค์์ ์ ์ฑ
์ ํ์์ํฌ ์ ์์ต๋๋ค. MDM ๋๋ ์์คํ
managed-settings.json ํ์ผ์์ ๊ตฌ์ฑํฉ๋๋ค. Claude Code๋ ์ฌ์ฉ์ ์ค์ , ํ๋ก์ ํธ ์ค์ , HKCU ๋ ์ง์คํธ๋ฆฌ ํ์ด๋ธ ๋ฐ ์๋ฒ ๊ด๋ฆฌ ์ค์ ์ ํฌํจํ ๋ค๋ฅธ ๋ฒ์์ ๋ํ๋๋ policyHelper๋ฅผ ๋ฌด์ํฉ๋๋ค.
์ค์ ์ ๋ค์ ํค๋ฅผ ํ์ฉํฉ๋๋ค:
| ํค | ์ ํ | ์ค๋ช |
|---|---|---|
path |
string | ๋์ฐ๋ฏธ ์คํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก |
timeoutMs |
number | ๋์ฐ๋ฏธ๊ฐ ์คํจํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ ์ ๋๊ธฐํ ์๊ฐ |
refreshIntervalMs |
number | ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋์ฐ๋ฏธ๋ฅผ ๋ค์ ์คํํ ๋น๋. ์๋ก๊ณ ์นจ์ ๋นํ์ฑํํ๋ ค๋ฉด 0์ผ๋ก ์ค์ ํ๊ฑฐ๋ ์ต์ 60000์ผ๋ก ์ค์ ํฉ๋๋ค |
๋์ฐ๋ฏธ๋ stdout์ JSON ๋ดํฌ๋ฅผ ์์ฑํฉ๋๋ค. ์ค์ ์ ์ต์์ ์์ค์ด ์๋ managedSettings ํค ์๋์ ๋ฐฐ์นํฉ๋๋ค. ์๋ํ๋ฉด ๋ฒ ์ด ์ค์ ๊ฐ์ฒด๋ managedSettings undefined๋ก ํ์ฑ๋๊ณ ์๋ฌด๊ฒ๋ ์ ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค:
{
"managedSettings": {
"permissions": { "deny": ["Read(//etc/secrets/**)"] }
},
"claudeMd": "# Organization context\n...",
"appendSystemPrompt": "Always cite the internal style guide."
}
๋์ฐ๋ฏธ๊ฐ managedSettings๋ฅผ ๋ด๋ณด๋ผ ๋ ํด๋น ๊ฐ์ฒด๋ ์คํ์ ์ํด ํ์ผ ๊ธฐ๋ฐ managed ์ค์ ์ ๋์ฒดํฉ๋๋ค. ๋์ฐ๋ฏธ๊ฐ ์์ ์ 0์ด ์๋ ๊ฐ์ผ๋ก ์ข
๋ฃ๋๋ฉด Claude Code๋ ์ค๋ฅ๋ฅผ ์ธ์ํ๊ณ ์์์ ๊ฑฐ๋ถํ๋ฏ๋ก ์ค๋จ ๋ณต์๋ ฅ์ด ํ์ํ ๋์ฐ๋ฏธ๋ ์์ ์ ์บ์์์ ์ ๊ณตํ๊ณ 0์ผ๋ก ์ข
๋ฃํด์ผ ํฉ๋๋ค.
์ค์ ์ฐ์ ์์
์ค์ ์ ์ฐ์ ์์ ์์๋๋ก ์ ์ฉ๋ฉ๋๋ค. ๊ฐ์ฅ ๋์์์ ๊ฐ์ฅ ๋ฎ์:
-
Managed ์ค์ (์๋ฒ ๊ด๋ฆฌ, MDM/OS ์์ค ์ ์ฑ ๋๋ managed ์ค์ )
- IT์์ ์๋ฒ ์ ๋ฌ, MDM ๊ตฌ์ฑ ํ๋กํ, ๋ ์ง์คํธ๋ฆฌ ์ ์ฑ ๋๋ managed ์ค์ ํ์ผ์ ํตํด ๋ฐฐํฌํ ์ ์ฑ
- ๋ช ๋ น์ค ์ธ์๋ฅผ ํฌํจํ ๋ค๋ฅธ ์์ค์ผ๋ก ์ฌ์ ์ํ ์ ์์
- Managed ๊ณ์ธต ๋ด์์ ์ฐ์ ์์๋: ์๋ฒ ๊ด๋ฆฌ > MDM/OS ์์ค ์ ์ฑ
> ํ์ผ ๊ธฐ๋ฐ (
managed-settings.d/*.json+managed-settings.json) > HKCU ๋ ์ง์คํธ๋ฆฌ (Windows๋ง). ํ๋์ managed ์์ค๋ง ์ฌ์ฉ๋๋ฉฐ ์์ค๋ ๋ณํฉ๋์ง ์์ต๋๋ค. ํ์ผ ๊ธฐ๋ฐ ๊ณ์ธต ๋ด์์ ๋๋กญ์ธ ํ์ผ๊ณผ ๊ธฐ๋ณธ ํ์ผ์ด ํจ๊ป ๋ณํฉ๋ฉ๋๋ค.
-
๋ช ๋ น์ค ์ธ์
- ํน์ ์ธ์
์ ๋ํ ์์ ์ฌ์ ์.
--settings <file-or-json>์ ํตํด ์ ๋ฌ๋ JSON์ ํ์ผ ๊ธฐ๋ฐ ์ค์ ๊ณผ ๋์ผํ ๊ท์น์ ์ฌ์ฉํ์ฌ ๋ณํฉ๋ฉ๋๋ค: ์ฌ๊ธฐ์ ์ค์ ๋ ํค๋ local, project ๋๋ user ์ค์ ์ ๋์ผํ ํค๋ฅผ ์ฌ์ ์ํ๊ณ , ํค๋ฅผ ์๋ตํ๋ฉด ๋ฎ์ ๊ณ์ธต ๊ฐ์ด ์ ์ง๋ฉ๋๋ค
- ํน์ ์ธ์
์ ๋ํ ์์ ์ฌ์ ์.
-
Local ํ๋ก์ ํธ ์ค์ (
.claude/settings.local.json)- ๊ฐ์ธ ํ๋ก์ ํธ ํน์ ์ค์
-
๊ณต์ ํ๋ก์ ํธ ์ค์ (
.claude/settings.json)- ์์ค ์ ์ด์ ํ ๊ณต์ ํ๋ก์ ํธ ์ค์
-
์ฌ์ฉ์ ์ค์ (
~/.claude/settings.json)- ๊ฐ์ธ ์ ์ญ ์ค์
์ด ๊ณ์ธต ๊ตฌ์กฐ๋ ์กฐ์ง ์ ์ฑ ์ด ํญ์ ์ ์ฉ๋๋ฉด์๋ ํ๊ณผ ๊ฐ์ธ์ด ์์ ์ ๊ฒฝํ์ ์ฌ์ฉ์ ์ ์ํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค. CLI, VS Code ํ์ฅ ๋๋ JetBrains IDE์์ Claude Code๋ฅผ ์คํํ๋ ๋์ผํ ์ฐ์ ์์๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ฌ์ฉ์ ์ค์ ์ด permissions.defaultMode๋ฅผ acceptEdits๋ก ์ค์ ํ์ง๋ง ํ๋ก์ ํธ์ ๊ณต์ ์ค์ ์ด ์ด๋ฅผ default๋ก ์ค์ ํ๋ฉด ํ๋ก์ ํธ ๊ฐ์ด ์ ์ฉ๋ฉ๋๋ค. ์๋ ์์ ๋ ๋ฐฐ์ด ๊ฐ ์ค์ (์: ๊ถํ ๊ท์น)์ด ๋์ ์ด๋ป๊ฒ ๊ฒฐํฉ๋๋์ง๋ฅผ ๋ค๋ฃน๋๋ค.
๋ฐฐ์ด ์ค์ ์ ๋ฒ์ ์ ์ฒด์์ ๋ณํฉ๋ฉ๋๋ค. ๋์ผํ ๋ฐฐ์ด ๊ฐ ์ค์ (์: sandbox.filesystem.allowWrite ๋๋ permissions.allow)์ด ์ฌ๋ฌ ๋ฒ์์ ๋ํ๋๋ฉด ๋ฐฐ์ด์ ์ฐ๊ฒฐ๋๊ณ ์ค๋ณต ์ ๊ฑฐ๋๋ฉฐ ๋์ฒด๋์ง ์์ต๋๋ค. ์ด๋ ๋ฎ์ ์ฐ์ ์์ ๋ฒ์๊ฐ ๋์ ์ฐ์ ์์ ๋ฒ์์์ ์ค์ ํ ํญ๋ชฉ์ ์ฌ์ ์ํ์ง ์๊ณ ํญ๋ชฉ์ ์ถ๊ฐํ ์ ์์์ ์๋ฏธํ๋ฉฐ ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ์๋ฅผ ๋ค์ด managed ์ค์ ์ด allowWrite๋ฅผ ["/opt/company-tools"]๋ก ์ค์ ํ๊ณ ์ฌ์ฉ์๊ฐ ["~/.kube"]๋ฅผ ์ถ๊ฐํ๋ฉด ๋ ๊ฒฝ๋ก ๋ชจ๋ ์ต์ข
๊ตฌ์ฑ์ ํฌํจ๋ฉ๋๋ค.
ํ์ฑ ์ค์ ํ์ธ
Claude Code ๋ด์์ /status๋ฅผ ์คํํ์ฌ ์ด๋ค ์ค์ ์์ค๊ฐ ํ์ฑํ๋์ด ์๊ณ ์ด๋์์ ์ค๋์ง ํ์ธํฉ๋๋ค. ์ถ๋ ฅ์ ๊ฐ ๊ตฌ์ฑ ๊ณ์ธต (managed, user, project)์ Enterprise managed settings (remote), Enterprise managed settings (plist), Enterprise managed settings (HKLM), Enterprise managed settings (HKCU) ๋๋ Enterprise managed settings (file)๊ณผ ๊ฐ์ ์ถ์ฒ์ ํจ๊ป ํ์ํฉ๋๋ค. ์ค์ ํ์ผ์ ์ค๋ฅ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด /status๋ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ์ฌ ์์ ํ ์ ์์ต๋๋ค.
๊ตฌ์ฑ ์์คํ ์ ํต์ฌ ํฌ์ธํธ
- ๋ฉ๋ชจ๋ฆฌ ํ์ผ (
CLAUDE.md): Claude๊ฐ ์์ ์ ๋ก๋ํ๋ ์ง์นจ ๋ฐ ์ปจํ ์คํธ๋ฅผ ํฌํจํฉ๋๋ค - ์ค์ ํ์ผ (JSON): ๊ถํ, ํ๊ฒฝ ๋ณ์ ๋ฐ ๋๊ตฌ ๋์์ ๊ตฌ์ฑํฉ๋๋ค
- Skills:
/skill-name์ผ๋ก ํธ์ถํ๊ฑฐ๋ Claude๊ฐ ์๋์ผ๋ก ๋ก๋ํ ์ ์๋ ์ฌ์ฉ์ ์ ์ ํ๋กฌํํธ - MCP servers: ์ถ๊ฐ ๋๊ตฌ ๋ฐ ํตํฉ์ผ๋ก Claude Code๋ฅผ ํ์ฅํฉ๋๋ค
- ์ฐ์ ์์: ๋์ ์์ค ๊ตฌ์ฑ (Managed)์ด ๋ฎ์ ์์ค (User/Project)์ ์ฌ์ ์ํฉ๋๋ค
- ์์: ์ค์ ์ ๋ณํฉ๋๋ฉฐ ๋ ๊ตฌ์ฒด์ ์ธ ์ค์ ์ด ๋ ๊ด๋ฒ์ํ ์ค์ ์ ์ถ๊ฐํ๊ฑฐ๋ ์ฌ์ ์ํฉ๋๋ค
์์คํ ํ๋กฌํํธ
Claude Code์ ๋ด๋ถ ์์คํ
ํ๋กฌํํธ๋ ๊ฒ์๋์ง ์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ ์ง์นจ์ ์ถ๊ฐํ๋ ค๋ฉด CLAUDE.md ํ์ผ ๋๋ --append-system-prompt ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฏผ๊ฐํ ํ์ผ ์ ์ธ
API ํค, ๋น๋ฐ ๋ฐ ํ๊ฒฝ ํ์ผ๊ณผ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ํฌํจ๋ ํ์ผ์์ Claude Code๊ฐ ์ก์ธ์คํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด .claude/settings.json ํ์ผ์์ permissions.deny ์ค์ ์ ์ฌ์ฉํฉ๋๋ค:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(./config/credentials.json)",
"Read(./build)"
]
}
}
์ด๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ignorePatterns ๊ตฌ์ฑ์ ๋์ฒดํฉ๋๋ค. ์ด๋ฌํ ํจํด๊ณผ ์ผ์นํ๋ ํ์ผ์ ํ์ผ ๊ฒ์ ๋ฐ ๊ฒ์ ๊ฒฐ๊ณผ์์ ์ ์ธ๋๋ฉฐ ์ด๋ฌํ ํ์ผ์ ๋ํ ์ฝ๊ธฐ ์์
์ด ๊ฑฐ๋ถ๋ฉ๋๋ค.
Subagent ๊ตฌ์ฑ
Claude Code๋ ์ฌ์ฉ์ ๋ฐ ํ๋ก์ ํธ ์์ค ๋ชจ๋์์ ๊ตฌ์ฑํ ์ ์๋ ์ฌ์ฉ์ ์ ์ AI subagents๋ฅผ ์ง์ํฉ๋๋ค. ์ด๋ฌํ subagents๋ YAML frontmatter๊ฐ ์๋ Markdown ํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค:
- ์ฌ์ฉ์ subagents:
~/.claude/agents/- ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉ ๊ฐ๋ฅ - ํ๋ก์ ํธ subagents:
.claude/agents/- ํ๋ก์ ํธ์ ํน์ ์ด๋ฉฐ ํ๊ณผ ๊ณต์ ํ ์ ์์
Subagent ํ์ผ์ ์ฌ์ฉ์ ์ ์ ํ๋กฌํํธ ๋ฐ ๋๊ตฌ ๊ถํ์ด ์๋ ํนํ๋ AI ์ด์์คํดํธ๋ฅผ ์ ์ํฉ๋๋ค. subagents ๋ฌธ์์์ subagents ์์ฑ ๋ฐ ์ฌ์ฉ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ
Claude Code๋ skills, agents, hooks ๋ฐ MCP servers๋ก ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์๋ ํ๋ฌ๊ทธ์ธ ์์คํ ์ ์ง์ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋ง์ผํ๋ ์ด์ค๋ฅผ ํตํด ๋ฐฐํฌ๋๋ฉฐ ์ฌ์ฉ์ ๋ฐ ์ ์ฅ์ ์์ค ๋ชจ๋์์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
ํ๋ฌ๊ทธ์ธ ์ค์
settings.json์ ํ๋ฌ๊ทธ์ธ ๊ด๋ จ ์ค์ :
{
"enabledPlugins": {
"formatter@acme-tools": true,
"deployer@acme-tools": true,
"analyzer@security-plugins": false
},
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
}
}
}
enabledPlugins
์ด๋ค ํ๋ฌ๊ทธ์ธ์ด ํ์ฑํ๋๋์ง ์ ์ดํฉ๋๋ค. ํ์: "plugin-name@marketplace-name": true/false
๋ฒ์:
- ์ฌ์ฉ์ ์ค์ (
~/.claude/settings.json): ๊ฐ์ธ ํ๋ฌ๊ทธ์ธ ์ค์ - ํ๋ก์ ํธ ์ค์ (
.claude/settings.json): ํ๊ณผ ๊ณต์ ๋๋ ํ๋ก์ ํธ ํน์ ํ๋ฌ๊ทธ์ธ - Local ์ค์ (
.claude/settings.local.json): ๋จธ์ ๋ณ ์ฌ์ ์ (์ปค๋ฐ๋์ง ์์) - Managed ์ค์ (
managed-settings.json): ๋ชจ๋ ๋ฒ์์์ ์ค์น๋ฅผ ์ฐจ๋จํ๊ณ ๋ง์ผํ๋ ์ด์ค์์ ํ๋ฌ๊ทธ์ธ์ ์จ๊ธฐ๋ ์กฐ์ง ์ ์ฒด ์ ์ฑ ์ฌ์ ์
ํ๋ก์ ํธ ์ค์ ์ ์ฌ์ฉ์ ์ค์ ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋์ผ๋ฏ๋ก ~/.claude/settings.json์์ ํ๋ฌ๊ทธ์ธ์ false๋ก ์ค์ ํด๋ ํ๋ก์ ํธ์ .claude/settings.json์ด ํ์ฑํํ๋ ํ๋ฌ๊ทธ์ธ์ ๋นํ์ฑํ๋์ง ์์ต๋๋ค. ๋จธ์ ์์ ํ๋ก์ ํธ ํ์ฑํ ํ๋ฌ๊ทธ์ธ์ ๊ฑฐ๋ถํ๋ ค๋ฉด ๋์ .claude/settings.local.json์์ false๋ก ์ค์ ํฉ๋๋ค.
Managed ์ค์ ์ผ๋ก ๊ฐ์ ํ์ฑํ๋ ํ๋ฌ๊ทธ์ธ์ managed ์ค์ ์ด local ์ค์ ์ ์ฌ์ ์ํ๋ฏ๋ก ์ด ๋ฐฉ์์ผ๋ก ๋นํ์ฑํํ ์ ์์ต๋๋ค.
์์ :
{
"enabledPlugins": {
"code-formatter@team-tools": true,
"deployment-tools@team-tools": true,
"experimental-features@personal": false
}
}
extraKnownMarketplaces
์ ์ฅ์์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํด์ผ ํ ์ถ๊ฐ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ ๋ฉค๋ฒ๊ฐ ํ์ํ ํ๋ฌ๊ทธ์ธ ์์ค์ ์ก์ธ์คํ ์ ์๋๋ก ์ ์ฅ์ ์์ค ์ค์ ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ ์ฅ์์ extraKnownMarketplaces๊ฐ ํฌํจ๋๋ฉด:
- ํ ๋ฉค๋ฒ๋ ํด๋๋ฅผ ์ ๋ขฐํ ๋ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ค์นํ๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค
- ๊ทธ ๋ค์ ํ ๋ฉค๋ฒ๋ ํด๋น ๋ง์ผํ๋ ์ด์ค์์ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค
- ์ฌ์ฉ์๋ ์ํ์ง ์๋ ๋ง์ผํ๋ ์ด์ค ๋๋ ํ๋ฌ๊ทธ์ธ์ ๊ฑด๋๋ธ ์ ์์ต๋๋ค (์ฌ์ฉ์ ์ค์ ์ ์ ์ฅ๋จ)
- ์ค์น๋ ์ ๋ขฐ ๊ฒฝ๊ณ๋ฅผ ์กด์คํ๊ณ ๋ช ์์ ๋์๊ฐ ํ์ํฉ๋๋ค
์์ :
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
},
"security-plugins": {
"source": {
"source": "git",
"url": "https://git.example.com/security/plugins.git"
}
}
}
}
๋ง์ผํ๋ ์ด์ค ์์ค ์ ํ:
github: GitHub ์ ์ฅ์ (repo์ฌ์ฉ)git: ๋ชจ๋ git URL (url์ฌ์ฉ)directory: ๋ก์ปฌ ํ์ผ ์์คํ ๊ฒฝ๋ก (path์ฌ์ฉ, ๊ฐ๋ฐ ์ ์ฉ)hostPattern: ๋ง์ผํ๋ ์ด์ค ํธ์คํธ์ ์ผ์นํ๋ ์ ๊ท์ ํจํด (hostPattern์ฌ์ฉ)settings: ๋ณ๋์ ํธ์คํ ์ ์ฅ์ ์์ด settings.json์ ์ง์ ์ ์ธ๋ ์ธ๋ผ์ธ ๋ง์ผํ๋ ์ด์ค (name๋ฐplugins์ฌ์ฉ)
๊ฐ ๋ง์ผํ๋ ์ด์ค ํญ๋ชฉ์ ์ ํ์ autoUpdate Boolean๋ ํ์ฉํฉ๋๋ค. source์ ํจ๊ป "autoUpdate": true๋ฅผ ์ค์ ํ์ฌ Claude Code๊ฐ ํด๋น ๋ง์ผํ๋ ์ด์ค๋ฅผ ์๋ก๊ณ ์นจํ๊ณ ์์ ์ ์ค์น๋ ํ๋ฌ๊ทธ์ธ์ ์
๋ฐ์ดํธํ๋๋ก ํฉ๋๋ค. ์๋ตํ๋ฉด ๊ณต์ Anthropic ๋ง์ผํ๋ ์ด์ค๋ ๊ธฐ๋ณธ๊ฐ์ด true์ด๊ณ ๋ค๋ฅธ ๋ชจ๋ ๋ง์ผํ๋ ์ด์ค๋ ๊ธฐ๋ณธ๊ฐ์ด false์
๋๋ค. ์๋ ์
๋ฐ์ดํธ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
source: 'settings'๋ฅผ ์ฌ์ฉํ์ฌ ํธ์คํ
๋ ๋ง์ผํ๋ ์ด์ค ์ ์ฅ์๋ฅผ ์ค์ ํ์ง ์๊ณ ์์ ํ๋ฌ๊ทธ์ธ ์ธํธ๋ฅผ ์ธ๋ผ์ธ์ผ๋ก ์ ์ธํฉ๋๋ค. ์ฌ๊ธฐ์ ๋์ด๋ ํ๋ฌ๊ทธ์ธ์ GitHub ๋๋ npm๊ณผ ๊ฐ์ ์ธ๋ถ ์์ค๋ฅผ ์ฐธ์กฐํด์ผ ํฉ๋๋ค. ์ฌ์ ํ enabledPlugins์์ ๊ฐ ํ๋ฌ๊ทธ์ธ์ ๋ณ๋๋ก ํ์ฑํํด์ผ ํฉ๋๋ค.
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {
"source": "settings",
"name": "team-tools",
"plugins": [
{
"name": "code-formatter",
"source": {
"source": "github",
"repo": "acme-corp/code-formatter"
}
}
]
}
}
}
}
strictKnownMarketplaces
Managed ์ค์ ๋ง: ์ฌ์ฉ์๊ฐ ์ถ๊ฐํ ์ ์๋ ํ๋ฌ๊ทธ์ธ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ ์ดํฉ๋๋ค. ์ด ์ค์ ์ managed ์ค์ ์์๋ง ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ ๊ด๋ฆฌ์์๊ฒ ๋ง์ผํ๋ ์ด์ค ์์ค์ ๋ํ ์๊ฒฉํ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
Managed ์ค์ ํ์ผ ์์น:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux ๋ฐ WSL:
/etc/claude-code/managed-settings.json - Windows:
C:\Program Files\ClaudeCode\managed-settings.json
์ฃผ์ ํน์ฑ:
- Managed ์ค์ (
managed-settings.json)์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ - ์ฌ์ฉ์ ๋๋ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ์ฌ์ ์ํ ์ ์์ (์ต๊ณ ์ฐ์ ์์)
- ๋คํธ์ํฌ/ํ์ผ ์์คํ ์์ ์ ์ ์ ์ฉ๋จ (์ฐจ๋จ๋ ์์ค๋ ์คํ๋์ง ์์)
hostPattern๋ฐpathPattern์ ์ ์ธํ ์์ค ์ฌ์์ ๋ํด ์ ํํ ์ผ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค.hostPattern๋ฐpathPattern์ ์ ๊ท์ ์ผ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค
ํ์ฉ ๋ชฉ๋ก ๋์:
undefined(๊ธฐ๋ณธ๊ฐ): ์ ํ ์์ - ์ฌ์ฉ์๋ ๋ชจ๋ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ถ๊ฐํ ์ ์์- ๋น ๋ฐฐ์ด
[]: ์์ ์ ๊ธ - ์ฌ์ฉ์๋ ์ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ถ๊ฐํ ์ ์์ - ์์ค ๋ชฉ๋ก: ์ฌ์ฉ์๋ ์ ํํ ์ผ์นํ๋ ๋ง์ผํ๋ ์ด์ค๋ง ์ถ๊ฐํ ์ ์์
์ง์๋๋ ๋ชจ๋ ์์ค ์ ํ:
ํ์ฉ ๋ชฉ๋ก์ ์ฌ๋ฌ ๋ง์ผํ๋ ์ด์ค ์์ค ์ ํ์ ์ง์ํฉ๋๋ค. ๋๋ถ๋ถ์ ์์ค๋ ์ ํํ ์ผ์น๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ฉด hostPattern ๋ฐ pathPattern์ ๋ง์ผํ๋ ์ด์ค ํธ์คํธ ๋ฐ ํ์ผ ์์คํ
๊ฒฝ๋ก์ ๋ํ ์ ๊ท์ ์ผ์น๋ฅผ ๊ฐ๊ฐ ์ฌ์ฉํฉ๋๋ค.
- GitHub ์ ์ฅ์:
{ "source": "github", "repo": "acme-corp/approved-plugins" }
{ "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }
ํ๋: repo (ํ์), ref (์ ํ: ๋ถ๊ธฐ/ํ๊ทธ/SHA), path (์ ํ: ํ์ ๋๋ ํ ๋ฆฌ)
- Git ์ ์ฅ์:
{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }
{ "source": "git", "url": "https://bitbucket.org/acme-corp/plugins.git", "ref": "production" }
{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }
ํ๋: url (ํ์), ref (์ ํ: ๋ถ๊ธฐ/ํ๊ทธ/SHA), path (์ ํ: ํ์ ๋๋ ํ ๋ฆฌ)
- URL ๊ธฐ๋ฐ ๋ง์ผํ๋ ์ด์ค:
{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }
{ "source": "url", "url": "https://cdn.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }
ํ๋: url (ํ์), headers (์ ํ: ์ธ์ฆ๋ ์ก์ธ์ค๋ฅผ ์ํ HTTP ํค๋)
URL ๊ธฐ๋ฐ ๋ง์ผํ๋ ์ด์ค๋ marketplace.json ํ์ผ๋ง ๋ค์ด๋ก๋ํฉ๋๋ค. ์๋ฒ์์ ํ๋ฌ๊ทธ์ธ ํ์ผ์ ๋ค์ด๋ก๋ํ์ง ์์ต๋๋ค. URL ๊ธฐ๋ฐ ๋ง์ผํ๋ ์ด์ค์ ํ๋ฌ๊ทธ์ธ์ ์๋ ๊ฒฝ๋ก๊ฐ ์๋ ์ธ๋ถ ์์ค (GitHub, npm ๋๋ git URL)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋ ๊ฒฝ๋ก๊ฐ ์๋ ํ๋ฌ๊ทธ์ธ์ ๊ฒฝ์ฐ ๋์ Git ๊ธฐ๋ฐ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
- NPM ํจํค์ง:
{ "source": "npm", "package": "@acme-corp/claude-plugins" }
{ "source": "npm", "package": "@acme-corp/approved-marketplace" }
ํ๋: package (ํ์, ๋ฒ์๊ฐ ์ง์ ๋ ํจํค์ง ์ง์)
- ํ์ผ ๊ฒฝ๋ก:
{ "source": "file", "path": "/usr/local/share/claude/acme-marketplace.json" }
{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }
ํ๋: path (ํ์: marketplace.json ํ์ผ์ ์ ๋ ๊ฒฝ๋ก)
- ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก:
{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }
{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }
ํ๋: path (ํ์: .claude-plugin/marketplace.json์ ํฌํจํ๋ ๋๋ ํ ๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก)
- ํธ์คํธ ํจํด ์ผ์น:
{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }
{ "source": "hostPattern", "hostPattern": "^gitlab\\.internal\\.example\\.com$" }
ํ๋: hostPattern (ํ์: ๋ง์ผํ๋ ์ด์ค ํธ์คํธ์ ์ผ์นํ๋ ์ ๊ท์ ํจํด)
๊ฐ ์ ์ฅ์๋ฅผ ์ด๊ฑฐํ์ง ์๊ณ ํน์ ํธ์คํธ์ ๋ชจ๋ ๋ง์ผํ๋ ์ด์ค๋ฅผ ํ์ฉํ๋ ค๋ฉด ํธ์คํธ ํจํด ์ผ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ์์ ์ ๋ง์ผํ๋ ์ด์ค๋ฅผ ๋ง๋๋ ๋ด๋ถ GitHub Enterprise ๋๋ GitLab ์๋ฒ๊ฐ ์๋ ์กฐ์ง์ ์ ์ฉํฉ๋๋ค.
์์ค ์ ํ๋ณ ํธ์คํธ ์ถ์ถ:
github: ํญ์github.com์ ๋ํด ์ผ์นgit: URL์์ ํธ์คํธ ์ด๋ฆ ์ถ์ถ (HTTPS ๋ฐ SSH ํ์ ์ง์)url: URL์์ ํธ์คํธ ์ด๋ฆ ์ถ์ถnpm,file,directory: ํธ์คํธ ํจํด ์ผ์น์ ์ง์๋์ง ์์
- ๊ฒฝ๋ก ํจํด ์ผ์น:
{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }
{ "source": "pathPattern", "pathPattern": ".*" }
ํ๋: pathPattern (ํ์: file ๋ฐ directory ์์ค์ path ํ๋์ ์ผ์นํ๋ ์ ๊ท์ ํจํด)
๋คํธ์ํฌ ์์ค์ ๋ํ hostPattern ์ ํ๊ณผ ํจ๊ป ํ์ผ ์์คํ
๊ธฐ๋ฐ ๋ง์ผํ๋ ์ด์ค๋ฅผ ํ์ฉํ๋ ค๋ฉด ๊ฒฝ๋ก ํจํด ์ผ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ ๋ก์ปฌ ๊ฒฝ๋ก๋ฅผ ํ์ฉํ๋ ค๋ฉด ".*"๋ฅผ ์ค์ ํ๊ฑฐ๋ ํน์ ๋๋ ํ ๋ฆฌ๋ก ์ ํํ๋ ค๋ฉด ๋ ์ข์ ํจํด์ ์ค์ ํฉ๋๋ค.
๊ตฌ์ฑ ์์ :
์์ : ํน์ ๋ง์ผํ๋ ์ด์ค๋ง ํ์ฉ:
{
"strictKnownMarketplaces": [
{
"source": "github",
"repo": "acme-corp/approved-plugins"
},
{
"source": "github",
"repo": "acme-corp/security-tools",
"ref": "v2.0"
},
{
"source": "url",
"url": "https://plugins.example.com/marketplace.json"
},
{
"source": "npm",
"package": "@acme-corp/compliance-plugins"
}
]
}
์์ - ๋ชจ๋ ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ ๋นํ์ฑํ:
{
"strictKnownMarketplaces": []
}
์์ : ๋ด๋ถ git ์๋ฒ์ ๋ชจ๋ ๋ง์ผํ๋ ์ด์ค ํ์ฉ:
{
"strictKnownMarketplaces": [
{
"source": "hostPattern",
"hostPattern": "^github\\.example\\.com$"
}
]
}
์ ํํ ์ผ์น ์๊ตฌ ์ฌํญ:
๋ง์ผํ๋ ์ด์ค ์์ค๋ ์ฌ์ฉ์์ ์ถ๊ฐ๊ฐ ํ์ฉ๋๋ ค๋ฉด ์ ํํ ์ผ์นํด์ผ ํฉ๋๋ค. git ๊ธฐ๋ฐ ์์ค (github ๋ฐ git)์ ๊ฒฝ์ฐ ์ด๋ ๋ชจ๋ ์ ํ์ ํ๋๋ฅผ ํฌํจํฉ๋๋ค:
repo๋๋url์ด ์ ํํ ์ผ์นํด์ผ ํจrefํ๋๊ฐ ์ ํํ ์ผ์นํด์ผ ํจ (๋๋ ๋ ๋ค ์ ์๋์ง ์์)pathํ๋๊ฐ ์ ํํ ์ผ์นํด์ผ ํจ (๋๋ ๋ ๋ค ์ ์๋์ง ์์)
์ผ์นํ์ง ์๋ ์์ค์ ์:
// ์ด๋ค์ ๋ค๋ฅธ ์์ค์
๋๋ค:
{ "source": "github", "repo": "acme-corp/plugins" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }
// ์ด๊ฒ๋ ๋ค๋ฆ
๋๋ค:
{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }
{ "source": "github", "repo": "acme-corp/plugins" }
extraKnownMarketplaces์์ ๋น๊ต:
| ์ธก๋ฉด | strictKnownMarketplaces |
extraKnownMarketplaces |
|---|---|---|
| ๋ชฉ์ | ์กฐ์ง ์ ์ฑ ์ ์ฉ | ํ ํธ์ |
| ์ค์ ํ์ผ | managed-settings.json๋ง |
๋ชจ๋ ์ค์ ํ์ผ |
| ๋์ | ํ์ฉ ๋ชฉ๋ก์ ์๋ ์ถ๊ฐ ์ฐจ๋จ | ๋๋ฝ๋ ๋ง์ผํ๋ ์ด์ค ์๋ ์ค์น |
| ์ ์ฉ ์๊ธฐ | ๋คํธ์ํฌ/ํ์ผ ์์คํ ์์ ์ | ์ฌ์ฉ์ ์ ๋ขฐ ํ๋กฌํํธ ํ |
| ์ฌ์ ์ ๊ฐ๋ฅ | ์๋์ค (์ต๊ณ ์ฐ์ ์์) | ์ (๋์ ์ฐ์ ์์ ์ค์ ์ผ๋ก) |
| ์์ค ํ์ | ์ง์ ์์ค ๊ฐ์ฒด | ์ค์ฒฉ๋ ์์ค๊ฐ ์๋ ๋ช ๋ช ๋ ๋ง์ผํ๋ ์ด์ค |
| ์ฌ์ฉ ์ฌ๋ก | ๊ท์ ์ค์, ๋ณด์ ์ ํ | ์จ๋ณด๋ฉ, ํ์คํ |
ํ์ ์ฐจ์ด:
strictKnownMarketplaces๋ ์ง์ ์์ค ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํฉ๋๋ค:
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "acme-corp/plugins" }
]
}
extraKnownMarketplaces๋ ๋ช
๋ช
๋ ๋ง์ผํ๋ ์ด์ค๊ฐ ํ์ํฉ๋๋ค:
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": { "source": "github", "repo": "acme-corp/plugins" }
}
}
}
ํจ๊ป ์ฌ์ฉ:
strictKnownMarketplaces๋ ์ ์ฑ
๊ฒ์ดํธ์
๋๋ค: ์ฌ์ฉ์๊ฐ ์ถ๊ฐํ ์ ์๋ ๊ฒ์ ์ ์ดํ์ง๋ง ๋ง์ผํ๋ ์ด์ค๋ฅผ ๋ฑ๋กํ์ง ์์ต๋๋ค. ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์ํด ๋ง์ผํ๋ ์ด์ค๋ฅผ ์ ํํ๊ณ ์ฌ์ ๋ฑ๋กํ๋ ค๋ฉด managed-settings.json์์ ๋ ๋ค ์ค์ ํฉ๋๋ค:
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "acme-corp/plugins" }
],
"extraKnownMarketplaces": {
"acme-tools": {
"source": { "source": "github", "repo": "acme-corp/plugins" }
}
}
}
strictKnownMarketplaces๋ง ์ค์ ๋๋ฉด ์ฌ์ฉ์๋ ์ฌ์ ํ /plugin marketplace add๋ฅผ ํตํด ํ์ฉ๋ ๋ง์ผํ๋ ์ด์ค๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ ์ ์์ง๋ง ์๋์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ์ง ์์ต๋๋ค.
์ค์ ์ฐธ๊ณ ์ฌํญ:
- ์ ํ์ ๋คํธ์ํฌ ์์ฒญ ๋๋ ํ์ผ ์์คํ ์์ ์ ์ ํ์ธ๋จ
- ์ฐจ๋จ๋๋ฉด ์ฌ์ฉ์๋ ์์ค๊ฐ managed ์ ์ฑ ์ผ๋ก ์ฐจ๋จ๋์์์ ๋ํ๋ด๋ ๋ช ํํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ด ๋๋ค
- ์ ํ์ ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ ๋ฐ ํ๋ฌ๊ทธ์ธ ์ค์น, ์ ๋ฐ์ดํธ, ์๋ก๊ณ ์นจ ๋ฐ ์๋ ์ ๋ฐ์ดํธ์ ์ ์ฉ๋ฉ๋๋ค. ์ ์ฑ ์ด ์ค์ ๋๊ธฐ ์ ์ ์ถ๊ฐ๋ ๋ง์ผํ๋ ์ด์ค๋ ํด๋น ์์ค๊ฐ ๋ ์ด์ ํ์ฉ ๋ชฉ๋ก๊ณผ ์ผ์นํ์ง ์์ผ๋ฉด ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค
- Managed ์ค์ ์ ์ต๊ณ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ ์ฌ์ ์ํ ์ ์์ต๋๋ค
์ฌ์ฉ์ ๋๋ฉด ๋ฌธ์๋ Managed ๋ง์ผํ๋ ์ด์ค ์ ํ์ ์ฐธ์กฐํ์ธ์.
ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ
/plugin ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํ๋ฌ๊ทธ์ธ์ ๋ํํ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค:
- ๋ง์ผํ๋ ์ด์ค์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ฌ๊ทธ์ธ ์ฐพ์๋ณด๊ธฐ
- ํ๋ฌ๊ทธ์ธ ์ค์น/์ ๊ฑฐ
- ํ๋ฌ๊ทธ์ธ ํ์ฑํ/๋นํ์ฑํ
- ํ๋ฌ๊ทธ์ธ ์ธ๋ถ ์ ๋ณด ๋ณด๊ธฐ (์ ๊ณต๋๋ skills, agents, hooks)
- ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ/์ ๊ฑฐ
ํ๋ฌ๊ทธ์ธ ๋ฌธ์์์ ํ๋ฌ๊ทธ์ธ ์์คํ ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
ํ๊ฒฝ ๋ณ์
ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ ํ์ผ์ ํธ์งํ์ง ์๊ณ Claude Code ๋์์ ์ ์ดํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ณ์๋ settings.json์ env ํค ์๋์์ ๊ตฌ์ฑํ์ฌ ๋ชจ๋ ์ธ์
์ ์ ์ฉํ๊ฑฐ๋ ํ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ ์ฒด ๋ชฉ๋ก์ ํ๊ฒฝ ๋ณ์ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
Claude๊ฐ ์ฌ์ฉํ ์ ์๋ ๋๊ตฌ
Claude Code๋ ํ์ผ ์ฝ๊ธฐ, ํธ์ง, ๊ฒ์, ๋ช ๋ น ์คํ ๋ฐ subagents ์กฐ์จ์ ์ํ ๋๊ตฌ ์ธํธ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋๊ตฌ ์ด๋ฆ์ ๊ถํ ๊ท์น ๋ฐ hook ๋งค์ฒ์์ ์ฌ์ฉํ๋ ์ ํํ ๋ฌธ์์ด์ ๋๋ค.
์ ์ฒด ๋ชฉ๋ก ๋ฐ Bash ๋๊ตฌ ๋์ ์ธ๋ถ ์ฌํญ์ ๋๊ตฌ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ ํญ๋ชฉ
- ๊ถํ: ๊ถํ ์์คํ , ๊ท์น ๊ตฌ๋ฌธ, ๋๊ตฌ ํน์ ํจํด ๋ฐ ๊ด๋ฆฌํ ์ ์ฑ
- ์ธ์ฆ: Claude Code์ ๋ํ ์ฌ์ฉ์ ์ก์ธ์ค ์ค์
- ๊ตฌ์ฑ ๋๋ฒ๊น : ์ค์ , ํ ๋๋ MCP ์๋ฒ๊ฐ ์ ์ฉ๋์ง ์๋ ์ด์ ๋ฅผ ์ง๋จํฉ๋๋ค
- ์ค์น ๋ฐ ๋ก๊ทธ์ธ ๋ฌธ์ ํด๊ฒฐ: ์ค์น, ์ธ์ฆ ๋ฐ ํ๋ซํผ ๋ฌธ์