6 6
7> Claude Code 설정을 변경하고, 키가 속할 범위를 선택하고, 변경을 확인하고, 키가 여러 위치에 설정되어 있을 때 Claude Code가 사용하는 값을 알아봅니다.7> Claude Code 설정을 변경하고, 키가 속할 범위를 선택하고, 변경을 확인하고, 키가 여러 위치에 설정되어 있을 때 Claude Code가 사용하는 값을 알아봅니다.
8 8
9export const SettingsPrecedence = () => {
10 const LEVELS = [{
11 n: 1,
12 name: 'Managed settings',
13 file: 'managed-settings.json, MDM, or the claude.ai console',
14 who: 'Your organization',
15 w: 390
16 }, {
17 n: 2,
18 name: 'Command line',
19 file: 'claude --settings',
20 who: 'You, this session',
21 w: 420
22 }, {
23 n: 3,
24 name: 'Project local',
25 file: '.claude/settings.local.json',
26 who: 'You, this project',
27 w: 480
28 }, {
29 n: 4,
30 name: 'Shared project',
31 file: '.claude/settings.json',
32 who: 'Everyone in the project',
33 w: 540
34 }, {
35 n: 5,
36 name: 'User',
37 file: '~/.claude/settings.json',
38 who: 'You, every project',
39 w: 600
40 }];
41 const W = 760;
42 const ROW = 58;
43 const GAP = 8;
44 const TOP = 34;
45 const H = TOP + LEVELS.length * (ROW + GAP) + 30;
46 const cx = W / 2;
47 const mono = 'var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)';
48 const sans = 'var(--font-sans, system-ui, -apple-system, sans-serif)';
49 return <div className="sp-root not-prose" role="img" aria-label="Settings precedence, highest first: managed settings, command line, project local, shared project, user. A key set at a higher level overrides the same key set lower down.">
50 <style>{`
51 .sp-root { --sp-text: #1A1918; --sp-sub: #5E5D59; --sp-faint: #8A8880; --sp-fill: #F5F4EF; --sp-stroke: rgba(0,0,0,0.12); --sp-top: #D97757; --sp-top-fill: rgba(217,119,87,0.14); --sp-arrow: #8A8880; margin: 1.25rem 0; }
52 .dark .sp-root { --sp-text: #F1EFE9; --sp-sub: #B8B5AD; --sp-faint: #8A8880; --sp-fill: #24231F; --sp-stroke: rgba(255,255,255,0.12); --sp-top-fill: rgba(217,119,87,0.22); --sp-arrow: #8A8880; }
53 .sp-root svg { width: 100%; height: auto; display: block; max-width: ${W}px; margin: 0 auto; }
54 `}</style>
55 <svg viewBox={`0 0 ${W} ${H}`} xmlns="http://www.w3.org/2000/svg">
56 <text x={cx} y={18} textAnchor="middle" fontFamily={sans} fontSize="12.5" fontWeight="600" fill="var(--sp-sub)">Highest precedence</text>
57 {LEVELS.map((l, i) => {
58 const y = TOP + i * (ROW + GAP);
59 const x = cx - l.w / 2;
60 const top = i === 0;
61 return <g key={l.n}>
62 <rect x={x} y={y} width={l.w} height={ROW} rx={10} fill={top ? 'var(--sp-top-fill)' : 'var(--sp-fill)'} stroke={top ? 'var(--sp-top)' : 'var(--sp-stroke)'} strokeWidth={top ? 1.5 : 1} />
63 <text x={x + 14} y={y + 24} fontFamily={sans} fontSize="14" fontWeight="600" fill="var(--sp-text)">{l.n}. {l.name}</text>
64 <text x={x + 14} y={y + 43} fontFamily={mono} fontSize="11.5" fill="var(--sp-sub)">{l.file}</text>
65 <text x={x + l.w - 14} y={y + 24} textAnchor="end" fontFamily={sans} fontSize="12" fill="var(--sp-faint)">{l.who}</text>
66 </g>;
67 })}
68 <text x={cx} y={H - 10} textAnchor="middle" fontFamily={sans} fontSize="12.5" fontWeight="600" fill="var(--sp-sub)">Lowest precedence</text>
69 <g stroke="var(--sp-arrow)" strokeWidth="1.5" fill="none">
70 <line x1={W - 40} y1={TOP + 10} x2={W - 40} y2={H - 38} />
71 <path d={`M ${W - 46} ${TOP + 18} L ${W - 40} ${TOP + 10} L ${W - 34} ${TOP + 18}`} />
72 </g>
73 <text x={W - 40} y={H - 22} textAnchor="middle" fontFamily={sans} fontSize="10.5" fill="var(--sp-faint)">overrides</text>
74 </svg>
75 </div>;
76};
77
78export const SettingsScope = ({defaultSelected = 'project'}) => {
79 const FILES = [{
80 id: 'user',
81 path: '~/.claude/settings.json'
82 }, {
83 id: 'project',
84 path: 'acme-app/.claude/settings.json'
85 }, {
86 id: 'local',
87 path: 'acme-app/.claude/settings.local.json'
88 }, {
89 id: 'managed',
90 path: 'Managed settings',
91 ring: 'managed-settings.json, MDM, or the claude.ai console'
92 }];
93 const SHORT = {
94 user: '~/.claude/settings.json',
95 project: 'acme-app/.claude/settings.json',
96 local: 'acme-app/.claude/settings.local.json',
97 managed: 'managed-settings.json, MDM, or the claude.ai console'
98 };
99 const TILE_MARK = {
100 project: 'settings.json',
101 local: 'settings.local.json'
102 };
103 const initial = FILES.some(f => f.id === defaultSelected) ? defaultSelected : 'project';
104 const [sel, setSel] = useState(initial);
105 const [scale, setScale] = useState(1);
106 const [isFullscreen, setIsFullscreen] = useState(false);
107 const rootRef = useRef(null);
108 const frameRef = useRef(null);
109 const CANVAS_W = 862;
110 const CANVAS_H = 240;
111 useEffect(() => {
112 const el = frameRef.current;
113 if (!el) return;
114 const measure = () => setScale(Math.min(1, el.clientWidth / CANVAS_W));
115 measure();
116 if (typeof ResizeObserver === 'undefined') {
117 window.addEventListener('resize', measure);
118 return () => window.removeEventListener('resize', measure);
119 }
120 const ro = new ResizeObserver(measure);
121 ro.observe(el);
122 return () => ro.disconnect();
123 }, []);
124 useEffect(() => {
125 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);
126 document.addEventListener('fullscreenchange', onFsChange);
127 return () => document.removeEventListener('fullscreenchange', onFsChange);
128 }, []);
129 const toggleFullscreen = () => {
130 if (!rootRef.current) return;
131 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});
132 };
133 const COVERAGE = {
134 user: ['website', 'api', 'yacme'],
135 project: ['yacme', 'tacme', 'cacme'],
136 local: ['yacme'],
137 managed: ['website', 'api', 'yacme', 'tacme', 'cacme']
138 };
139 const RINGS = {
140 local: {
141 l: 282,
142 t: 50,
143 w: 142,
144 h: 124
145 },
146 project: {
147 l: 282,
148 t: 50,
149 w: 560,
150 h: 124
151 },
152 user: {
153 l: 2,
154 t: 34,
155 w: 446,
156 h: 198
157 },
158 managed: {
159 l: 0,
160 t: 32,
161 w: 862,
162 h: 204
163 }
164 };
165 const TILES = [{
166 id: 'website',
167 name: 'website/',
168 left: 30,
169 caption: ''
170 }, {
171 id: 'api',
172 name: 'api/',
173 left: 160,
174 caption: ''
175 }, {
176 id: 'yacme',
177 name: 'acme-app/',
178 left: 290,
179 caption: ''
180 }, {
181 id: 'tacme',
182 name: 'acme-app/',
183 left: 497,
184 caption: sel === 'project' ? 'their clone, once you commit the file' : 'their clone'
185 }, {
186 id: 'cacme',
187 name: 'acme-app/',
188 left: 704,
189 caption: sel === 'project' ? 'fresh clone, once you commit the file' : sel === 'managed' ? 'server-managed only' : 'fresh clone'
190 }];
191 const FILE_AT = {
192 user: {
193 machine: 'you',
194 tiles: []
195 },
196 project: {
197 machine: null,
198 tiles: ['yacme', 'tacme', 'cacme']
199 },
200 local: {
201 machine: null,
202 tiles: ['yacme']
203 },
204 managed: {
205 machine: null,
206 tiles: []
207 }
208 };
209 const fileAt = FILE_AT[sel];
210 const coverage = COVERAGE[sel];
211 const ring = RINGS[sel];
212 const selFile = FILES.find(f => f.id === sel);
213 const FolderIcon = ({open}) => <svg width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">
214 <path d="M1.5 4.5a1 1 0 0 1 1-1h3.2l1.3 1.5h6a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1h-10.5a1 1 0 0 1-1-1z" />
215 {open && <path d="M1.5 7.5h13" />}
216 </svg>;
217 const FileIcon = () => <svg width="10" height="10" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">
218 <path d="M4 1.5h5.5L13 5v9.5H4z" />
219 <path d="M9.5 1.5V5H13" />
220 </svg>;
221 const CloudIcon = () => <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">
222 <path d="M4.5 12.5h7a2.5 2.5 0 0 0 .4-4.97A3.5 3.5 0 0 0 5.2 6.6 3 3 0 0 0 4.5 12.5z" />
223 </svg>;
224 const LaptopIcon = () => <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">
225 <rect x="2.5" y="3" width="11" height="7.5" rx="1" />
226 <path d="M1 12.5h14" />
227 </svg>;
228 return <div ref={rootRef} className={'ssc-root not-prose' + (isFullscreen ? ' ssc-fs' : '')}>
229 <style>{`
230 .ssc-root {
231 --ssc-bg: #FFFFFF;
232 --ssc-text: #1A1918;
233 --ssc-sub: #5E5D59;
234 --ssc-faint: #8A8880;
235 --ssc-border: rgba(0,0,0,0.12);
236 --ssc-panel: #F5F4EF;
237 --ssc-tile: #FAFAF8;
238 --ssc-clay: #D97757;
239 --ssc-clay-bg: rgba(217,119,87,0.14);
240 --ssc-label: #B0562F;
241 --ssc-hover: rgba(115,114,108,0.10);
242 font-family: var(--font-sans, system-ui, -apple-system, sans-serif);
243 background: var(--ssc-bg);
244 color: var(--ssc-text);
245 border: 1px solid var(--ssc-border);
246 border-radius: 16px;
247 padding: 20px 24px 24px;
248 margin: 1.5rem 0;
249 box-sizing: border-box;
250 }
251 .dark .ssc-root {
252 --ssc-bg: #1B1A18;
253 --ssc-text: #F1EFE9;
254 --ssc-sub: #B8B5AD;
255 --ssc-faint: #8A8880;
256 --ssc-border: rgba(255,255,255,0.12);
257 --ssc-panel: #24231F;
258 --ssc-tile: #2A2925;
259 --ssc-clay-bg: rgba(217,119,87,0.20);
260 --ssc-label: #EBC9B7;
261 }
262 .ssc-fs { display: flex; flex-direction: column; justify-content: center; align-items: center; margin: 0; border-radius: 0; height: 100vh; }
263 .ssc-fs .ssc-head { width: 100%; max-width: ${CANVAS_W}px; }
264 .ssc-fs .ssc-frame { width: 100%; }
265 .ssc-mono { font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
266 .ssc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
267 .ssc-files { display: flex; gap: 8px; flex-wrap: wrap; }
268 .ssc-file {
269 font-size: 12.5px; font-weight: 430; padding: 8px 13px; border-radius: 10px; cursor: pointer;
270 border: 0.5px solid var(--ssc-border); background: var(--ssc-tile); color: var(--ssc-text);
271 white-space: nowrap; transition: background 0.2s, border-color 0.2s;
272 }
273 .ssc-file:hover { filter: brightness(0.97); }
274 .ssc-file[aria-pressed="true"] { font-weight: 600; border: 1.5px solid var(--ssc-clay); background: var(--ssc-clay-bg); }
275 .ssc-fsbtn {
276 display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0;
277 border: none; background: none; border-radius: 6px; cursor: pointer; color: var(--ssc-faint); font-size: 15px;
278 }
279 .ssc-fsbtn:hover { background: var(--ssc-hover); }
280 .ssc-frame { width: 100%; max-width: ${CANVAS_W}px; margin: 0 auto; }
281 .ssc-canvas { position: relative; width: ${CANVAS_W}px; height: ${CANVAS_H}px; transform-origin: top left; }
282 .ssc-machine { position: absolute; top: 42px; height: 182px; background: var(--ssc-panel); border-radius: 16px; }
283 .ssc-machine-label { position: absolute; top: 192px; display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; }
284 .ssc-tile {
285 position: absolute; top: 58px; width: 126px; height: 108px; border-radius: 12px; padding: 11px 12px; box-sizing: border-box;
286 background: var(--ssc-tile); border: 0.5px solid var(--ssc-border); opacity: 0.6;
287 transition: background 0.25s, border-color 0.25s, opacity 0.25s;
288 }
289 .ssc-tile.ssc-on { background: var(--ssc-clay-bg); border: 1px solid var(--ssc-clay); opacity: 1; }
290 .ssc-tile-name { display: flex; align-items: center; gap: 6px; color: var(--ssc-faint); }
291 .ssc-tile.ssc-on .ssc-tile-name { color: var(--ssc-clay); }
292 .ssc-tile-name span { font-size: 12px; font-weight: 430; white-space: nowrap; color: var(--ssc-text); }
293 .ssc-tile.ssc-on .ssc-tile-name span { font-weight: 600; }
294 .ssc-tile-caption { font-size: 10.5px; color: var(--ssc-sub); margin-top: 5px; line-height: 1.35; }
295 .ssc-filemark {
296 position: absolute; left: 5px; right: 5px; bottom: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 2px;
297 font-size: 8.5px; color: var(--ssc-label); background: var(--ssc-bg); border: 1px solid var(--ssc-clay);
298 border-radius: 6px; padding: 2px 3px; white-space: nowrap; overflow: hidden;
299 }
300 .ssc-filemark svg { flex-shrink: 0; }
301 .ssc-machine-filemark { display: inline-flex; align-items: center; gap: 4px; margin-left: 10px; font-size: 10.5px; font-weight: 500; color: var(--ssc-label); }
302 .ssc-ring {
303 position: absolute; border: 2px solid var(--ssc-clay); border-radius: 18px; pointer-events: none;
304 transition: left 0.35s ease, top 0.35s ease, width 0.35s ease, height 0.35s ease;
305 }
306 .ssc-ring-label {
307 position: absolute; font-size: 12px; font-weight: 600; color: var(--ssc-label); white-space: nowrap; pointer-events: none;
308 transition: left 0.35s ease, top 0.35s ease;
309 }
310 `}</style>
311
312 <div className="ssc-head">
313 <div className="ssc-files" role="group" aria-label="Settings file">
314 {FILES.map(f => <button key={f.id} type="button" className="ssc-file ssc-mono" aria-pressed={f.id === sel} onClick={() => setSel(f.id)}>{f.path}</button>)}
315 </div>
316 <button type="button" className="ssc-fsbtn" onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}>{isFullscreen ? '⤡' : '⛶'}</button>
317 </div>
318
319 <div ref={frameRef} className="ssc-frame" style={{
320 height: CANVAS_H * scale + 'px'
321 }}>
322 <div className="ssc-canvas" style={{
323 transform: 'scale(' + scale + ')'
324 }}>
325 <div className="ssc-machine" style={{
326 left: '10px',
327 width: '430px'
328 }} />
329 <span className="ssc-machine-label" style={{
330 left: '30px'
331 }}><LaptopIcon />Your machine{fileAt.machine === 'you' && <span className="ssc-machine-filemark ssc-mono"><FileIcon />{selFile.path}</span>}</span>
332 <div className="ssc-machine" style={{
333 left: '460px',
334 width: '200px'
335 }} />
336 <span className="ssc-machine-label" style={{
337 left: '470px'
338 }}><LaptopIcon />A teammate’s machine</span>
339 <div className="ssc-machine" style={{
340 left: '682px',
341 width: '170px'
342 }} />
343 <span className="ssc-machine-label" style={{
344 left: '692px'
345 }}><CloudIcon />A cloud session</span>
346
347 {TILES.map(t => {
348 const on = coverage.includes(t.id);
349 return <div key={t.id} className={'ssc-tile' + (on ? ' ssc-on' : '')} style={{
350 left: t.left + 'px'
351 }}>
352 <div className="ssc-tile-name"><FolderIcon open={on} /><span className="ssc-mono">{t.name}</span></div>
353 {t.caption && <div className="ssc-tile-caption">{t.caption}</div>}
354 {fileAt.tiles.includes(t.id) && <span className="ssc-filemark ssc-mono" title={SHORT[sel]}><FileIcon />{TILE_MARK[sel]}</span>}
355 </div>;
356 })}
357
358 <div className="ssc-ring" style={{
359 left: ring.l + 'px',
360 top: ring.t + 'px',
361 width: ring.w + 'px',
362 height: ring.h + 'px'
363 }} />
364 <span className="ssc-ring-label ssc-mono" style={{
365 left: ring.l + 14 + 'px',
366 top: ring.t - 26 + 'px'
367 }}>{selFile.ring || selFile.path}</span>
368 </div>
369 </div>
370 </div>;
371};
372
373설정은 Claude Code의 동작을 변경하는 JSON 키입니다: 시작할 모델, 묻지 않고 실행할 수 있는 것, 읽을 수 없는 파일, 터미널에서의 모양, 조직이 적용하는 것입니다.9설정은 Claude Code의 동작을 변경하는 JSON 키입니다: 시작할 모델, 묻지 않고 실행할 수 있는 것, 읽을 수 없는 파일, 터미널에서의 모양, 조직이 적용하는 것입니다.
374 10
375<Tip>11> [!TIP]
376 특정 키를 찾으려면 [모든 설정](/docs/ko/settings-reference)으로 이동하세요. 여기에는 설정한 파일, 기본값, 예제가 있는 모든 키가 나열됩니다.12>
377</Tip>13> 특정 키를 찾으려면 [모든 설정](/docs/ko/settings-reference)으로 이동하세요. 여기에는 설정한 파일, 기본값, 예제가 있는 모든 키가 나열됩니다.
378 14
379Claude Code는 `~/.claude/settings.json`과 같은 JSON 설정 파일에서 설정을 읽습니다. 여러 위치에서 찾으며, [읽는 파일이 설정이 누구에게 적용되는지 결정합니다](#settings-files-and-who-they-affect). 이 페이지에서는 이러한 파일을 다룹니다: 설정을 어느 파일에 넣을지, 설정을 변경하고 적용되었는지 확인하는 방법, 동일한 키가 여러 파일에 설정되어 있을 때 Claude Code가 사용하는 값입니다. [권한 구성](/docs/ko/permissions)에서는 Claude Code가 묻지 않고 실행할 수 있는 것과 `allow`, `ask`, `deny` 규칙을 작성하는 방법을 다룹니다.15Claude Code는 `~/.claude/settings.json`과 같은 JSON 설정 파일에서 설정을 읽습니다. 여러 위치에서 찾으며, [읽는 파일이 설정이 누구에게 적용되는지 결정합니다](#settings-files-and-who-they-affect). 이 페이지에서는 이러한 파일을 다룹니다: 설정을 어느 파일에 넣을지, 설정을 변경하고 적용되었는지 확인하는 방법, 동일한 키가 여러 파일에 설정되어 있을 때 Claude Code가 사용하는 값입니다. [권한 구성](/docs/ko/permissions)에서는 Claude Code가 묻지 않고 실행할 수 있는 것과 `allow`, `ask`, `deny` 규칙을 작성하는 방법을 다룹니다.
380 16
381<Note>17> [!NOTE]
382 이 페이지는 머신에서 실행되는 Claude Code를 다룹니다: 터미널, [VS Code](/docs/ko/vs-code) 및 [JetBrains](/docs/ko/jetbrains) 확장, [데스크톱 앱](/docs/ko/desktop)은 모두 동일한 설정 파일을 읽습니다. [Claude Code on the web](/docs/ko/claude-code-on-the-web)의 클라우드 세션은 다른 머신에서 실행되며 일부만 읽습니다. [클라우드 세션의 설정](#settings-in-cloud-sessions)을 참조하세요.18>
383</Note>19> 이 페이지는 머신에서 실행되는 Claude Code를 다룹니다: 터미널, [VS Code](/docs/ko/vs-code) 및 [JetBrains](/docs/ko/jetbrains) 확장, [데스크톱 앱](/docs/ko/desktop)은 모두 동일한 설정 파일을 읽습니다. [Claude Code on the web](/docs/ko/claude-code-on-the-web)의 클라우드 세션은 다른 머신에서 실행되며 일부만 읽습니다. [클라우드 세션의 설정](#settings-in-cloud-sessions)을 참조하세요.
384
385<span id="settings-files" />
386 20
387<span id="configuration-scopes" />21## 설정 파일 및 영향을 받는 사용자
388
389<span id="available-scopes" />
390
391<span id="when-to-use-each-scope" />
392
393<span id="what-uses-scopes" />
394
395<span id="subagent-configuration" />
396
397<span id="where-settings-live" />
398
399<h2 id="settings-files-and-who-they-affect">
400 설정 파일 및 영향을 받는 사용자
401</h2>
402 22
403Claude Code는 네 개의 파일에서 설정을 읽으며, 조직은 claude.ai 콘솔에서 관리형 설정을 제공할 수도 있습니다. 각 소스는 범위를 가지고 있습니다. 즉, 설정이 적용되는 사람과 프로젝트의 집합으로, 개인 사용자, 프로젝트의 모든 사람, 또는 조직의 모든 사람일 수 있습니다.23Claude Code는 네 개의 파일에서 설정을 읽으며, 조직은 claude.ai 콘솔에서 관리형 설정을 제공할 수도 있습니다. 각 소스는 범위를 가지고 있습니다. 즉, 설정이 적용되는 사람과 프로젝트의 집합으로, 개인 사용자, 프로젝트의 모든 사람, 또는 조직의 모든 사람일 수 있습니다.
404 24
411 31
412파일 열에서 `~/.claude`는 홈 디렉터리의 `.claude` 폴더이고, 단순 `.claude`는 프로젝트 내부의 `.claude` 폴더입니다.32파일 열에서 `~/.claude`는 홈 디렉터리의 `.claude` 폴더이고, 단순 `.claude`는 프로젝트 내부의 `.claude` 폴더입니다.
413 33
414<span id="where-each-file-applies" />34### 각 설정 파일의 범위 비교
415
416<span id="compare-what-each-file-reaches" />
417
418<h3 id="compare-the-scope-of-each-settings-file">
419 각 설정 파일의 범위 비교
420</h3>
421 35
422머신에 `website/`, `api/`, `acme-app/` 세 개의 프로젝트가 있고, 팀원이 `acme-app/`의 자신의 클론을 가지고 있으며, `acme-app/`에서 [클라우드 세션](#settings-in-cloud-sessions)을 시작한다고 가정합니다.36머신에 `website/`, `api/`, `acme-app/` 세 개의 프로젝트가 있고, 팀원이 `acme-app/`의 자신의 클론을 가지고 있으며, `acme-app/`에서 [클라우드 세션](#settings-in-cloud-sessions)을 시작한다고 가정합니다.
423 37
424아래 그래픽은 이러한 폴더에서 Claude Code를 시작할 때 설정이 적용되는 폴더를 보여줍니다. 설정 파일을 클릭하여 도달하는 폴더를 확인합니다.38아래 그래픽은 이러한 폴더에서 Claude Code를 시작할 때 설정이 적용되는 폴더를 보여줍니다. 설정 파일을 클릭하여 도달하는 폴더를 확인합니다.
425 39
426<SettingsScope />40Settings file
41
42Your machine
43
44A teammate’s machine
45
46A cloud session
427 47
428* **`~/.claude/settings.json`**: 머신의 모든 프로젝트, 팀원의 것이나 클라우드 세션의 것은 제외48* **`~/.claude/settings.json`**: 머신의 모든 프로젝트, 팀원의 것이나 클라우드 세션의 것은 제외
429* **`acme-app/.claude/settings.json`**: 사용자의 `acme-app/`. 파일을 버전 제어에 커밋한 경우에만 팀원의 클론과 클라우드 세션에 도달합니다. 커밋하기 전까지는 다른 파일처럼 디스크의 파일이며 다른 사람은 이를 가지지 않습니다.49* **`acme-app/.claude/settings.json`**: 사용자의 `acme-app/`. 파일을 버전 제어에 커밋한 경우에만 팀원의 클론과 클라우드 세션에 도달합니다. 커밋하기 전까지는 다른 파일처럼 디스크의 파일이며 다른 사람은 이를 가지지 않습니다.
430* **`acme-app/.claude/settings.local.json`**: 사용자의 `acme-app/`만. Claude Code는 파일을 처음 작성할 때 전역 git 제외에 추가하므로 커밋에서 제외됩니다. 수동으로 파일을 생성한 경우 [`.gitignore`에 직접 추가](#keep-personal-settings-out-of-a-repository)합니다.50* **`acme-app/.claude/settings.local.json`**: 사용자의 `acme-app/`만. Claude Code는 파일을 처음 작성할 때 전역 git 제외에 추가하므로 커밋에서 제외됩니다. 수동으로 파일을 생성한 경우 [`.gitignore`에 직접 추가](#keep-personal-settings-out-of-a-repository)합니다.
431* **관리형 설정**, `managed-settings.json` 파일, MDM 정책, 또는 claude.ai 콘솔의 [서버 관리형 설정](/docs/ko/server-managed-settings): 조직이 배포하는 모든 머신의 모든 프로젝트, 또는 조직 계정으로 로그인한 모든 머신. 서버 관리형 설정만 클라우드 세션에 도달합니다.51* **관리형 설정**, `managed-settings.json` 파일, MDM 정책, 또는 claude.ai 콘솔의 [서버 관리형 설정](/docs/ko/server-managed-settings): 조직이 배포하는 모든 머신의 모든 프로젝트, 또는 조직 계정으로 로그인한 모든 머신. 서버 관리형 설정만 클라우드 세션에 도달합니다.
432 52
433<span id="which-files-you-have" />53### 설정 파일 찾기 또는 생성
434
435<h3 id="find-or-create-your-settings-files">
436 설정 파일 찾기 또는 생성
437</h3>
438 54
439Claude Code를 설치해도 설정 파일이 생성되지 않습니다. 머신이나 프로젝트에 이미 파일이 있다면 다음 중 하나에서 온 것입니다:55Claude Code를 설치해도 설정 파일이 생성되지 않습니다. 머신이나 프로젝트에 이미 파일이 있다면 다음 중 하나에서 온 것입니다:
440 56
442* **공유 프로젝트**: Claude Code를 이미 사용하는 프로젝트에 커밋된 파일이 있을 수 있습니다. 없으면 프로젝트 폴더에 `.claude/settings.json`을 생성합니다.58* **공유 프로젝트**: Claude Code를 이미 사용하는 프로젝트에 커밋된 파일이 있을 수 있습니다. 없으면 프로젝트 폴더에 `.claude/settings.json`을 생성합니다.
443* **사용자** 및 **프로젝트 로컬**: 직접 생성하거나 Claude Code가 생성하도록 합니다. 테마와 같이 사용자 설정에 저장되는 `/config` 메뉴의 옵션을 처음 변경할 때 `~/.claude/settings.json`을 작성하고, Bash 명령에 대해 "Yes, and don't ask again"과 같은 권한 프롬프트에서 처음 승인을 할 때 `.claude/settings.local.json`을 작성합니다. **Show tips**를 포함한 몇 가지 `/config` 옵션은 사용자 파일 대신 `.claude/settings.local.json`에 저장됩니다.59* **사용자** 및 **프로젝트 로컬**: 직접 생성하거나 Claude Code가 생성하도록 합니다. 테마와 같이 사용자 설정에 저장되는 `/config` 메뉴의 옵션을 처음 변경할 때 `~/.claude/settings.json`을 작성하고, Bash 명령에 대해 "Yes, and don't ask again"과 같은 권한 프롬프트에서 처음 승인을 할 때 `.claude/settings.local.json`을 작성합니다. **Show tips**를 포함한 몇 가지 `/config` 옵션은 사용자 파일 대신 `.claude/settings.local.json`에 저장됩니다.
444 60
445<Info>61> [!NOTE]
446 Windows에서 `~/.claude`는 `%USERPROFILE%\.claude`를 의미합니다. 홈 디렉터리 파일을 다른 곳에 보관하려면 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정합니다. Claude Code는 설정, 세션 기록, 플러그인을 대신 그곳에 저장합니다.62>
447</Info>63> Windows에서 `~/.claude`는 `%USERPROFILE%\.claude`를 의미합니다. 홈 디렉터리 파일을 다른 곳에 보관하려면 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정합니다. Claude Code는 설정, 세션 기록, 플러그인을 대신 그곳에 저장합니다.
448 64
449Claude Code는 또한 다섯 번째 파일인 [`~/.claude.json`](/docs/ko/claude-directory#ce-claude-json)을 유지합니다. 이는 Claude Code가 자신을 위해 작성하는 파일이므로 편집할 필요가 없습니다. 로그인 세션, [MCP 서버](/docs/ko/mcp) 구성, 신뢰 결정과 같은 프로젝트별 상태, `/config`가 사용자를 위해 작성하는 [전역 구성 키](/docs/ko/settings-reference#global-config-settings)를 보유합니다.65Claude Code는 또한 다섯 번째 파일인 [`~/.claude.json`](/docs/ko/claude-directory#ce-claude-json)을 유지합니다. 이는 Claude Code가 자신을 위해 작성하는 파일이므로 편집할 필요가 없습니다. 로그인 세션, [MCP 서버](/docs/ko/mcp) 구성, 신뢰 결정과 같은 프로젝트별 상태, `/config`가 사용자를 위해 작성하는 [전역 구성 키](/docs/ko/settings-reference#global-config-settings)를 보유합니다.
450 66
451<h3 id="share-settings-with-your-team">67### 팀과 설정 공유
452 팀과 설정 공유
453</h3>
454 68
455`.claude/settings.json`을 커밋하여 저장소를 클론하는 모든 사람이 동일한 권한, 훅, 플러그인을 받도록 합니다. 각 팀원은 여전히 자신의 `.claude/settings.local.json`에서 이를 재정의할 수 있으므로 개인 예외는 커밋할 필요가 없습니다. 완전한 팀 파일은 [팀의 공유 설정](/docs/ko/settings-example#a-teams-shared-settings)을 참조합니다.69`.claude/settings.json`을 커밋하여 저장소를 클론하는 모든 사람이 동일한 권한, 훅, 플러그인을 받도록 합니다. 각 팀원은 여전히 자신의 `.claude/settings.local.json`에서 이를 재정의할 수 있으므로 개인 예외는 커밋할 필요가 없습니다. 완전한 팀 파일은 [팀의 공유 설정](/docs/ko/settings-example#a-teams-shared-settings)을 참조합니다.
456 70
457커밋하는 일부 항목은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)할 때까지 기다리며, 몇 가지 키는 저장소 파일에서 적용되지 않습니다. [적용되지 않는 설정 문제 해결](#common-cases)은 둘 다 다룹니다.71커밋하는 일부 항목은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)할 때까지 기다리며, 몇 가지 키는 저장소 파일에서 적용되지 않습니다. [적용되지 않는 설정 문제 해결](#common-cases)은 둘 다 다룹니다.
458 72
459<span id="local-settings-file" />73### 저장소에서 개인 설정 제외
460
461<span id="where-claude-code-saves-the-project-local-file" />
462
463<span id="the-project-local-file" />
464
465<span id="keep-personal-settings-out-of-the-repository" />
466
467<h3 id="keep-personal-settings-out-of-a-repository">
468 저장소에서 개인 설정 제외
469</h3>
470 74
471한 프로젝트에서 팀원을 변경하지 않고 자신을 위해 설정을 변경하려면 프로젝트 내부의 `.claude/settings.local.json`에 저장합니다. Claude Code는 커밋된 `.claude/settings.json`에 해당 파일을 적용하므로, 팀의 파일이 `"model": "claude-sonnet-5"`를 설정하고 Opus를 원하면 로컬 파일에 `"model": "claude-opus-5-5"`를 입력하고 세션만 변경됩니다.75한 프로젝트에서 팀원을 변경하지 않고 자신을 위해 설정을 변경하려면 프로젝트 내부의 `.claude/settings.local.json`에 저장합니다. Claude Code는 커밋된 `.claude/settings.json`에 해당 파일을 적용하므로, 팀의 파일이 `"model": "claude-sonnet-5"`를 설정하고 Opus를 원하면 로컬 파일에 `"model": "claude-opus-5-5"`를 입력하고 세션만 변경됩니다.
472 76
476* **수동으로 생성한 경우를 제외하고 직접 gitignore할 필요가 없습니다.** Claude Code가 이미 무시하지 않는 git 저장소에서 파일을 처음 작성할 때, 전역 git 제외 파일에 `**/.claude/settings.local.json`을 추가하므로 모든 저장소에서 파일이 커밋에서 제외됩니다. 해당 파일은 전역 git 구성이 절대 경로 또는 `~` 접두사 경로로 설정할 때 `core.excludesFile`입니다. 그렇지 않으면 `$XDG_CONFIG_HOME/git/ignore` 또는 `XDG_CONFIG_HOME`이 설정되지 않을 때 `~/.config/git/ignore`입니다. 수동으로 파일을 생성했고 Claude Code가 아직 작성하지 않았다면 `.gitignore`에 직접 추가합니다.80* **수동으로 생성한 경우를 제외하고 직접 gitignore할 필요가 없습니다.** Claude Code가 이미 무시하지 않는 git 저장소에서 파일을 처음 작성할 때, 전역 git 제외 파일에 `**/.claude/settings.local.json`을 추가하므로 모든 저장소에서 파일이 커밋에서 제외됩니다. 해당 파일은 전역 git 구성이 절대 경로 또는 `~` 접두사 경로로 설정할 때 `core.excludesFile`입니다. 그렇지 않으면 `$XDG_CONFIG_HOME/git/ignore` 또는 `XDG_CONFIG_HOME`이 설정되지 않을 때 `~/.config/git/ignore`입니다. 수동으로 파일을 생성했고 Claude Code가 아직 작성하지 않았다면 `.gitignore`에 직접 추가합니다.
477* **파일이 추적되지 않은 상태에서 허용 규칙은 신뢰를 기다리지 않습니다.** 파일이 저장소의 것이 아니라 사용자의 것이므로, Claude Code는 커밋된 파일에 필요한 [워크스페이스 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust) 단계 없이 `allow` 규칙을 적용합니다. 파일이 git으로 추적되면 신뢰 단계도 적용됩니다. [로컬 설정 파일이 신뢰가 필요한 경우](/docs/ko/permissions#when-your-local-settings-file-needs-trust)를 참조합니다.81* **파일이 추적되지 않은 상태에서 허용 규칙은 신뢰를 기다리지 않습니다.** 파일이 저장소의 것이 아니라 사용자의 것이므로, Claude Code는 커밋된 파일에 필요한 [워크스페이스 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust) 단계 없이 `allow` 규칙을 적용합니다. 파일이 git으로 추적되면 신뢰 단계도 적용됩니다. [로컬 설정 파일이 신뢰가 필요한 경우](/docs/ko/permissions#when-your-local-settings-file-needs-trust)를 참조합니다.
478 82
479<span id="where-claude-code-looks-for-each-file" />83#### Claude Code가 git 저장소에서 로컬 파일을 보관하는 위치
480
481<span id="how-claude-code-keeps-the-local-file-out-of-git" />
482
483<span id="local-allow-rules-dont-wait-for-workspace-trust" />
484
485<h4 id="where-claude-code-keeps-the-local-file-in-a-git-repository">
486 Claude Code가 git 저장소에서 로컬 파일을 보관하는 위치
487</h4>
488 84
489Claude가 Bash 명령을 실행할 권한을 요청하고 "Yes, and don't ask again"을 선택하면, Claude Code는 해당 승인을 `.claude/settings.local.json`의 `allow` 규칙으로 저장합니다. git 저장소의 하위 디렉터리에서 Claude Code를 시작하면 저장소 루트에서 해당 파일을 읽고 작성하며 전체 저장소에 승인을 적용합니다. [worktree](/docs/ko/worktrees)에서는 주 체크아웃의 루트에 있는 파일을 사용합니다.85Claude가 Bash 명령을 실행할 권한을 요청하고 "Yes, and don't ask again"을 선택하면, Claude Code는 해당 승인을 `.claude/settings.local.json`의 `allow` 규칙으로 저장합니다. git 저장소의 하위 디렉터리에서 Claude Code를 시작하면 저장소 루트에서 해당 파일을 읽고 작성하며 전체 저장소에 승인을 적용합니다. [worktree](/docs/ko/worktrees)에서는 주 체크아웃의 루트에 있는 파일을 사용합니다.
490 86
497 93
498Claude Code는 공유 `.claude/settings.json`을 세션의 [기본 작업 디렉터리](/docs/ko/permissions#working-directories)에서 읽으므로, 저장소 루트에 커밋된 파일을 사용하려면 거기서 Claude Code를 시작합니다. [`/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)한 후, Claude Code는 대신 새 디렉터리에서 두 프로젝트 파일을 읽으며, 로컬 파일을 동일한 규칙으로 배치합니다. 이동한 디렉터리에서 읽으려면 Claude Code v2.1.246 이상이 필요합니다. 데스크톱 앱에서 시작하는 worktree 세션의 경우 [worktree가 주 체크아웃과 공유하는 항목](/docs/ko/worktrees#what-worktrees-share-with-the-main-checkout)을 참조합니다.94Claude Code는 공유 `.claude/settings.json`을 세션의 [기본 작업 디렉터리](/docs/ko/permissions#working-directories)에서 읽으므로, 저장소 루트에 커밋된 파일을 사용하려면 거기서 Claude Code를 시작합니다. [`/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)한 후, Claude Code는 대신 새 디렉터리에서 두 프로젝트 파일을 읽으며, 로컬 파일을 동일한 규칙으로 배치합니다. 이동한 디렉터리에서 읽으려면 Claude Code v2.1.246 이상이 필요합니다. 데스크톱 앱에서 시작하는 worktree 세션의 경우 [worktree가 주 체크아웃과 공유하는 항목](/docs/ko/worktrees#what-worktrees-share-with-the-main-checkout)을 참조합니다.
499 95
500<span id="managed-settings-delivery" />96### 조직이 적용하는 항목 확인
501
502<span id="precedence-within-the-managed-tier" />
503
504<span id="parent-settings-from-embedding-hosts" />
505
506<span id="enforce-settings-for-an-organization" />
507
508<span id="settings-your-organization-manages" />
509
510<h3 id="check-what-your-organization-enforces">
511 조직이 적용하는 항목 확인
512</h3>
513 97
514조직이 Claude Code를 관리하는 경우, 일부 설정은 사용자를 위해 결정되며 자신의 파일에 입력한 것이 이를 변경하지 않습니다. 어떤 것인지 확인하려면 `/status`를 실행합니다. `Setting sources` 줄은 사용자에게 적용되는 관리형 소스의 이름을 지정합니다. 관리형 설정은 이 머신에서 Claude Code가 실행되는 모든 곳에 적용됩니다. [개발자가 변경할 수 있는 항목](/docs/ko/managed-settings#what-a-developer-can-change)은 로컬 관리자 권한 및 Claude Code 이외의 도구를 다룹니다.98조직이 Claude Code를 관리하는 경우, 일부 설정은 사용자를 위해 결정되며 자신의 파일에 입력한 것이 이를 변경하지 않습니다. 어떤 것인지 확인하려면 `/status`를 실행합니다. `Setting sources` 줄은 사용자에게 적용되는 관리형 소스의 이름을 지정합니다. 관리형 설정은 이 머신에서 Claude Code가 실행되는 모든 곳에 적용됩니다. [개발자가 변경할 수 있는 항목](/docs/ko/managed-settings#what-a-developer-can-change)은 로컬 관리자 권한 및 Claude Code 이외의 도구를 다룹니다.
515 99
523 107
524관리자인 경우, [조직을 위해 Claude Code 설정](/docs/ko/admin-setup)은 적용할 항목 선택을 안내하고, [관리형 설정 배포](/docs/ko/managed-settings)는 전달 및 정책이 적용 중인지 확인하는 방법을 다룹니다. claude.ai 관리 콘솔의 관리형 설정 편집기에 표시될 수 있는 경고는 [서버 관리형 설정 구성](/docs/ko/server-managed-settings#configure-server-managed-settings)을 참조합니다.108관리자인 경우, [조직을 위해 Claude Code 설정](/docs/ko/admin-setup)은 적용할 항목 선택을 안내하고, [관리형 설정 배포](/docs/ko/managed-settings)는 전달 및 정책이 적용 중인지 확인하는 방법을 다룹니다. claude.ai 관리 콘솔의 관리형 설정 편집기에 표시될 수 있는 경고는 [서버 관리형 설정 구성](/docs/ko/server-managed-settings#configure-server-managed-settings)을 참조합니다.
525 109
526<h2 id="change-a-setting">110## 설정 변경
527 설정 변경
528</h2>
529 111
530`/config` 메뉴, 설정 파일 편집, 또는 한 세션에 대해 명령줄에서 설정을 변경할 수 있습니다.112`/config` 메뉴, 설정 파일 편집, 또는 한 세션에 대해 명령줄에서 설정을 변경할 수 있습니다.
531 113
532<span id="system-prompt" />
533
534Claude Code의 시스템 프롬프트는 게시되지 않습니다. Claude에 지속적인 지침을 제공하려면 [`CLAUDE.md` 파일](/docs/ko/memory) 또는 `--append-system-prompt` 플래그를 사용합니다.114Claude Code의 시스템 프롬프트는 게시되지 않습니다. Claude에 지속적인 지침을 제공하려면 [`CLAUDE.md` 파일](/docs/ko/memory) 또는 `--append-system-prompt` 플래그를 사용합니다.
535 115
536<h3 id="use-the-/config-menu">116### /config 메뉴 사용
537 /config 메뉴 사용
538</h3>
539 117
540Claude Code 내에서 `/config`를 실행하고 **Config** 탭을 엽니다. 테마, 편집기 모드, 상세 출력과 같은 짧은 개인 옵션 집합을 나열하며, 모든 설정 키는 아닙니다. 옵션을 선택하여 변경합니다. Claude Code가 저장합니다:118Claude Code 내에서 `/config`를 실행하고 **Config** 탭을 엽니다. 테마, 편집기 모드, 상세 출력과 같은 짧은 개인 옵션 집합을 나열하며, 모든 설정 키는 아닙니다. 옵션을 선택하여 변경합니다. Claude Code가 저장합니다:
541 119
545 123
546메뉴 없이 한 옵션을 설정하려면 `/config verbose=true`와 같이 `key=value`를 전달합니다.124메뉴 없이 한 옵션을 설정하려면 `/config verbose=true`와 같이 `key=value`를 전달합니다.
547 125
548<Note>126> [!NOTE]
549 `/config`는 터미널 인터페이스의 일부입니다. [VS Code](/docs/ko/vs-code) 채팅 패널 및 [데스크톱 앱](/docs/ko/desktop)은 열지 않습니다. 설정 파일을 편집하거나 해당 앱의 자체 설정을 통해 변경합니다.127>
550</Note>128> `/config`는 터미널 인터페이스의 일부입니다. [VS Code](/docs/ko/vs-code) 채팅 패널 및 [데스크톱 앱](/docs/ko/desktop)은 열지 않습니다. 설정 파일을 편집하거나 해당 앱의 자체 설정을 통해 변경합니다.
551 129
552<h3 id="edit-a-settings-file">130### 설정 파일 편집
553 설정 파일 편집
554</h3>
555 131
556원하는 범위의 설정 파일을 편집기에서 열고 키를 추가하거나 변경합니다. 설정 파일은 엄격한 JSON입니다: `//` 주석이나 후행 쉼표는 구문 오류이며, Claude Code는 다음 시작에서 파일을 [설정 오류](#fix-a-broken-settings-file)로 보고합니다. 예를 들어 Claude Code가 lint 및 테스트 명령을 묻지 않고 실행하고 `.env` 파일 읽기를 중지하도록 하려면 `~/.claude/settings.json`에 다음을 추가합니다:132원하는 범위의 설정 파일을 편집기에서 열고 키를 추가하거나 변경합니다. 설정 파일은 엄격한 JSON입니다: `//` 주석이나 후행 쉼표는 구문 오류이며, Claude Code는 다음 시작에서 파일을 [설정 오류](#fix-a-broken-settings-file)로 보고합니다. 예를 들어 Claude Code가 lint 및 테스트 명령을 묻지 않고 실행하고 `.env` 파일 읽기를 중지하도록 하려면 `~/.claude/settings.json`에 다음을 추가합니다:
557 133
577 153
578완전한 개인 파일, 팀 파일, 조직 파일은 각각 설정하는 모든 키에 대한 주석과 함께 [예제 설정 파일](/docs/ko/settings-example)을 참조하세요.154완전한 개인 파일, 팀 파일, 조직 파일은 각각 설정하는 모든 키에 대한 주석과 함께 [예제 설정 파일](/docs/ko/settings-example)을 참조하세요.
579 155
580<span id="pass-settings-for-one-session" />156### 한 세션에 대해 설정 변경
581
582<h3 id="change-a-setting-for-one-session">
583 한 세션에 대해 설정 변경
584</h3>
585 157
586값을 저장하지 않고 시도하려면 Claude Code를 시작할 때 설정합니다. 값은 해당 세션에 적용되고 설정 파일은 그대로 유지됩니다. 3가지 방법이 있습니다:158값을 저장하지 않고 시도하려면 Claude Code를 시작할 때 설정합니다. 값은 해당 세션에 적용되고 설정 파일은 그대로 유지됩니다. 3가지 방법이 있습니다:
587 159
601claude --settings '{"model": "claude-opus-5-5"}'173claude --settings '{"model": "claude-opus-5-5"}'
602```174```
603 175
604<h3 id="when-edits-take-effect">176### 편집이 적용되는 시기
605 편집이 적용되는 시기
606</h3>
607 177
608Claude Code는 설정 파일을 감시하고 변경될 때 다시 로드하므로 대부분의 편집이 재시작 없이 실행 중인 세션에 적용됩니다. 여기에는 `permissions`, `hooks`, `apiKeyHelper`와 같은 자격 증명 도우미에 대한 편집이 포함됩니다. Claude Code는 또한 세션 중에 생성한 설정 파일을 로드합니다. 해당 폴더가 세션 시작 시 존재했다면 말입니다. 프로젝트의 `.claude/` 폴더의 경우 같은 세션에서 폴더를 생성할 때도 파일을 로드합니다.178Claude Code는 설정 파일을 감시하고 변경될 때 다시 로드하므로 대부분의 편집이 재시작 없이 실행 중인 세션에 적용됩니다. 여기에는 `permissions`, `hooks`, `apiKeyHelper`와 같은 자격 증명 도우미에 대한 편집이 포함됩니다. Claude Code는 또한 세션 중에 생성한 설정 파일을 로드합니다. 해당 폴더가 세션 시작 시 존재했다면 말입니다. 프로젝트의 `.claude/` 폴더의 경우 같은 세션에서 폴더를 생성할 때도 파일을 로드합니다.
609 179
614* [`model`](/docs/ko/settings-reference#model): 세션 중에 전환하려면 [`/model`](/docs/ko/model-config#setting-your-model)을 사용합니다. 각 모델에는 자체 프롬프트 캐시가 있으므로 전환 후 첫 요청은 전체 대화를 캐시되지 않은 상태로 다시 읽습니다. [모델 전환](/docs/ko/prompt-caching#switching-models)을 참조하세요184* [`model`](/docs/ko/settings-reference#model): 세션 중에 전환하려면 [`/model`](/docs/ko/model-config#setting-your-model)을 사용합니다. 각 모델에는 자체 프롬프트 캐시가 있으므로 전환 후 첫 요청은 전체 대화를 캐시되지 않은 상태로 다시 읽습니다. [모델 전환](/docs/ko/prompt-caching#switching-models)을 참조하세요
615* [`effortLevel`](/docs/ko/settings-reference#effortlevel) 및 [`modelSettings`](/docs/ko/settings-reference#modelsettings): 세션 중에 변경하려면 [`/effort`](/docs/ko/model-config#adjust-effort-level)를 사용합니다185* [`effortLevel`](/docs/ko/settings-reference#effortlevel) 및 [`modelSettings`](/docs/ko/settings-reference#modelsettings): 세션 중에 변경하려면 [`/effort`](/docs/ko/model-config#adjust-effort-level)를 사용합니다
616 186
617<span id="verify-active-settings" />187### 로드된 것 확인
618
619<span id="check-what-loaded" />
620
621<h3 id="confirm-what-loaded">
622 로드된 것 확인
623</h3>
624 188
625Claude Code 내에서 `/status`를 실행하여 활성 설정 소스를 확인합니다. **Status** 탭에는 Claude Code가 현재 세션에 로드한 각 설정 파일을 나열하는 `Setting sources` 줄이 포함됩니다. 예: `User settings` 또는 `Project local settings`. [관리되는 설정](/docs/ko/admin-setup#decide-how-settings-reach-devices)이 적용되면 관리되는 설정 항목은 괄호에 도달 방식을 표시합니다.189Claude Code 내에서 `/status`를 실행하여 활성 설정 소스를 확인합니다. **Status** 탭에는 Claude Code가 현재 세션에 로드한 각 설정 파일을 나열하는 `Setting sources` 줄이 포함됩니다. 예: `User settings` 또는 `Project local settings`. [관리되는 설정](/docs/ko/admin-setup#decide-how-settings-reach-devices)이 적용되면 관리되는 설정 항목은 괄호에 도달 방식을 표시합니다.
626 190
627줄은 Claude Code가 읽은 파일을 확인합니다. 각 키를 제공한 파일은 표시하지 않습니다. Claude Code가 거부한 항목을 나열하려면 [`claude doctor`](/docs/ko/debug-your-config)를 실행합니다. 프로젝트 또는 관리되는 설정이 설정한 모델의 경우 시작 헤더가 설정한 파일의 이름을 지정합니다. `/status`와 `/config`는 다른 탭에서 동일한 대화를 엽니다. **Config** 탭은 `settings.json` 내용의 보기가 아닙니다.191줄은 Claude Code가 읽은 파일을 확인합니다. 각 키를 제공한 파일은 표시하지 않습니다. Claude Code가 거부한 항목을 나열하려면 [`claude doctor`](/docs/ko/debug-your-config)를 실행합니다. 프로젝트 또는 관리되는 설정이 설정한 모델의 경우 시작 헤더가 설정한 파일의 이름을 지정합니다. `/status`와 `/config`는 다른 탭에서 동일한 대화를 엽니다. **Config** 탭은 `settings.json` 내용의 보기가 아닙니다.
628 192
629<h3 id="fix-a-broken-settings-file">193### 손상된 설정 파일 수정
630 손상된 설정 파일 수정
631</h3>
632 194
633JSON을 잘못 입력하거나 Claude Code가 수락하지 않는 값으로 키를 설정하면 Claude Code는 대화형 세션 시작 시 알려줍니다. 표시되는 것은 파일의 얼마나 많은 부분이 영향을 받는지에 따라 다릅니다:195JSON을 잘못 입력하거나 Claude Code가 수락하지 않는 값으로 키를 설정하면 Claude Code는 대화형 세션 시작 시 알려줍니다. 표시되는 것은 파일의 얼마나 많은 부분이 영향을 받는지에 따라 다릅니다:
634 196
641 203
642`-p` 실행은 대화를 표시하지 않습니다. [관리되는 설정 문서를 파싱할 수 없음](/docs/ko/errors#managed-settings-document-could-not-be-parsed)이 아니면 Claude Code는 손상된 파일이나 값을 건너뛰고 나머지로 계속합니다. 따라서 설정을 무시한 `-p` 실행 후 `claude doctor`를 실행하여 삭제된 것을 확인합니다.204`-p` 실행은 대화를 표시하지 않습니다. [관리되는 설정 문서를 파싱할 수 없음](/docs/ko/errors#managed-settings-document-could-not-be-parsed)이 아니면 Claude Code는 손상된 파일이나 값을 건너뛰고 나머지로 계속합니다. 따라서 설정을 무시한 `-p` 실행 후 `claude doctor`를 실행하여 삭제된 것을 확인합니다.
643 205
644<span id="how-scopes-interact" />206## 설정 우선순위
645
646<span id="key-points-about-the-configuration-system" />
647
648<span id="which-value-claude-code-uses" />
649
650<span id="which-value-wins" />
651
652<h2 id="settings-precedence">
653 설정 우선순위
654</h2>
655 207
656동일한 키가 여러 위치에 나타나면 Claude Code는 가장 높은 수준에서 설정한 값을 사용합니다. 아래 스택은 수준을 보여주며, 맨 위가 가장 높습니다. 더 높은 수준의 키는 아래의 동일한 키를 재정의합니다.208동일한 키가 여러 위치에 나타나면 Claude Code는 가장 높은 수준에서 설정한 값을 사용합니다. 아래 스택은 수준을 보여주며, 맨 위가 가장 높습니다. 더 높은 수준의 키는 아래의 동일한 키를 재정의합니다.
657 209
658<SettingsPrecedence />210Settings precedence, highest first: managed settings, command line, project local, shared project, user. A key set at a higher level overrides the same key set lower down.
659 211
660순서대로, 가장 높은 우선순위부터:212순서대로, 가장 높은 우선순위부터:
661 213
669 221
670몇 가지 보안에 민감한 키의 경우, Claude Code는 관리형 값보다 낮은 수준의 더 엄격한 값을 준수합니다. [관리형 설정 우선순위의 예외](#exceptions-to-managed-settings-precedence)에 이를 나열합니다.222몇 가지 보안에 민감한 키의 경우, Claude Code는 관리형 값보다 낮은 수준의 더 엄격한 값을 준수합니다. [관리형 설정 우선순위의 예외](#exceptions-to-managed-settings-precedence)에 이를 나열합니다.
671 223
672<h3 id="lists-merge-instead-of-overriding">224### 목록은 재정의 대신 병합됩니다
673 목록은 재정의 대신 병합됩니다
674</h3>
675 225
676`permissions.allow`와 같은 동일한 목록 키를 둘 이상의 파일에서 설정할 때, Claude Code는 하나를 선택하는 대신 목록을 결합하므로 각 파일은 다른 파일의 항목을 제거하지 않고 항목을 추가할 수 있습니다. 모델 목록 또는 모델별 항목을 보유하는 네 가지 키는 자신의 규칙을 따릅니다.226`permissions.allow`와 같은 동일한 목록 키를 둘 이상의 파일에서 설정할 때, Claude Code는 하나를 선택하는 대신 목록을 결합하므로 각 파일은 다른 파일의 항목을 제거하지 않고 항목을 추가할 수 있습니다. 모델 목록 또는 모델별 항목을 보유하는 네 가지 키는 자신의 규칙을 따릅니다.
677 227
680* [`availableModels`](/docs/ko/settings-reference#availablemodels): Claude Code가 적용하는 관리형 설정이 이를 정의할 때, Claude Code는 해당 목록을 그대로 적용하고 사용자, 프로젝트 또는 로컬 설정에서 추가하는 항목을 무시합니다. 단, Claude Code를 포함하는 앱이 자신의 모델 목록을 제공하는 경우는 제외합니다. [관리형 설정 우선순위의 예외](#exceptions-to-managed-settings-precedence)를 참조하세요. 관리형 소스 전체에서 목록은 병합되지 않습니다. [Claude Code가 관리형 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 어느 소스의 목록이 적용되는지 나타냅니다. 관리형이 아닌 범위 전체에서 Claude Code는 일반적으로 배열을 병합합니다.230* [`availableModels`](/docs/ko/settings-reference#availablemodels): Claude Code가 적용하는 관리형 설정이 이를 정의할 때, Claude Code는 해당 목록을 그대로 적용하고 사용자, 프로젝트 또는 로컬 설정에서 추가하는 항목을 무시합니다. 단, Claude Code를 포함하는 앱이 자신의 모델 목록을 제공하는 경우는 제외합니다. [관리형 설정 우선순위의 예외](#exceptions-to-managed-settings-precedence)를 참조하세요. 관리형 소스 전체에서 목록은 병합되지 않습니다. [Claude Code가 관리형 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 어느 소스의 목록이 적용되는지 나타냅니다. 관리형이 아닌 범위 전체에서 Claude Code는 일반적으로 배열을 병합합니다.
681* [`modelSettings`](/docs/ko/settings-reference#modelsettings): Claude Code는 [`effortLevel`](/docs/ko/settings-reference#effortlevel)과 함께 한 번에 하나의 모델로 이를 해결합니다. `modelSettings` 항목은 어느 파일의 값이 모델에 적용되는지 나타냅니다.231* [`modelSettings`](/docs/ko/settings-reference#modelsettings): Claude Code는 [`effortLevel`](/docs/ko/settings-reference#effortlevel)과 함께 한 번에 하나의 모델로 이를 해결합니다. `modelSettings` 항목은 어느 파일의 값이 모델에 적용되는지 나타냅니다.
682 232
683<span id="examples" />233### 우선순위 예제
684
685<h3 id="precedence-examples">
686 우선순위 예제
687</h3>
688 234
689Claude가 작동하는 동안, Claude Code는 스피너 아래에 한 줄 팁을 표시합니다. 예를 들어 "Use /config to change your default permission mode (including Plan Mode)". 이러한 팁을 끄고 싶어서 `~/.claude/settings.json`에서 [`spinnerTipsEnabled`](/docs/ko/settings-reference#spinnertipsenabled)를 `false`로 설정했다고 가정합니다. 아래의 각 시나리오는 이를 다시 켤 수 있는 것과 이에 대해 할 수 있는 것입니다.235Claude가 작동하는 동안, Claude Code는 스피너 아래에 한 줄 팁을 표시합니다. 예를 들어 "Use /config to change your default permission mode (including Plan Mode)". 이러한 팁을 끄고 싶어서 `~/.claude/settings.json`에서 [`spinnerTipsEnabled`](/docs/ko/settings-reference#spinnertipsenabled)를 `false`로 설정했다고 가정합니다. 아래의 각 시나리오는 이를 다시 켤 수 있는 것과 이에 대해 할 수 있는 것입니다.
690 236
691<h4 id="team-settings-override-personal-settings">237#### 팀 설정이 개인 설정을 재정의합니다
692 팀 설정이 개인 설정을 재정의합니다
693</h4>
694 238
695팀의 `.claude/settings.json`이 이를 `true`로 설정합니다. Claude Code는 공유 프로젝트가 사용자 위에 있기 때문에 프로젝트 값을 사용하므로, 해당 프로젝트에서만 팁을 보고 다른 곳에서는 보지 않습니다.239팀의 `.claude/settings.json`이 이를 `true`로 설정합니다. Claude Code는 공유 프로젝트가 사용자 위에 있기 때문에 프로젝트 값을 사용하므로, 해당 프로젝트에서만 팁을 보고 다른 곳에서는 보지 않습니다.
696 240
697값을 다시 얻을 수 있습니다. 해당 프로젝트의 `.claude/settings.local.json`에 `"spinnerTipsEnabled": false`를 추가합니다. 프로젝트 로컬이 공유 프로젝트 위에 있으므로, 해당 세션은 팁을 표시하지 않고 팀원의 세션은 변경되지 않습니다.241값을 다시 얻을 수 있습니다. 해당 프로젝트의 `.claude/settings.local.json`에 `"spinnerTipsEnabled": false`를 추가합니다. 프로젝트 로컬이 공유 프로젝트 위에 있으므로, 해당 세션은 팁을 표시하지 않고 팀원의 세션은 변경되지 않습니다.
698 242
699<h4 id="organization-settings-override-everything">243#### 조직 설정이 모든 것을 재정의합니다
700 조직 설정이 모든 것을 재정의합니다
701</h4>
702 244
703조직의 관리형 설정이 이를 `true`로 설정합니다. 사용자, 프로젝트 또는 로컬 설정에 넣은 것도 팁을 끌 수 없으며, `--settings`도 마찬가지입니다. 관리형이 최상위 수준입니다.245조직의 관리형 설정이 이를 `true`로 설정합니다. 사용자, 프로젝트 또는 로컬 설정에 넣은 것도 팁을 끌 수 없으며, `--settings`도 마찬가지입니다. 관리형이 최상위 수준입니다.
704 246
705값을 다시 얻을 수 없습니다. `/status`를 실행하여 어느 관리형 소스가 적용되는지 확인하고, 정책을 변경해야 하는지 관리자에게 문의합니다.247값을 다시 얻을 수 없습니다. `/status`를 실행하여 어느 관리형 소스가 적용되는지 확인하고, 정책을 변경해야 하는지 관리자에게 문의합니다.
706 248
707<h4 id="the-command-line-overrides-your-files-for-one-session">249#### 명령줄이 한 세션 동안 파일을 재정의합니다
708 명령줄이 한 세션 동안 파일을 재정의합니다
709</h4>
710 250
711`claude --settings '{"spinnerTipsEnabled": true}'`로 세션을 시작했습니다. 명령줄은 관리형을 제외한 모든 파일 위에 있으므로, 파일이 `false`라고 말해도 해당 세션은 팁을 표시합니다.251`claude --settings '{"spinnerTipsEnabled": true}'`로 세션을 시작했습니다. 명령줄은 관리형을 제외한 모든 파일 위에 있으므로, 파일이 `false`라고 말해도 해당 세션은 팁을 표시합니다.
712 252
713다음 세션에서 값을 다시 얻습니다. `--settings`는 한 세션 동안만 지속되며 파일에 쓰지 않습니다.253다음 세션에서 값을 다시 얻습니다. `--settings`는 한 세션 동안만 지속되며 파일에 쓰지 않습니다.
714 254
715<h4 id="a-flag-or-environment-variable-sets-the-same-thing">255#### 플래그 또는 환경 변수가 동일한 것을 설정합니다
716 플래그 또는 환경 변수가 동일한 것을 설정합니다
717</h4>
718 256
719일부 키에는 설정 값을 재정의하는 명령줄 플래그 또는 환경 변수가 있으며, 이는 어느 파일이 설정했는지와 관계없이 적용됩니다. `ANTHROPIC_MODEL`은 [`model`](/docs/ko/settings-reference#model) 설정을 재정의하고, `--model`은 한 세션 동안 둘 다 재정의합니다.257일부 키에는 설정 값을 재정의하는 명령줄 플래그 또는 환경 변수가 있으며, 이는 어느 파일이 설정했는지와 관계없이 적용됩니다. `ANTHROPIC_MODEL`은 [`model`](/docs/ko/settings-reference#model) 설정을 재정의하고, `--model`은 한 세션 동안 둘 다 재정의합니다.
720 258
721값을 다시 얻을 수 있는지는 키에 따라 다릅니다. 변수를 설정 해제하거나 플래그를 제거하고, [설정 참조](/docs/ko/settings-reference)의 키 항목과 [환경 변수 참조](/docs/ko/env-vars)의 변수 행을 확인하여 Claude Code가 어느 것을 사용하는지 확인합니다.259값을 다시 얻을 수 있는지는 키에 따라 다릅니다. 변수를 설정 해제하거나 플래그를 제거하고, [설정 참조](/docs/ko/settings-reference)의 키 항목과 [환경 변수 참조](/docs/ko/env-vars)의 변수 행을 확인하여 Claude Code가 어느 것을 사용하는지 확인합니다.
722 260
723<span id="keys-ignored-in-a-repository-file" />261### 적용되지 않는 설정 문제 해결
724
725<span id="keys-only-you-or-your-organization-can-set" />
726
727<span id="common-cases" />
728
729<span id="which-value-applies-in-common-situations" />
730
731<h3 id="troubleshoot-a-setting-that-doesn’t-apply">
732 적용되지 않는 설정 문제 해결
733</h3>
734 262
735키를 설정했는데 Claude Code가 그렇게 동작하지 않으면, `/status`로 시작하여 로드한 파일을 확인한 다음 아래에서 증상을 찾습니다. [구성 디버그](/docs/ko/debug-your-config)는 깨끗한 구성 테스트를 포함한 더 넓은 검사를 다룹니다.263키를 설정했는데 Claude Code가 그렇게 동작하지 않으면, `/status`로 시작하여 로드한 파일을 확인한 다음 아래에서 증상을 찾습니다. [구성 디버그](/docs/ko/debug-your-config)는 깨끗한 구성 테스트를 포함한 더 넓은 검사를 다룹니다.
736 264
737<h4 id="a-value-you-set-is-ignored">265#### 설정한 값이 무시됩니다
738 설정한 값이 무시됩니다
739</h4>
740 266
741다른 것이 동일한 키를 설정하거나, 파일이 해당 값을 설정할 수 없거나, 파일이 로드되지 않았습니다.267다른 것이 동일한 키를 설정하거나, 파일이 해당 값을 설정할 수 없거나, 파일이 로드되지 않았습니다.
742 268
747 [`env`](/docs/ko/settings-reference#env) 블록의 텔레메트리 내보내기 변수도 프로젝트 또는 로컬 설정에서 적용되지 않습니다. 몇 가지 끄기 값은 제외합니다. [Claude Code가 `env`에서 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)는 변수와 해당 값을 나열합니다.273 [`env`](/docs/ko/settings-reference#env) 블록의 텔레메트리 내보내기 변수도 프로젝트 또는 로컬 설정에서 적용되지 않습니다. 몇 가지 끄기 값은 제외합니다. [Claude Code가 `env`에서 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)는 변수와 해당 값을 나열합니다.
748* **파일이 손상되었습니다.** 잘못된 JSON 또는 거부된 값은 Claude Code가 파일 또는 항목을 건너뜁니다. [손상된 설정 파일 수정](#fix-a-broken-settings-file)을 참조하세요.274* **파일이 손상되었습니다.** 잘못된 JSON 또는 거부된 값은 Claude Code가 파일 또는 항목을 건너뜁니다. [손상된 설정 파일 수정](#fix-a-broken-settings-file)을 참조하세요.
749 275
750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">276#### Claude Code에서 만든 변경 사항이 새 세션에서 손실됩니다
751 Claude Code에서 만든 변경 사항이 새 세션에서 손실됩니다
752</h4>
753 277
754Claude Code 내에서 새 세션을 위한 선택을 저장할 때, 예를 들어 `/model`로 기본 모델을 저장할 때, Claude Code는 사용자 설정 파일 `~/.claude/settings.json`에 씁니다. 해당 파일에 쓸 수 없으면, 예를 들어 다른 도구가 생성하거나 읽기 전용 복사본에 연결하면, 변경 사항은 현재 세션에 적용되고 다음 세션에서 손실됩니다. 파일을 생성하는 도구에서 키를 설정하거나, 파일을 쓸 수 있는 파일로 바꿉니다.278Claude Code 내에서 새 세션을 위한 선택을 저장할 때, 예를 들어 `/model`로 기본 모델을 저장할 때, Claude Code는 사용자 설정 파일 `~/.claude/settings.json`에 씁니다. 해당 파일에 쓸 수 없으면, 예를 들어 다른 도구가 생성하거나 읽기 전용 복사본에 연결하면, 변경 사항은 현재 세션에 적용되고 다음 세션에서 손실됩니다. 파일을 생성하는 도구에서 키를 설정하거나, 파일을 쓸 수 있는 파일로 바꿉니다.
755 279
756파일에 쓸 수 있고 변경 사항이 여전히 지속되지 않으면, 변경 사항이 [한 세션 동안만](#change-a-setting-for-one-session) 또는 [더 높은 수준이 동일한 키를 설정](#a-value-you-set-is-ignored)했는지 확인합니다. `model` 키의 경우, [새 세션이 선택한 것과 다른 모델에서 시작됩니다](/docs/ko/model-config#a-new-session-starts-on-a-different-model-than-you-picked)는 더 많은 원인을 나열합니다.280파일에 쓸 수 있고 변경 사항이 여전히 지속되지 않으면, 변경 사항이 [한 세션 동안만](#change-a-setting-for-one-session) 또는 [더 높은 수준이 동일한 키를 설정](#a-value-you-set-is-ignored)했는지 확인합니다. `model` 키의 경우, [새 세션이 선택한 것과 다른 모델에서 시작됩니다](/docs/ko/model-config#a-new-session-starts-on-a-different-model-than-you-picked)는 더 많은 원인을 나열합니다.
757 281
758<h4 id="a-managed-change-hasn’t-reached-you">282#### 관리형 변경 사항이 도달하지 않았습니다
759 관리형 변경 사항이 도달하지 않았습니다
760</h4>
761 283
762관리형 소스는 [전달 테이블](/docs/ko/managed-settings#choose-a-delivery-mechanism)의 일정에 따라 실행 중인 세션에 도달하므로, 먼저 세션을 다시 시작합니다. `/status`가 관리자가 변경한 것과 다른 소스를 나타내면, 더 높은 우선순위 소스가 적용됩니다. [Claude Code가 관리형 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 순서를 제공합니다.284관리형 소스는 [전달 테이블](/docs/ko/managed-settings#choose-a-delivery-mechanism)의 일정에 따라 실행 중인 세션에 도달하므로, 먼저 세션을 다시 시작합니다. `/status`가 관리자가 변경한 것과 다른 소스를 나타내면, 더 높은 우선순위 소스가 적용됩니다. [Claude Code가 관리형 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 순서를 제공합니다.
763 285
764<h4 id="a-committed-key-doesn’t-reach-teammates">286#### 커밋된 키가 팀원에게 도달하지 않습니다
765 커밋된 키가 팀원에게 도달하지 않습니다
766</h4>
767 287
768두 가지가 `.claude/settings.json`의 키가 이를 복제하는 모든 사람에게 적용되는 것을 방지합니다.288두 가지가 `.claude/settings.json`의 키가 이를 복제하는 모든 사람에게 적용되는 것을 방지합니다.
769 289
772 `env` 키 내에서, 텔레메트리 내보내기 변수도 공유 파일에서 적용되지 않습니다. 몇 가지 끄기 값은 제외합니다. [Claude Code가 `env`에서 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 참조하세요.292 `env` 키 내에서, 텔레메트리 내보내기 변수도 공유 파일에서 적용되지 않습니다. 몇 가지 끄기 값은 제외합니다. [Claude Code가 `env`에서 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 참조하세요.
773* **키가 신뢰를 기다립니다.** `permissions.allow` 규칙, `permissions.additionalDirectories`, `extraKnownMarketplaces`, 및 대부분의 [`env`](/docs/ko/settings-reference#env) 값은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에만 적용됩니다. 그때까지 그들은 여전히 프롬프트를 보고 파일이 선언하는 마켓플레이스에서 플러그인을 얻지 못합니다. `deny`와 `ask` 규칙은 즉시 적용됩니다.293* **키가 신뢰를 기다립니다.** `permissions.allow` 규칙, `permissions.additionalDirectories`, `extraKnownMarketplaces`, 및 대부분의 [`env`](/docs/ko/settings-reference#env) 값은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에만 적용됩니다. 그때까지 그들은 여전히 프롬프트를 보고 파일이 선언하는 마켓플레이스에서 플러그인을 얻지 못합니다. `deny`와 `ask` 규칙은 즉시 적용됩니다.
774 294
775<h4 id="permission-rules-combine-differently-than-you-expected">295#### 권한 규칙이 예상과 다르게 결합됩니다
776 권한 규칙이 예상과 다르게 결합됩니다
777</h4>
778 296
779* **권한 프롬프트에서 "Yes, and don't ask again"을 선택했지만 여전히 동일한 도구에 대해 프롬프트를 받습니다.** 해당 선택은 `allow` 규칙을 로컬 파일에 저장했으며, 로컬 파일의 `allow` 규칙은 프로젝트 또는 관리형 파일의 `ask` 규칙을 능가하지 않습니다. [권한 규칙이 결합되는 방법](/docs/ko/permissions#settings-precedence)은 순서를 설명합니다. VS Code 확장에서 승인 카드는 프로젝트의 공유 파일을 포함한 대상 파일을 선택할 수 있으며, 이는 모든 사람을 위한 규칙을 변경합니다. CLI에서 Claude Code는 로컬 파일에만 씁니다.297* **권한 프롬프트에서 "Yes, and don't ask again"을 선택했지만 여전히 동일한 도구에 대해 프롬프트를 받습니다.** 해당 선택은 `allow` 규칙을 로컬 파일에 저장했으며, 로컬 파일의 `allow` 규칙은 프로젝트 또는 관리형 파일의 `ask` 규칙을 능가하지 않습니다. [권한 규칙이 결합되는 방법](/docs/ko/permissions#settings-precedence)은 순서를 설명합니다. VS Code 확장에서 승인 카드는 프로젝트의 공유 파일을 포함한 대상 파일을 선택할 수 있으며, 이는 모든 사람을 위한 규칙을 변경합니다. CLI에서 Claude Code는 로컬 파일에만 씁니다.
780* **조직의 허용 규칙이 여전히 사용자의 규칙과 함께 적용됩니다.** 이는 예상된 것입니다. Claude Code는 조직이 [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)를 설정하지 않는 한 범위 전체에서 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow)를 병합합니다.298* **조직의 허용 규칙이 여전히 사용자의 규칙과 함께 적용됩니다.** 이는 예상된 것입니다. Claude Code는 조직이 [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)를 설정하지 않는 한 범위 전체에서 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow)를 병합합니다.
781 299
782<span id="security-keys-where-the-stricter-value-applies" />300### 관리형 설정 우선순위의 예외
783
784<h3 id="exceptions-to-managed-settings-precedence">
785 관리형 설정 우선순위의 예외
786</h3>
787 301
788값이 세션을 제한하는 몇 가지 키의 경우, Claude Code는 관리형 설정을 재정의할 수 없는 범위의 제한적인 값을 준수합니다. 이 표에서 키를 찾아 어느 값을 준수하는지 그리고 어디서 준수하는지 확인합니다.302값이 세션을 제한하는 몇 가지 키의 경우, Claude Code는 관리형 설정을 재정의할 수 없는 범위의 제한적인 값을 준수합니다. 이 표에서 키를 찾아 어느 값을 준수하는지 그리고 어디서 준수하는지 확인합니다.
789 303
803 317
804[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하고 Claude Code를 자신 내부에서 실행하는 앱도 예외입니다. Claude Code는 모든 관리형 소스의 `model`, `fallbackModel`, `modelPicker`, 및 `modelOverrides` 키보다, 그리고 관리형 `env` 블록의 모델 선택 변수(예: `ANTHROPIC_MODEL` 및 `ANTHROPIC_DEFAULT_*_MODEL` 계열)보다 해당 앱의 모델 구성을 사용합니다. Claude Code는 앱이 자신의 것을 제공하지 않는 한 관리형 [`availableModels`](/docs/ko/settings-reference#availablemodels) 허용 목록을 적용 중으로 유지합니다.318[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하고 Claude Code를 자신 내부에서 실행하는 앱도 예외입니다. Claude Code는 모든 관리형 소스의 `model`, `fallbackModel`, `modelPicker`, 및 `modelOverrides` 키보다, 그리고 관리형 `env` 블록의 모델 선택 변수(예: `ANTHROPIC_MODEL` 및 `ANTHROPIC_DEFAULT_*_MODEL` 계열)보다 해당 앱의 모델 구성을 사용합니다. Claude Code는 앱이 자신의 것을 제공하지 않는 한 관리형 [`availableModels`](/docs/ko/settings-reference#availablemodels) 허용 목록을 적용 중으로 유지합니다.
805 319
806<h2 id="settings-in-cloud-sessions">320## 클라우드 세션의 설정
807 클라우드 세션의 설정
808</h2>
809 321
810[클라우드 세션](/docs/ko/claude-code-on-the-web)은 [클라우드 환경](/docs/ko/cloud-environments)에서 저장소의 신선한 복제본에서 실행되며, 머신에서 실행되지 않습니다. 이는 어느 설정이 도달하는지 변경합니다:322[클라우드 세션](/docs/ko/claude-code-on-the-web)은 [클라우드 환경](/docs/ko/cloud-environments)에서 저장소의 신선한 복제본에서 실행되며, 머신에서 실행되지 않습니다. 이는 어느 설정이 도달하는지 변경합니다:
811 323
816 328
817[설정에서 수행되는 것](/docs/ko/cloud-environments#what-carries-over-from-your-setup)은 나머지를 나열합니다: `CLAUDE.md`, skills, MCP servers, plugins, 및 credentials.329[설정에서 수행되는 것](/docs/ko/cloud-environments#what-carries-over-from-your-setup)은 나머지를 나열합니다: `CLAUDE.md`, skills, MCP servers, plugins, 및 credentials.
818 330
819<h2 id="what’s-next">331## 다음 단계
820 다음 단계
821</h2>
822 332
823* [모든 설정](/docs/ko/settings-reference): 모든 키, 설정 위치, 기본값, 예제333* [모든 설정](/docs/ko/settings-reference): 모든 키, 설정 위치, 기본값, 예제
824* [예제 설정 파일](/docs/ko/settings-example): 개인 파일, 팀 파일, 조직의 관리되는 파일334* [예제 설정 파일](/docs/ko/settings-example): 개인 파일, 팀 파일, 조직의 관리되는 파일