827 827
828hook์ ์ข
๋ฃ ์ฝ๋๋ ๋๊ตฌ ํธ์ถ์ด๋ ํ๋กฌํํธ์ฒ๋ผ hook์ ํธ๋ฆฌ๊ฑฐํ ์์
์ ๊ณ์ ์งํํ ์ง๋ฅผ Claude Code์ ์๋ ค์ค๋๋ค. ์๋ฃ๋ ์คํ์ ๊ฒฐ๊ณผ๋ ๋ค์ ์ธ ๊ฐ์ง ์ค ํ๋์
๋๋ค:828hook์ ์ข
๋ฃ ์ฝ๋๋ ๋๊ตฌ ํธ์ถ์ด๋ ํ๋กฌํํธ์ฒ๋ผ hook์ ํธ๋ฆฌ๊ฑฐํ ์์
์ ๊ณ์ ์งํํ ์ง๋ฅผ Claude Code์ ์๋ ค์ค๋๋ค. ์๋ฃ๋ ์คํ์ ๊ฒฐ๊ณผ๋ ๋ค์ ์ธ ๊ฐ์ง ์ค ํ๋์
๋๋ค:
829 829
830* **์ฑ๊ณต**: hook์ด 0์ผ๋ก ์ข
๋ฃํฉ๋๋ค. Claude Code๋ hook์ด ์ถ๋ ฅํ [JSON ์ถ๋ ฅ](#json-output) ํ๋๋ฅผ ์ ์ฉํ๋ฉฐ, ํด๋น ํ๋๊ฐ ์์
์ ์ฐจ๋จํ๊ฑฐ๋ ๊ฑฐ๋ถํ์ง ์๋ ํ ์์
์ด ์งํ๋ฉ๋๋ค.830* **์ฑ๊ณต**: hook์ด 0์ผ๋ก ์ข
๋ฃํฉ๋๋ค. Claude Code๋ hook์ด ์ถ๋ ฅํ [JSON ์ถ๋ ฅ](#json-output) ํ๋๋ฅผ ์ ์ฉํ๋ฉฐ, ํด๋น ํ๋๊ฐ ์์
์ ์ฐจ๋จํ๊ฑฐ๋ ๊ฑฐ๋ถํ์ง ์๋ ํ ์์
์ด ์งํ๋ฉ๋๋ค. ์์ธ๋ [๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ hook](#hooks-that-start-a-background-process)์์ ๋ค๋ฃน๋๋ค.
831* **์ฐจ๋จ ์ค๋ฅ**: hook์ด 2๋ก ์ข
๋ฃํฉ๋๋ค. [์ฐจ๋จํ ์ ์๋ ์ด๋ฒคํธ](#exit-code-2-behavior-per-event)์์ Claude Code๋ ์์
์ ์ค์งํฉ๋๋ค.831* **์ฐจ๋จ ์ค๋ฅ**: hook์ด 2๋ก ์ข
๋ฃํฉ๋๋ค. [์ฐจ๋จํ ์ ์๋ ์ด๋ฒคํธ](#exit-code-2-behavior-per-event)์์ Claude Code๋ ์์
์ ์ค์งํฉ๋๋ค.
832* **์ฐจ๋จํ์ง ์๋ ์ค๋ฅ**: hook์ด ๊ทธ ๋ฐ์ ์ฝ๋๋ก ์ข
๋ฃํ๊ฑฐ๋, ์์๋์ง ์๊ฑฐ๋ ์๋ชป๋ JSON์ ์ถ๋ ฅํ๋ ๋ฑ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์คํจํฉ๋๋ค. ์์
์ ์งํ๋๋ฉฐ, `PreToolUse`์ ๊ฐ์ ์ด๋ฒคํธ์์๋ ํธ๋์คํฌ๋ฆฝํธ์ `<hook name> hook error` ์๋ฆผ์ด ํ์๋ฉ๋๋ค. ์คํจํ hook์ด ์์
์ ์ฐจ๋จํ๊ฒ ํ๋ ค๋ฉด [`onFailure: "block"`](#block-the-action-when-a-hook-fails)์ ์ค์ ํฉ๋๋ค.832* **์ฐจ๋จํ์ง ์๋ ์ค๋ฅ**: hook์ด ๊ทธ ๋ฐ์ ์ฝ๋๋ก ์ข
๋ฃํ๊ฑฐ๋, ์์๋์ง ์๊ฑฐ๋ ์๋ชป๋ JSON์ ์ถ๋ ฅํ๋ ๋ฑ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์คํจํฉ๋๋ค. ์์
์ ์งํ๋๋ฉฐ, `PreToolUse`์ ๊ฐ์ ์ด๋ฒคํธ์์๋ ํธ๋์คํฌ๋ฆฝํธ์ `<hook name> hook error` ์๋ฆผ์ด ํ์๋ฉ๋๋ค. ์คํจํ hook์ด ์์
์ ์ฐจ๋จํ๊ฒ ํ๋ ค๋ฉด [`onFailure: "block"`](#block-the-action-when-a-hook-fails)์ ์ค์ ํฉ๋๋ค.
833 833
932* ์๊ฐ ์ด๊ณผ๋ `command`, `http`, `mcp_tool` hook์ ๋๊ตฌ ํธ์ถ์ ์ฐจ๋จํ์ง ์์ต๋๋ค. ํธ์ถ์ ์ผ๋ฐ [๊ถํ ํ๋ฆ](/docs/ko/permissions)์ ํตํด ๊ณ์๋๋ฏ๋ก ๋ฉ์ถ hook์ด ๊ฒ์ดํธ ์ญํ ์ ํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ๋ง์ธ์. `command` ๋๋ `http` hook์ด ์๊ฐ ์ด๊ณผ๋ ๋ ํธ์ถ์ ์ฐจ๋จํ๋ ค๋ฉด [`onFailure: "block"`](#block-the-action-when-a-hook-fails)์ ์ค์ ํฉ๋๋ค.932* ์๊ฐ ์ด๊ณผ๋ `command`, `http`, `mcp_tool` hook์ ๋๊ตฌ ํธ์ถ์ ์ฐจ๋จํ์ง ์์ต๋๋ค. ํธ์ถ์ ์ผ๋ฐ [๊ถํ ํ๋ฆ](/docs/ko/permissions)์ ํตํด ๊ณ์๋๋ฏ๋ก ๋ฉ์ถ hook์ด ๊ฒ์ดํธ ์ญํ ์ ํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ๋ง์ธ์. `command` ๋๋ `http` hook์ด ์๊ฐ ์ด๊ณผ๋ ๋ ํธ์ถ์ ์ฐจ๋จํ๋ ค๋ฉด [`onFailure: "block"`](#block-the-action-when-a-hook-fails)์ ์ค์ ํฉ๋๋ค.
933* ํ์์์์ ์ด๊ณผํ [Agent SDK ์ฝ๋ฐฑ hook](/docs/ko/agent-sdk/hooks)์ [๋๊ตฌ ํธ์ถ์ ์ฐจ๋จํฉ๋๋ค](#pretooluse).933* ํ์์์์ ์ด๊ณผํ [Agent SDK ์ฝ๋ฐฑ hook](/docs/ko/agent-sdk/hooks)์ [๋๊ตฌ ํธ์ถ์ ์ฐจ๋จํฉ๋๋ค](#pretooluse).
934 934
935<h4 id="hooks-that-start-a-background-process">
936 ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ hook
937</h4>
938
939๋ช
๋ น hook์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์ข
๋ฃํ๋ ๊ฒฝ์ฐ, Claude Code๊ฐ ์ฝ๊ธฐ๋ฅผ ๋ฉ์ถ ํ์ ํด๋น ํ๋ก์ธ์ค๊ฐ ์ถ๋ ฅํ๋ ๊ฑฐ๋ถ๋ ๋๊ตฌ ํธ์ถ์ ์ฐจ๋จํ์ง ์์ต๋๋ค. [async](#run-hooks-in-the-background)๊ฐ ์๋ hook์ ๊ฒฝ์ฐ Claude Code๋ hook ์์ฒด ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋ ์งํ hook์ ์ถ๋ ฅ ์ฝ๊ธฐ๋ฅผ ๋ง์นฉ๋๋ค.
940
941๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ธฐ ์ ์ ๊ฒฐ์ ์ ์ถ๋ ฅํ๊ณ , ํด๋น ํ๋ก์ธ์ค์ stdout๊ณผ stderr์ ๋ฆฌ๋๋ ์
ํฉ๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ํ์ฉ์ ์ถ๋ ฅํ ๋ค์ ํด๋น ํ๋ก์ธ์ค์ stdout๊ณผ stderr์ ๋ฆฌ๋๋ ์
ํ์ง ์๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ฉด Claude Code๋ ๋๊ตฌ ํธ์ถ์ ์ฐจ๋จํฉ๋๋ค. hook ์ค๋ฅ์๋ `refusing to honor the suspect capture`๊ฐ ํฌํจ๋ฉ๋๋ค.
942
943์ด `PreToolUse` hook ์คํฌ๋ฆฝํธ๋ `policy-check.sh`๋ก ๊ฒฐ์ ์ ์ถ๋ ฅํ ๋ค์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ฉํธ๋ฆญ์ ์
๋ก๋ํฉ๋๋ค:
944
945```bash theme={null}
946#!/bin/bash
947"$CLAUDE_PROJECT_DIR"/.claude/hooks/policy-check.sh || exit $?
948"$CLAUDE_PROJECT_DIR"/.claude/hooks/upload-metrics.sh >/dev/null 2>&1 &
949```
950
951์คํฌ๋ฆฝํธ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ค์์ ์ํํฉ๋๋ค:
952
953* **`|| exit $?`**: ๊ฒ์ฌ์ ์ข
๋ฃ ์ฝ๋๋ฅผ hook ์์ฒด์ ์ข
๋ฃ ์ฝ๋๋ก ๋ง๋ค์ด, ๊ฑฐ๋ถํ๊ธฐ ์ํด 2๋ก ์ข
๋ฃํ๋ ๊ฒ์ฌ๊ฐ ์ฌ์ ํ ์ฐจ๋จํ๋๋ก ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด hook์ ๋ง์ง๋ง ์ค์ ์ฝ๋์ธ 0์ผ๋ก ์ข
๋ฃํฉ๋๋ค.
954* **`>/dev/null 2>&1 &`**: ์ถ๋ ฅ์ ๋ฆฌ๋๋ ์
ํ ์ํ๋ก `upload-metrics.sh`๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ๋ฏ๋ก hook์ ์ถ๋ ฅ์ ์ด์ด ๋์ง ์์ต๋๋ค.
955
956์คํฌ๋ฆฝํธ๋ฅผ ํ
์คํธํ๋ ค๋ฉด `policy-check.sh`๊ฐ 2๋ก ์ข
๋ฃํ๋๋ก ๋ง๋ ๋ค์ hook๊ณผ ์ผ์นํ๋ ๋๊ตฌ ํธ์ถ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ๋๊ตฌ ํธ์ถ์ด ์ฐจ๋จ๋ฉ๋๋ค.
957
935<h4 id="block-the-action-when-a-hook-fails">958<h4 id="block-the-action-when-a-hook-fails">
936 hook์ด ์คํจํ ๋ ์์
์ฐจ๋จ959 hook์ด ์คํจํ ๋ ์์
์ฐจ๋จ
937</h4>960</h4>
1245 ํ
์ด๋ฒคํธ1268 ํ
์ด๋ฒคํธ
1246</h2>1269</h2>
1247 1270
1248๊ฐ ์ด๋ฒคํธ๋ Claude Code์ ์๋ช
์ฃผ๊ธฐ์์ ํ
์ด ์คํ๋ ์ ์๋ ์ง์ ์ ํด๋นํฉ๋๋ค. ์๋ ์น์
์ ์ธ์
์ค์ ๋ถํฐ ์์ด์ ํฑ ๋ฃจํ๋ฅผ ๊ฑฐ์ณ ์ธ์
์ข
๋ฃ๊น์ง, ์๋ช
์ฃผ๊ธฐ ์์๋๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค. ๊ฐ ์น์
์์๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ์์ , ์ง์ํ๋ matcher, ๋ฐ๋ JSON ์
๋ ฅ, ์ถ๋ ฅ์ ํตํด ๋์์ ์ ์ดํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.1271๊ฐ ์ด๋ฒคํธ๋ Claude Code์ ์๋ช
์ฃผ๊ธฐ์์ ํ
์ด ์คํ๋ ์ ์๋ ์ง์ ์ ํด๋นํฉ๋๋ค. ์๋ ์น์
์ ์ธ์
์ค์ ๋ถํฐ ์์ด์ ํฑ ๋ฃจํ๋ฅผ ๊ฑฐ์ณ ์ธ์
์ข
๋ฃ๊น์ง ์๋ช
์ฃผ๊ธฐ ์์์ ๋ง์ถฐ ์ ๋ ฌ๋์ด ์์ต๋๋ค. ๊ฐ ์น์
์์๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ์์ , ์ง์ํ๋ matcher, ์์ ํ๋ JSON ์
๋ ฅ, ๊ทธ๋ฆฌ๊ณ ์ถ๋ ฅ์ ํตํด ๋์์ ์ ์ดํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
1249 1272
1250<h3 id="sessionstart">1273<h3 id="sessionstart">
1251 SessionStart1274 SessionStart
1252</h3>1275</h3>
1253 1276
1254Claude Code๊ฐ ์ ์ธ์
์ ์์ํ๊ฑฐ๋ ๊ธฐ์กด ์ธ์
์ ์ฌ๊ฐํ ๋ ์คํ๋ฉ๋๋ค. ๊ธฐ์กด ์ด์๋ ์ฝ๋๋ฒ ์ด์ค์ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ ๊ฐ์ ๊ฐ๋ฐ ์ปจํ
์คํธ๋ฅผ ๋ก๋ํ๊ฑฐ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ํ์ ์๋ ์ ์ ์ปจํ
์คํธ์๋ ๋์ [CLAUDE.md](/docs/ko/memory)๋ฅผ ์ฌ์ฉํ์ธ์.1277Claude Code๊ฐ ์ ์ธ์
์ ์์ํ๊ฑฐ๋ ๊ธฐ์กด ์ธ์
์ ์ฌ๊ฐํ ๋ ์คํ๋ฉ๋๋ค. ๊ธฐ์กด ์ด์๋ ์ฝ๋๋ฒ ์ด์ค์ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ ๊ฐ์ ๊ฐ๋ฐ ์ปจํ
์คํธ๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ๋ ์ ์ฉํฉ๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ํ์ ์๋ ์ ์ ์ปจํ
์คํธ์๋ ๋์ [CLAUDE.md](/docs/ko/memory)๋ฅผ ์ฌ์ฉํ์ญ์์ค.
1255 1278
1256SessionStart๋ ๋ชจ๋ ์ธ์
์์ ์คํ๋๋ฏ๋ก ์ด ํ
์ ๋น ๋ฅด๊ฒ ์ ์งํ์ธ์. `type: "command"` ๋ฐ `type: "mcp_tool"` ํ
๋ง ์ง์๋ฉ๋๋ค. `mcp_tool` ํ
์ด ์คํ๋๋ ์์ ์ [MCP ๋๊ตฌ ํ
ํ๋](#mcp-tool-hook-fields)๋ฅผ ์ฐธ์กฐํ์ธ์.1279SessionStart๋ ๋ชจ๋ ์ธ์
์์ ์คํ๋๋ฏ๋ก ์ด๋ฌํ ํ
์ ๋น ๋ฅด๊ฒ ์ ์งํด์ผ ํฉ๋๋ค. `type: "command"` ๋ฐ `type: "mcp_tool"` ํ
๋ง ์ง์๋ฉ๋๋ค. `mcp_tool` ํ
์ด ์คํ๋๋ ์์ ์ [MCP ๋๊ตฌ ํ
ํ๋](#mcp-tool-hook-fields)๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
1257 1280
1258matcher ๊ฐ์ ์ธ์
์ด ์์๋ ๋ฐฉ์์ ํด๋นํฉ๋๋ค:1281matcher ๊ฐ์ ์ธ์
์ด ์์๋ ๋ฐฉ์์ ํด๋นํฉ๋๋ค.
1259 1282
1260| Matcher | ๋ฐ์ ์์ |1283| Matcher | ๋ฐ์ ์์ |
1261| :- | :- |1284| :- | :- |
1263| `resume` | `--resume`, `--continue` ๋๋ `/resume` |1286| `resume` | `--resume`, `--continue` ๋๋ `/resume` |
1264| `clear` | `/clear` |1287| `clear` | `/clear` |
1265| `compact` | ์๋ ๋๋ ์๋ ์์ถ |1288| `compact` | ์๋ ๋๋ ์๋ ์์ถ |
1266| `fork` | ๊ธฐ์กด ์ธ์
์์ ๋ถ๊ธฐ๋ ์ ์ธ์
: `--resume` ๋๋ `--continue`์ ํจ๊ป ์ฌ์ฉํ `--fork-session`, `/fork` ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ณต์ฌ๋ณธ, `/branch`, ๋๋ [๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ฎ๊ธด](/docs/ko/agent-view#from-inside-a-session) ๋ํ |1289| `fork` | ๊ธฐ์กด ์ธ์
์์ ๋ถ๊ธฐ๋ ์ ์ธ์
: `--resume` ๋๋ `--continue`์ ํจ๊ป ์ฌ์ฉํ `--fork-session`, `/fork` ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ณต์ฌ๋ณธ, `/branch`, ๋๋ [๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ด๋](/docs/ko/agent-view#from-inside-a-session)ํ ๋ํ |
1267 1290
1268v2.1.214 ์ด์ ์๋ ๋ถ๊ธฐ๋ ์ธ์
์ด source๋ฅผ `"resume"`์ผ๋ก ๋ณด๊ณ ํ์ต๋๋ค.1291v2.1.214 ์ด์ ์๋ ๋ถ๊ธฐ๋ ์ธ์
์ด source๋ฅผ `"resume"`์ผ๋ก ๋ณด๊ณ ํ์ต๋๋ค.
1269 1292
1270๋ํํ ์ธ์
์ ์์ํ๊ฑฐ๋, ์คํ ์ `--continue` ๋๋ `--resume`์ผ๋ก ๋ํ๋ฅผ ์ฌ๊ฐํ๊ฑฐ๋, `/clear`๋ฅผ ์คํํ๋ฉด SessionStart ํ
์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋ฉ๋๋ค. ๋ฐ๋ก ์
๋ ฅ์ ์์ํ ์ ์์ผ๋ฉฐ, ์ฌ๊ฐํ ๋ํ๋ ํ
์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ํ์๋ฉ๋๋ค. ๋ค๋ง Claude์ ์ฒซ ์๋ต์ ์ฌ์ ํ ํ
์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ฏ๋ก ํ
์ ์ปจํ
์คํธ๊ฐ Claude์ ์ ๋ฌ๋ฉ๋๋ค.1293๋ํํ ์ธ์
์ ์์ํ๊ฑฐ๋, ์คํ ์ `--continue` ๋๋ `--resume`์ผ๋ก ๋ํ๋ฅผ ์ฌ๊ฐํ๊ฑฐ๋, `/clear`๋ฅผ ์คํํ๋ฉด SessionStart ํ
์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋ฉ๋๋ค. ๋ฐ๋ก ์
๋ ฅํ ์ ์์ผ๋ฉฐ, ์ฌ๊ฐํ ๋ํ๋ ํ
์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ํ์๋ฉ๋๋ค. ๋ค๋ง Claude์ ์ฒซ ๋ฒ์งธ ์๋ต์ ์ฌ์ ํ ํ
์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ฏ๋ก ํ
์ ์ปจํ
์คํธ๊ฐ Claude์ ์ ๋ฌ๋ฉ๋๋ค.
1271 1294
1272์ธ์
๋ด์์ `/resume`์ผ๋ก ๋ํ๋ฅผ ์ ํํ๋ฉด ์ ํ์ ๋์ ํ
์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ํ
์ด ์์ง ์คํ ์ค์ผ ๋ `/clear`๋ฅผ ์คํํ๊ฑฐ๋ ๋ค๋ฅธ ๋ํ๋ก ์ ํํ๋ฉด ํ
์ด ๋ฐํํ๋ ๋ด์ฉ์ ์ธ์
์ ์ ์ฉ๋์ง ์์ต๋๋ค.1295์ธ์
๋ด์์ `/resume`์ผ๋ก ๋ํ๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ์๋ ์ ํ ์์ฒด๊ฐ ํ
์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ํ
์ด ์์ง ์คํ ์ค์ผ ๋ `/clear`๋ฅผ ์คํํ๊ฑฐ๋ ๋ค๋ฅธ ๋ํ๋ก ์ ํํ๋ฉด, ํ
์ด ๋ฐํํ๋ ๋ด์ฉ์ ์ธ์
์ ์ ์ฉ๋์ง ์์ต๋๋ค.
1273 1296
1274์คํ ์์๋ ์ฌ๊ฐ๋ ์ธ์
์ ํฌํจํด ๋์ผํ ๋๊ธฐ๊ฐ ์ ์ฉ๋ฉ๋๋ค. SessionStart ํ
์ด ์์ง ์คํ ์ค์ผ ๋ ๋ณด๋ธ ํ๋กฌํํธ๋ ํ
์ด ์๋ฃ๋ ๋๊น์ง Claude์ ์ ๋ฌ๋์ง ์์ต๋๋ค.1297์คํ ์์๋ ์ฌ๊ฐ๋ ์ธ์
์ ํฌํจํด ๊ฐ์ ๋๊ธฐ๊ฐ ์ ์ฉ๋ฉ๋๋ค. SessionStart ํ
์ด ์์ง ์คํ ์ค์ผ ๋ ๋ณด๋ธ ํ๋กฌํํธ๋ ํ
์ด ์๋ฃ๋ ๋๊น์ง Claude์ ์ ๋ฌ๋์ง ์์ต๋๋ค.
1275 1298
1276์ด๋ ์ชฝ ๋๊ธฐ ์ค์ด๋ `Esc`๋ฅผ ๋๋ฅด๋ฉด ํ๋กฌํํธ๋ฅผ ๋ณด๋ด์ง ์๊ณ ์
๋ ฅ๋์ผ๋ก ๋๋๋ฆด ์ ์์ต๋๋ค. ํ
์ ๊ณ์ ์คํ๋ฉ๋๋ค.1299๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋๊ธฐ ์ค์ `Esc`๋ฅผ ๋๋ฅด๋ฉด ํ๋กฌํํธ๋ฅผ ๋ณด๋ด์ง ์๊ณ ์
๋ ฅ๋์ผ๋ก ๋๋๋ฆด ์ ์์ต๋๋ค. ํ
์ ๊ณ์ ์คํ๋ฉ๋๋ค.
1277 1300
1278<h4 id="sessionstart-input">1301<h4 id="sessionstart-input">
1279 SessionStart ์
๋ ฅ1302 SessionStart ์
๋ ฅ
1280</h4>1303</h4>
1281 1304
1282[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ SessionStart ํ
์ `source`์, ์ ํ์ ์ผ๋ก `model`, `agent_type`, `session_title`์ ๋ฐ์ต๋๋ค:1305[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ SessionStart ํ
์ `source`์ ์ ํ์ ์ผ๋ก `model`, `agent_type`, `session_title`์ ๋ฐ์ต๋๋ค.
1283 1306
1284| ํ๋ | ์ค๋ช
|1307| ํ๋ | ์ค๋ช
|
1285| :- | :- |1308| :- | :- |
1286| `source` | ์ธ์
์ด ์์๋ ๋ฐฉ์: ์ ์ธ์
์ `"startup"`, ์ฌ๊ฐ๋ ์ธ์
์ `"resume"`, `/clear` ํ์๋ `"clear"`, ์์ถ ํ์๋ `"compact"`, ๊ธฐ์กด ์ธ์
์์ ๋ถ๊ธฐ๋ ์ ์ธ์
์ `"fork"` |1309| `source` | ์ธ์
์ด ์์๋ ๋ฐฉ์: ์ ์ธ์
์ `"startup"`, ์ฌ๊ฐ๋ ์ธ์
์ `"resume"`, `/clear` ์ดํ์๋ `"clear"`, ์์ถ ์ดํ์๋ `"compact"`, ๊ธฐ์กด ์ธ์
์์ ๋ถ๊ธฐ๋ ์ ์ธ์
์ `"fork"` |
1287| `model` | ํ์ฑ ๋ชจ๋ธ ์๋ณ์. ์๋ฅผ ๋ค์ด `/clear` ํ๋ ๋ํ ๋ณต๊ตฌ๋ฅผ ํตํด ์ธ์
์ด ๋ณต์๋ ๋๋ ์๋ต๋ ์ ์์ผ๋ฏ๋ก ์ฝ๊ธฐ ์ ์ ํ๋๊ฐ ์๋์ง ํ์ธํ์ธ์ |1310| `model` | ํ์ฑ ๋ชจ๋ธ ์๋ณ์์
๋๋ค. ์๋ฅผ ๋ค์ด `/clear` ์ดํ๋ ๋ํ ๋ณต๊ตฌ๋ฅผ ํตํด ์ธ์
์ด ๋ณต์๋ ๊ฒฝ์ฐ ์๋ต๋ ์ ์์ผ๋ฏ๋ก, ์ฝ๊ธฐ ์ ์ ํ๋๊ฐ ์๋์ง ํ์ธํ์ญ์์ค |
1288| `agent_type` | ์์ด์ ํธ ์ด๋ฆ. `claude --agent <name>`์ผ๋ก Claude Code๋ฅผ ์์ํ ๋ ์กด์ฌํฉ๋๋ค |1311| `agent_type` | ์์ด์ ํธ ์ด๋ฆ์ผ๋ก, `claude --agent <name>`์ผ๋ก Claude Code๋ฅผ ์์ํ ๊ฒฝ์ฐ์ ์กด์ฌํฉ๋๋ค |
1289| `session_title` | ์ธ์
์ ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ. ์ ๋ชฉ์ด ์ค์ ๋ ๊ฒฝ์ฐ ์กด์ฌํ๋ฉฐ, ์๋ฅผ ๋ค์ด `--name`, `/rename`, ํ
์ `sessionTitle` ์ถ๋ ฅ ๋๋ Agent SDK์ `renameSession()`์ผ๋ก ์ค์ ๋ฉ๋๋ค. `sessionTitle`์ ๋ด๋ณด๋ด๋ ํ
์ ๋จผ์ ์ด ํ๋๋ฅผ ํ์ธํ์ฌ ๊ธฐ์กด ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ ์ ์์ต๋๋ค |1312| `session_title` | ์ธ์
์ ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ผ๋ก, ์ ๋ชฉ์ด ์ค์ ๋ ๊ฒฝ์ฐ์ ์กด์ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด `--name`, `/rename`, ํ
์ `sessionTitle` ์ถ๋ ฅ, ๋๋ Agent SDK์ `renameSession()`์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. `sessionTitle`์ ์ถ๋ ฅํ๋ ํ
์ ์ด ํ๋๋ฅผ ๋จผ์ ํ์ธํ์ฌ ๊ธฐ์กด ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ ์ ์์ต๋๋ค |
1290 1313
1291์ด๋ฆ์ ์ง์ ํ์ง ์์ ์ธ์
์๋ [์์ฑ๋ ์ ๋ชฉ](/docs/ko/sessions#name-your-sessions)์ด ์์ ์ ์์ต๋๋ค. ์ด ์ ๋ชฉ์ ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ด ์๋๋ฉฐ `session_title`์ ๋ํ๋์ง ์์ต๋๋ค.1314์ด๋ฆ์ ์ง์ ํ์ง ์์ ์ธ์
์๋ [์์ฑ๋ ์ ๋ชฉ](/docs/ko/sessions#name-your-sessions)์ด ์์ ์ ์์ต๋๋ค. ์ด ์ ๋ชฉ์ ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ด ์๋๋ฉฐ `session_title`์ ๋ํ๋์ง ์์ต๋๋ค.
1292 1315
1293`source`๊ฐ `"resume"` ๋๋ `"fork"`์ด๊ณ ํธ๋์คํฌ๋ฆฝํธ์ Claude์ ์๋ต์ด ํ๋ ์ด์ ํฌํจ๋ ๊ฒฝ์ฐ SessionStart ํ
์ ์๋ ๋ค ๊ฐ์ง ํ๋๋ ๋ฐ์ต๋๋ค. ํ
์ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋๋ ๋ํ๋ฅผ ์ฌ๊ฐํ๋ ๋ฐ ๋๋ ๋น์ฉ์ ์ฒซ ์์ฒญ ์ ์ ๋ณด๊ณ ํ ์ ์์ต๋๋ค(์: [`systemMessage`](#json-output)). ์ด ํ๋์๋ Claude Code v2.1.251 ์ด์์ด ํ์ํฉ๋๋ค.1316`source`๊ฐ `"resume"` ๋๋ `"fork"`์ด๊ณ ํธ๋์คํฌ๋ฆฝํธ์ Claude์ ์๋ต์ด ํ๋ ์ด์ ์์ผ๋ฉด, SessionStart ํ
์ ์๋ ๋ค ํ๋๋ ๋ฐ์ต๋๋ค. ํ
์ ์ด๋ฅผ ์ฌ์ฉํด ์ค๋๋ ๋ํ๋ฅผ ์ฌ๊ฐํ๋ ๋น์ฉ์ ์ฒซ ๋ฒ์งธ ์์ฒญ ์ ์ ๋ณด๊ณ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด [`systemMessage`](#json-output)๋ก ๋ณด๊ณ ํ ์ ์์ต๋๋ค. ์ด ํ๋์๋ Claude Code v2.1.251 ์ด์์ด ํ์ํฉ๋๋ค.
1294 1317
1295| ํ๋ | ์ค๋ช
|1318| ํ๋ | ์ค๋ช
|
1296| :- | :- |1319| :- | :- |
1297| `seconds_since_last_response` | ์ฌ๊ฐ๋ ํธ๋์คํฌ๋ฆฝํธ์ ๋ง์ง๋ง ์๋ต ์ดํ ๊ฒฝ๊ณผํ ์ค์ ์๊ฐ(์ด) |1320| `seconds_since_last_response` | ์ฌ๊ฐ๋ ํธ๋์คํฌ๋ฆฝํธ์ ๋ง์ง๋ง ์๋ต ์ดํ ๊ฒฝ๊ณผํ ์ค์ ์๊ฐ(์ด) |
1298| `context_tokens` | ์ฌ๊ฐ๋ ์ธ์
์ ์ฒซ ์์ฒญ์ด ํ๋กฌํํธ๋ก ๋ค์ ๋ณด๋ด๋ ํ ํฐ |1321| `context_tokens` | ์ฌ๊ฐ๋ ์ธ์
์ ์ฒซ ๋ฒ์งธ ์์ฒญ์ด ํ๋กฌํํธ๋ก ๋ค์ ์ ์กํ๋ ํ ํฐ ์ |
1299| `prompt_cache_likely_expired` | ๋ง์ง๋ง ์๋ต์ด ์ธ์
์ [ํ๋กฌํํธ ์บ์ ์๋ช
](/docs/ko/prompt-caching#cache-lifetime)๋ณด๋ค ์ค๋๋์๊ฑฐ๋ ์ดํ ์์ถ์ด ์บ์๋ ๋ํ๋ฅผ ๋์ฒดํ ๊ฒฝ์ฐ `true` |1322| `prompt_cache_likely_expired` | ๋ง์ง๋ง ์๋ต์ด ์ธ์
์ [ํ๋กฌํํธ ์บ์ ์๋ช
](/docs/ko/prompt-caching#cache-lifetime)๋ณด๋ค ์ค๋๋์๊ฑฐ๋ ์ดํ์ ์์ถ์ด ์บ์๋ ๋ํ๋ฅผ ๋์ฒดํ ๊ฒฝ์ฐ `true` |
1300| `estimated_cache_write_usd` | ์ธ์
์ ๋ชจ๋ธ์์ `context_tokens`๋ฅผ ํ๋กฌํํธ ์บ์์ ์ฐ๋ ๋ฐ ๋๋ ์์ ๋น์ฉ(๋ฏธ๊ตญ ๋ฌ๋ฌ). ์๋ต์ ์ ์ธ๋ฉ๋๋ค |1323| `estimated_cache_write_usd` | ์ธ์
์ ๋ชจ๋ธ์์ `context_tokens`๋ฅผ ํ๋กฌํํธ ์บ์์ ์ฐ๋ ๋ฐ ๋๋ ์์ ๋น์ฉ(๋ฏธ๊ตญ ๋ฌ๋ฌ)์ผ๋ก, ์๋ต์ ์ ์ธ๋ฉ๋๋ค |
1301 1324
1302์ด ์์๋ ๋ง์ง๋ง ์๋ต ํ 90๋ถ ๋ค์ ์ฌ๊ฐ๋ ์ธ์
์ ์
๋ ฅ์ ๋ณด์ฌ ์ค๋๋ค:1325๋ค์ ์์๋ ๋ง์ง๋ง ์๋ต ํ 90๋ถ ๋ค์ ์ฌ๊ฐ๋ ์ธ์
์ ์
๋ ฅ์ ๋ณด์ฌ์ค๋๋ค.
1303 1326
1304```json theme={null}1327```json theme={null}
1305{1328{
1320 SessionStart ๊ฒฐ์ ์ ์ด1343 SessionStart ๊ฒฐ์ ์ ์ด
1321</h4>1344</h4>
1322 1345
1323SessionStart ํ
์ Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ, ์ฒซ ์ฌ์ฉ์ ๋ฉ์์ง ์ ๊ณต, ์ธ์
์ ๋ชฉ ์ค์ , ํ์ผ ๊ฐ์, ์คํฌ ๋ค์ ๋ก๋๋ฅผ ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์ ๊ฐ ํญ๋ชฉ์ ํด๋นํ๋ ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.1346SessionStart ํ
์ Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ, ์ฒซ ๋ฒ์งธ ์ฌ์ฉ์ ๋ฉ์์ง ์ ๊ณต, ์ธ์
์ ๋ชฉ ์ค์ , ํ์ผ ๊ฐ์, ์คํฌ ๋ค์ ๋ถ๋ฌ์ค๊ธฐ๋ฅผ ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์ ๊ฐ๊ฐ์ ํด๋นํ๋ ํ๋๋ฅผ ๋ฐํํ์ญ์์ค.
1324 1347
1325| ํ๋ | ์ค๋ช
|1348| ํ๋ | ์ค๋ช
|
1326| :- | :- |1349| :- | :- |
1327| `additionalContext` | ๋ํ ์์ ์ ์ฒซ ํ๋กฌํํธ ์ ์ Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. ํ
์คํธ๊ฐ ์ ๋ฌ๋๋ ๋ฐฉ์๊ณผ ๋ฃ์ ๋ด์ฉ์ [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |1350| `additionalContext` | ๋ํ ์์ ์ ์ฒซ ๋ฒ์งธ ํ๋กฌํํธ ์ ์ Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. ํ
์คํธ๊ฐ ์ ๋ฌ๋๋ ๋ฐฉ์๊ณผ ๋ฃ์ ๋ด์ฉ์ [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
1328| `initialUserMessage` | `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์ ์ธ์
์ ์ฒซ ์ฌ์ฉ์ ๋ฉ์์ง๋ก ์ฌ์ฉ๋๋ ๋ฌธ์์ด์
๋๋ค. ํ๋กฌํํธ๋ฅผ ์ ๋ฌํ์ง ์์๋ ์ฒซ ํด์ด ๋ฉ๋๋ค. ํ๋กฌํํธ๋ฅผ ์ ๋ฌํ๋ฉด ๊ทธ ํ๋กฌํํธ๋ ๋ค์ ํด์ผ๋ก ์ด์ด์ง๋๋ค |1351| `initialUserMessage` | `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์ ์ธ์
์ ์ฒซ ๋ฒ์งธ ์ฌ์ฉ์ ๋ฉ์์ง๋ก ์ฌ์ฉ๋๋ ๋ฌธ์์ด์
๋๋ค. ํ๋กฌํํธ๋ฅผ ์ ๋ฌํ์ง ์์๋ ์ฒซ ๋ฒ์งธ ํด์ด ๋ฉ๋๋ค. ์ ๋ฌํ ํ๋กฌํํธ๋ ๋ค์ ํด์ผ๋ก ์ด์ด์ง๋๋ค |
1329| `sessionTitle` | ์ธ์
์ ๋ชฉ์ ์ค์ ํ๋ฉฐ, `/rename`๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋
๋๋ค. `source`๊ฐ `"startup"`, `"resume"` ๋๋ `"fork"`์ผ ๋ ์ ์ฉ๋ฉ๋๋ค |1352| `sessionTitle` | `/rename`๊ณผ ๊ฐ์ ํจ๊ณผ๋ก ์ธ์
์ ๋ชฉ์ ์ค์ ํฉ๋๋ค. `source`๊ฐ `"startup"`, `"resume"` ๋๋ `"fork"`์ผ ๋ ์ ์ฉ๋ฉ๋๋ค |
1330| `watchPaths` | ์ด ์ธ์
๋์ [FileChanged](#filechanged) ์ด๋ฒคํธ๋ฅผ ๊ฐ์ํ ์ ๋ ๊ฒฝ๋ก ๋ฐฐ์ด |1353| `watchPaths` | ์ด ์ธ์
๋์ [FileChanged](#filechanged) ์ด๋ฒคํธ๋ฅผ ๊ฐ์ํ ์ ๋ ๊ฒฝ๋ก ๋ฐฐ์ด |
1331| `reloadSkills` | ๋ถ๋ฆฌ์ธ์
๋๋ค. `true`์ด๋ฉด SessionStart ํ
์ด ์๋ฃ๋ ํ Claude Code๊ฐ [์คํฌ](/docs/ko/skills) ๋ฐ ๋ช
๋ น ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ค์ ์ค์บํฉ๋๋ค. [ํ
์ด ์ค์นํ ์คํฌ ๋ค์ ๋ก๋](#reload-skills-that-a-hook-installs)๋ฅผ ์ฐธ์กฐํ์ธ์ |1354| `reloadSkills` | ๋ถ๋ฆฌ์ธ์
๋๋ค. `true`์ด๋ฉด Claude Code๋ SessionStart ํ
์ด ์๋ฃ๋ ํ [์คํฌ](/docs/ko/skills) ๋ฐ ๋ช
๋ น ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ค์ ๊ฒ์ํฉ๋๋ค. [ํ
์ด ์ค์นํ ์คํฌ ๋ค์ ๋ถ๋ฌ์ค๊ธฐ](#reload-skills-that-a-hook-installs)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
1332 1355
1333์ด ์ถ๋ ฅ์ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ณ ์ธ์
์ด๋ฆ์ ์ง์ ํฉ๋๋ค.1356๋ค์ ์ถ๋ ฅ์ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ณ ์ธ์
์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
1334 1357
1335```json theme={null}1358```json theme={null}
1336{1359{
1342}1365}
1343```1366```
1344 1367
1345์ปจํ
์คํธ๋ง ์ถ๊ฐํ๋ ํ
์ JSON์ ๋ง๋ค์ง ์๊ณ ์ถ๋ ฅ๋ง ํด๋ ๋ฉ๋๋ค. Claude Code๋ SessionStart ํ
์ [์ผ๋ฐ ํ
์คํธ stdout](#exit-code-0)์ Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์
๋๋ค.1368์ปจํ
์คํธ๋ง ์ถ๊ฐํ๋ ํ
์ JSON์ ๋ง๋ค์ง ์๊ณ ์ถ๋ ฅํ๊ธฐ๋ง ํด๋ ๋ฉ๋๋ค. Claude Code๊ฐ SessionStart ํ
์ [์ผ๋ฐ ํ
์คํธ stdout](#exit-code-0)์ Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์
๋๋ค.
1346 1369
1347ํ๋ฌ๊ทธ์ธ์ SessionStart ํ
์ด `initialUserMessage` ๋๋ `sessionTitle`์ ์ ๊ณตํ๋ค๋ฉด ์ธ์
์ด ์์๋๊ธฐ ์ ์ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ธ์. SessionStart ํ
์ด ์คํ๋ ํ์ ์ค์น๊ฐ ์๋ฃ๋ ํ๋ฌ๊ทธ์ธ์ ๋ ํ๋๋ Claude Code๊ฐ ๋ฌด์ํฉ๋๋ค.1370ํ๋ฌ๊ทธ์ธ์ SessionStart ํ
์ด `initialUserMessage` ๋๋ `sessionTitle`์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ, ์ธ์
์ด ์์๋๊ธฐ ์ ์ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ญ์์ค. SessionStart ํ
์ด ์คํ๋ ํ์ ์ค์น๊ฐ ์๋ฃ๋ ํ๋ฌ๊ทธ์ธ์ ๋ ํ๋๋ Claude Code๊ฐ ๋ฌด์ํฉ๋๋ค.
1348 1371
1349<h4 id="reload-skills-that-a-hook-installs">1372<h4 id="reload-skills-that-a-hook-installs">
1350 ํ
์ด ์ค์นํ ์คํฌ ๋ค์ ๋ก๋1373 ํ
์ด ์ค์นํ ์คํฌ ๋ค์ ๋ถ๋ฌ์ค๊ธฐ
1351</h4>1374</h4>
1352 1375
1353SessionStart ํ
์ด ์ค์นํ ์คํฌ์ ๊ฐ์ ์ธ์
์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ค๋ฉด `reloadSkills`๋ฅผ ๋ฐํํ์ธ์. ์คํฌ ๊ฒ์์ ์ผ๋ฐ์ ์ผ๋ก SessionStart ํ
์ด ์๋ฃ๋๊ธฐ ์ ์ ์คํ๋๋ฏ๋ก, ์ด ํ๋๊ฐ ์์ผ๋ฉด ํ
์ด `~/.claude/skills/` ๋๋ `.claude/skills/`์ ์ด ํ์ผ์ด ์ฒซ ํ๋กฌํํธ ์คํ ์ ๋๋ฝ๋ ์ ์์ต๋๋ค.1376SessionStart ํ
์ด ์ค์นํ ์คํฌ์ ๊ฐ์ ์ธ์
์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ค๋ฉด `reloadSkills`๋ฅผ ๋ฐํํ์ญ์์ค. ์คํฌ ๊ฒ์์ ์ผ๋ฐ์ ์ผ๋ก SessionStart ํ
์ด ์๋ฃ๋๊ธฐ ์ ์ ์คํ๋๋ฏ๋ก, ์ด ํ๋๊ฐ ์์ผ๋ฉด ํ
์ด `~/.claude/skills/` ๋๋ `.claude/skills/`์ ์ด ํ์ผ์ด ์ฒซ ๋ฒ์งธ ํ๋กฌํํธ ์คํ ์ ๋๋ฝ๋ ์ ์์ต๋๋ค.
1354 1377
1355์ด ์์๋ ๊ณต์ ์คํฌ ์ ์ฅ์๋ฅผ ๋๊ธฐํํ๊ณ ๋ค์ ์ค์บ์ ์์ฒญํฉ๋๋ค.1378๋ค์ ์์๋ ๊ณต์ ์คํฌ ์ ์ฅ์๋ฅผ ๋๊ธฐํํ๊ณ ๋ค์ ๊ฒ์์ ์์ฒญํฉ๋๋ค.
1356 1379
1357```bash theme={null}1380```bash theme={null}
1358#!/bin/bash1381#!/bin/bash
1363echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1386echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'
1364```1387```
1365 1388
1366์ ์ฅ์ URL์ ์์์ฉ์
๋๋ค. ์์ ์ ์คํฌ ์ ์ฅ์๋ก ๋ฐ๊พธ์ธ์.1389์ ์ฅ์ URL์ ์๋ฆฌ ํ์์์
๋๋ค. ์์ฒด ์คํฌ ์ ์ฅ์๋ก ๋ฐ๊พธ์ญ์์ค.
1367 1390
1368<h4 id="persist-environment-variables">1391<h4 id="persist-environment-variables">
1369 ํ๊ฒฝ ๋ณ์ ์ ์ง1392 ํ๊ฒฝ ๋ณ์ ์ ์ง
1370</h4>1393</h4>
1371 1394
1372SessionStart ํ
์ `CLAUDE_ENV_FILE` ํ๊ฒฝ ๋ณ์์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด ๋ณ์๋ ์ธ์
ํ๋ฐ์ Claude๊ฐ ์คํํ๋ ์
ธ ๋ช
๋ น์ ์ํด ํ๊ฒฝ ๋ณ์๋ฅผ ์ ์งํ ์ ์๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.1395SessionStart ํ
์ `CLAUDE_ENV_FILE` ํ๊ฒฝ ๋ณ์์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ด ๋ณ์๋ Claude๊ฐ ์ธ์
ํ๋ฐ์ ์คํํ๋ ์
ธ ๋ช
๋ น์ ์ํด ํ๊ฒฝ ๋ณ์๋ฅผ ์ ์งํ ์ ์๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
1373 1396
1374๊ฐ๋ณ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ค๋ฉด `CLAUDE_ENV_FILE`์ `export` ๋ฌธ์ ์์ฑํ์ธ์. ๋ค๋ฅธ ํ
์ด ์ค์ ํ ๋ณ์๋ฅผ ๋ณด์กดํ๋ ค๋ฉด ์ถ๊ฐ(`>>`)๋ฅผ ์ฌ์ฉํ์ธ์:1397๊ฐ๋ณ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ค๋ฉด `CLAUDE_ENV_FILE`์ `export` ๋ฌธ์ ์์ฑํ์ญ์์ค. ๋ค๋ฅธ ํ
์ด ์ค์ ํ ๋ณ์๋ฅผ ๋ณด์กดํ๋ ค๋ฉด ์ถ๊ฐ(`>>`)๋ฅผ ์ฌ์ฉํ์ญ์์ค.
1375 1398
1376```bash theme={null}1399```bash theme={null}
1377#!/bin/bash1400#!/bin/bash
1385exit 01408exit 0
1386```1409```
1387 1410
1388์ค์ ๋ช
๋ น์์ ๋ฐ์ํ ๋ชจ๋ ํ๊ฒฝ ๋ณ๊ฒฝ ์ฌํญ์ ์บก์ฒํ๋ ค๋ฉด ์ ํ์ ๋ด๋ณด๋ธ ๋ณ์๋ฅผ ๋น๊ตํ์ธ์:1411์ค์ ๋ช
๋ น์ผ๋ก ์ธํ ๋ชจ๋ ํ๊ฒฝ ๋ณ๊ฒฝ์ ์บก์ฒํ๋ ค๋ฉด ์ ํ์ ๋ด๋ณด๋ธ ๋ณ์๋ฅผ ๋น๊ตํ์ญ์์ค.
1389 1412
1390```bash theme={null}1413```bash theme={null}
1391#!/bin/bash1414#!/bin/bash
1404exit 01427exit 0
1405```1428```
1406 1429
1407๊ฐ Bash ๋ช
๋ น์ ๋ช
๋ น ์์ฒด๋ณด๋ค ๋จผ์ ํ์ผ ๋ด์ฉ์ ์
ธ ์ฝ๋๋ก ์คํํ๋ฏ๋ก, ํ์ผ์ ๊ฐ ์ค์๋ `export PATH="$PATH:./node_modules/.bin"`์ `$PATH` ์ฐธ์กฐ์ฒ๋ผ Bash๊ฐ ํ๊ฐํ๋ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.1430๊ฐ Bash ๋ช
๋ น์ ๋ช
๋ น ์์ฒด๋ณด๋ค ๋จผ์ ํ์ผ ๋ด์ฉ์ ์
ธ ์ฝ๋๋ก ์คํํ๋ฏ๋ก, ํ์ผ์ ์ค์๋ `export PATH="$PATH:./node_modules/.bin"`์ `$PATH` ์ฐธ์กฐ์ฒ๋ผ Bash๊ฐ ํ๊ฐํ๋ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
1408 1431
1409<a id="persisted-variables-in-powershell-commands" />1432<a id="persisted-variables-in-powershell-commands" />
1410 1433
1412 PowerShell ๋ช
๋ น์์ ์ ์ง๋๋ ๋ณ์1435 PowerShell ๋ช
๋ น์์ ์ ์ง๋๋ ๋ณ์
1413</h5>1436</h5>
1414 1437
1415Claude Code v2.1.296 ์ด์์์๋ [PowerShell](/docs/ko/tools-reference#powershell-tool) ๋ช
๋ น๋ `CLAUDE_ENV_FILE`์ ๋ณ์๋ฅผ ๋ฐ์ง๋ง, PowerShell์ ํ์ผ์ ์คํํ์ง ์์ต๋๋ค. ๋์ Claude Code๊ฐ ํ์ผ์์ ํ ๋น๋ฌธ์ ์ฝ์ด PowerShell ๋ช
๋ น์ ํ๊ฒฝ์ ๋ณต์ฌํฉ๋๋ค. ์ด ์ธ์
์ ๋ชจ๋ ํ
์ด ์ด ๋ด์ฉ๊ณผ ์คํ ์ ์ [`CLAUDE_ENV_FILE`์ ์ค์ ](/docs/ko/env-vars)ํ ์คํฌ๋ฆฝํธ ์ ์ฒด์์ ๋ชจ๋ ์ค์ด ๋ค์ ์ค ํ๋์ผ ๋๋ง ์ด๋ ๊ฒ ํฉ๋๋ค:1438Claude Code v2.1.296 ์ด์์์๋ [PowerShell](/docs/ko/tools-reference#powershell-tool) ๋ช
๋ น๋ `CLAUDE_ENV_FILE`์ ๋ณ์๋ฅผ ๋ฐ์ง๋ง, PowerShell์ ํ์ผ์ ์คํํ์ง ์์ต๋๋ค. ๋์ Claude Code๊ฐ ํ์ผ์์ ํ ๋น๋ฌธ์ ์ฝ์ด PowerShell ๋ช
๋ น์ ํ๊ฒฝ์ ๋ณต์ฌํฉ๋๋ค. ์ด ์ธ์
์ ๋ชจ๋ ํ
์ด ์ด ๋ด์ฉ๊ณผ ์คํ ์ ์ [`CLAUDE_ENV_FILE`๋ก ์ค์ ](/docs/ko/env-vars)ํ ์คํฌ๋ฆฝํธ ์ ์ฒด์์ ๋ชจ๋ ์ค์ด ๋ค์ ์ค ํ๋์ผ ๋๋ง ๊ทธ๋ ๊ฒ ํฉ๋๋ค.
1416 1439
1417* ๋น ์ค ๋๋ `#` ์ฃผ์1440* ๋น ์ค ๋๋ `#` ์ฃผ์
1418* ์ค ์์ ๋ถ๋ถ์ ํ ๋น๋ฌธ ํ๋. `export NAME=value`, `declare -x NAME=value` ๋๋ `NAME=value` ํ์์ผ๋ก ์์ฑ๋๋ฉฐ, ๊ฐ์ Bash๊ฐ ์์ฑ๋ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๊ฐ์ด์ด์ผ ํ๊ณ ๋ค์ ์์๋ฅผ ์์ ๋กญ๊ฒ ์กฐํฉํด ๊ตฌ์ฑ๋ฉ๋๋ค: ๋ฌธ์, ์ซ์, `_ @ % + = : , . / -` ๋ฌธ์๋ง ์ฌ์ฉํ๋ ๋ฐ์ดํ ์๋ ํ
์คํธ, ์์๋ฐ์ดํ๋ก ๋ฌถ์ธ ํ
์คํธ, ๋ด๋ถ์ ๋ชจ๋ `$`, ๋ฐฑํฑ, `"`๊ฐ ๋ฐฑ์ฌ๋์๋ก ์ด์ค์ผ์ดํ๋ ํฐ๋ฐ์ดํ ํ
์คํธ1441* ์ค ์์ ๋ถ๋ถ์ ํ ๋น๋ฌธ ํ๋๋ก, `export NAME=value`, `declare -x NAME=value` ๋๋ `NAME=value` ํ์์ผ๋ก ์์ฑ๋๊ณ , ๊ฐ์ Bash๊ฐ ์์ฑ๋ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๊ฐ์ด๋ฉฐ ๋ค์ ๋ถ๋ถ์ ์์๋ก ์กฐํฉํ ๊ฒ: ๋ฌธ์, ์ซ์, `_ @ % + = : , . / -` ๋ฌธ์๋ง ์ฌ์ฉํ๋ ๋ฐ์ดํ ์๋ ํ
์คํธ, ์์๋ฐ์ดํ ์์ ํ
์คํธ, ๊ทธ๋ฆฌ๊ณ ๋ด๋ถ์ ๋ชจ๋ `$`, ๋ฐฑํฑ, `"`๊ฐ ๋ฐฑ์ฌ๋์๋ก ์ด์ค์ผ์ดํ๋ ํฐ๋ฐ์ดํ ์์ ํ
์คํธ
1419 1442
1420์ด์ค์ผ์ดํ๋์ง ์์ `$PATH`๊ฐ ์๋ `export PATH="$PATH:./node_modules/.bin"`, `source` ๋ช
๋ น, `direnv export bash`๊ฐ ์ถ๋ ฅํ๋ `$'...'` ๋ฌธ์์ด์ฒ๋ผ ๋ค๋ฅธ ์ข
๋ฅ์ ์ค์ด ํ๋๋ผ๋ ์์ผ๋ฉด PowerShell ๋ช
๋ น์ ์ด๋ค ๋ณ์๋ ๋ฐ์ง ๋ชปํ๋ฉฐ, `claude --debug`๋ `Session environment is not all plain assignments`๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํฉ๋๋ค. Bash ๋ช
๋ น์ ์ฌ์ ํ ๋ชจ๋ ๋ณ์๋ฅผ ๋ฐ์ต๋๋ค. Windows์์๋ Git Bash์ Windows๊ฐ ๊ฒฝ๋ก๋ฅผ ๋ค๋ฅด๊ฒ ํ๊ธฐํ๊ธฐ ๋๋ฌธ์ PowerShell ๋ช
๋ น์ ๊ฐ์ `/` ๋๋ `\`๊ฐ ํฌํจ๋ ๋ณ์๋ ๋ฐ์ง ์์ต๋๋ค. [์๋๋ฐ์ค](/docs/ko/sandboxing)๊ฐ ์ ์ฉ๋ PowerShell ๋ช
๋ น์ ์ด๋ค ๋ณ์๋ ๋ฐ์ง ์์ต๋๋ค.1443์ด์ค์ผ์ดํ๋์ง ์์ `$PATH`๊ฐ ์๋ `export PATH="$PATH:./node_modules/.bin"`, `source` ๋ช
๋ น, ๋๋ `direnv export bash`๊ฐ ์ถ๋ ฅํ๋ `$'...'` ๋ฌธ์์ด์ฒ๋ผ ๋ค๋ฅธ ์ข
๋ฅ์ ์ค์ด ํ๋๋ผ๋ ์์ผ๋ฉด, PowerShell ๋ช
๋ น์ ์ด๋ค ๋ณ์๋ ๋ฐ์ง ๋ชปํ๋ฉฐ `claude --debug`๋ `Session environment is not all plain assignments`๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํฉ๋๋ค. Bash ๋ช
๋ น์ ์ฌ์ ํ ๋ชจ๋ ๋ณ์๋ฅผ ๋ฐ์ต๋๋ค. Windows์์๋ Git Bash์ Windows๊ฐ ๊ฒฝ๋ก๋ฅผ ๋ค๋ฅด๊ฒ ํ๊ธฐํ๋ฏ๋ก, ๊ฐ์ `/` ๋๋ `\`๊ฐ ํฌํจ๋ ๋ณ์๋ PowerShell ๋ช
๋ น์ ์ ๋ฌ๋์ง ์์ต๋๋ค. [์๋๋ฐ์ค](/docs/ko/sandboxing)๋ PowerShell ๋ช
๋ น์ ์ด๋ค ๋ณ์๋ ๋ฐ์ง ๋ชปํฉ๋๋ค.
1421 1444
1422<Note>1445<Note>
1423 `CLAUDE_ENV_FILE`์ SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged), [FileChanged](#filechanged) ํ
์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ
์ด๋ฒคํธ๋ ์ด ๋ณ์์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, [`"shell": "powershell"`](#command-hook-fields)์ ํตํด์๋ Git Bash๊ฐ ์๋ Windows์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก๋ PowerShell์์ ์คํ๋๋ ํ
๋ ์ ๊ทผํ ์ ์์ต๋๋ค.1446 `CLAUDE_ENV_FILE`์ SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged), [FileChanged](#filechanged) ํ
์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ
์ด๋ฒคํธ๋ ์ด ๋ณ์์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, [`"shell": "powershell"`](#command-hook-fields)์ ํตํด์๋ Git Bash๊ฐ ์๋ Windows์ ๊ธฐ๋ณธ ๋์์ผ๋ก๋ PowerShell์์ ์คํ๋๋ ํ
๋ ์ ๊ทผํ ์ ์์ต๋๋ค.
1424</Note>1447</Note>
1425 1448
1426<h3 id="setup">1449<h3 id="setup">
1427 Setup1450 Setup
1428</h3>1451</h3>
1429 1452
1430`--init-only`๋ก Claude Code๋ฅผ ์คํํ๊ฑฐ๋, `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์ `--init` ๋๋ `--maintenance`๋ก ์คํํ ๋๋ง ๋ฐ์ํฉ๋๋ค. ์ผ๋ฐ ์์ ์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ์ผ๋ฐ ์ธ์
์์๊ณผ ๋ณ๋๋ก CI๋ ์คํฌ๋ฆฝํธ์์ ๋ช
์์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ ์ผํ์ฑ ์์กด์ฑ ์ค์น๋ ์์ฝ๋ ์ ๋ฆฌ์ ์ฌ์ฉํ์ธ์. ์ธ์
๋ณ ์ด๊ธฐํ์๋ ๋์ [SessionStart](#sessionstart)๋ฅผ ์ฌ์ฉํ์ธ์.1453`--init-only`๋ก Claude Code๋ฅผ ์คํํ๊ฑฐ๋, `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์ `--init` ๋๋ `--maintenance`๋ก ์คํํ ๋๋ง ๋ฐ์ํฉ๋๋ค. ์ผ๋ฐ ์์ ์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ์ผ๋ฐ ์ธ์
์์๊ณผ ๋ณ๋๋ก CI๋ ์คํฌ๋ฆฝํธ์์ ๋ช
์์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ ์ผํ์ฑ ์์กด์ฑ ์ค์น๋ ์์ฝ๋ ์ ๋ฆฌ์ ์ฌ์ฉํ์ญ์์ค. ์ธ์
๋ณ ์ด๊ธฐํ์๋ ๋์ [SessionStart](#sessionstart)๋ฅผ ์ฌ์ฉํ์ญ์์ค.
1431 1454
1432matcher ๊ฐ์ ํ
์ ํธ๋ฆฌ๊ฑฐํ CLI ํ๋๊ทธ์ ํด๋นํฉ๋๋ค:1455matcher ๊ฐ์ ํ
์ ํธ๋ฆฌ๊ฑฐํ CLI ํ๋๊ทธ์ ํด๋นํฉ๋๋ค.
1433 1456
1434| Matcher | ๋ฐ์ ์์ |1457| Matcher | ๋ฐ์ ์์ |
1435| :- | :- |1458| :- | :- |
1438 1461
1439`claude --init-only`๋ฅผ ์คํํ๋ฉด Claude Code๋ Setup ํ
๊ณผ `startup` matcher๋ฅผ ์ฌ์ฉํ๋ `SessionStart` ํ
์ ์คํํ ๋ค์, ๋ํ๋ฅผ ์์ํ์ง ์๊ณ ์ข
๋ฃํฉ๋๋ค.1462`claude --init-only`๋ฅผ ์คํํ๋ฉด Claude Code๋ Setup ํ
๊ณผ `startup` matcher๋ฅผ ์ฌ์ฉํ๋ `SessionStart` ํ
์ ์คํํ ๋ค์, ๋ํ๋ฅผ ์์ํ์ง ์๊ณ ์ข
๋ฃํฉ๋๋ค.
1440 1463
1441`-p`๋ก ๋ํ๋ฅผ ์์ํ๊ฑฐ๋ ๊ณ์ํ ๋๋ ์ธ์๋ก ๋๋ stdin ํ์ดํ๋ฅผ ํตํด ํ๋กฌํํธ๋ ์ ๊ณตํด์ผ ํฉ๋๋ค. `SessionStart` ํ
์ด [`initialUserMessage`](#sessionstart-decision-control)๋ฅผ ์ ๊ณตํ๊ฑฐ๋ [์ง์ฐ๋ ๋๊ตฌ ํธ์ถ](#defer-a-tool-call-for-later)์ด ์๋ ์ธ์
์ ์ฌ๊ฐํ ๋๋ ํ๋กฌํํธ๋ฅผ ์๋ตํ ์ ์์ต๋๋ค.1464`-p`๋ก ๋ํ๋ฅผ ์์ํ๊ฑฐ๋ ๊ณ์ํ ๋๋ ์ธ์๋ก ๋๋ stdin ํ์ดํ๋ก ํ๋กฌํํธ๋ ์ ๊ณตํด์ผ ํฉ๋๋ค. `SessionStart` ํ
์ด [`initialUserMessage`](#sessionstart-decision-control)๋ฅผ ์ ๊ณตํ๊ฑฐ๋ [์ง์ฐ๋ ๋๊ตฌ ํธ์ถ](#defer-a-tool-call-for-later)์ด ์๋ ์ธ์
์ ์ฌ๊ฐํ๋ ๊ฒฝ์ฐ์๋ ํ๋กฌํํธ๋ฅผ ์๋ตํ ์ ์์ต๋๋ค.
1442 1465
1443์ฑ๊ณตํ๋ฉด `--init-only`๋ ํฐ๋ฏธ๋์ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ต๋๋ค. ํ
์ด ์คํ๋์๋์ง ํ์ธํ๋ ค๋ฉด `<path>`๋ฅผ ๋ก๊ทธ ํ์ผ ์์น๋ก ๋ฐ๊ฟ `claude --debug-file <path> --init-only`๋ก ์์ํ ๋ค์, ๋ก๊ทธ์์ Setup ๋ฐ SessionStart ํ
ํญ๋ชฉ์ ํ์ธํ์ธ์.1466์ฑ๊ณต ์ `--init-only`๋ ํฐ๋ฏธ๋์ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ต๋๋ค. ํ
์ด ์คํ๋์๋์ง ํ์ธํ๋ ค๋ฉด `<path>`๋ฅผ ๋ก๊ทธ ํ์ผ ์์น๋ก ๋ฐ๊ฟ `claude --debug-file <path> --init-only`๋ก ์์ํ ๋ค์, ๋ก๊ทธ์์ Setup ๋ฐ SessionStart ํ
ํญ๋ชฉ์ ํ์ธํ์ญ์์ค.
1444 1467
1445Setup์ ๋ชจ๋ ์คํ์์ ๋ฐ์ํ๋ ๊ฒ์ด ์๋๋ฏ๋ก, ์์กด์ฑ ์ค์น๊ฐ ํ์ํ ํ๋ฌ๊ทธ์ธ์ Setup์๋ง ์์กดํ ์ ์์ต๋๋ค. ์ค์ฉ์ ์ธ ํจํด์ ์ฒ์ ์ฌ์ฉํ ๋ ์์กด์ฑ์ ํ์ธํ๊ณ ์์ผ๋ฉด ์ค์นํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด `${CLAUDE_PLUGIN_DATA}/node_modules`๊ฐ ์๋์ง ํ
์คํธํ๊ณ ์์ผ๋ฉด `npm install`์ ์คํํ๋ ํ
์ด๋ ์คํฌ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค์น๋ ์์กด์ฑ์ ์ ์ฅํ ์์น๋ [์๊ตฌ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ](/docs/ko/plugins/components#path-variables-and-persistent-data)๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ง์ผํ๋ ์ด์ค๋ฅผ ํตํด ํ๋ฌ๊ทธ์ธ์ ๋ฐฐํฌํ๋ค๋ฉด ์ด ํจํด์ด ํ์ํ์ง ์์ ์ ์์ต๋๋ค. Claude Code๋ ํ๋ฌ๊ทธ์ธ์ ์บ์ํ ๋ [์ ๊ฒฉํ Node.js ํจํค์ง ์์กด์ฑ์ ์๋์ผ๋ก ์ค์น](/docs/ko/plugins/loading#node-js-package-dependencies)ํฉ๋๋ค.1468Setup์ ๋งค ์คํ๋ง๋ค ๋ฐ์ํ์ง ์์ผ๋ฏ๋ก, ์์กด์ฑ ์ค์น๊ฐ ํ์ํ ํ๋ฌ๊ทธ์ธ์ Setup์๋ง ์์กดํ ์ ์์ต๋๋ค. ์ค์ฉ์ ์ธ ํจํด์ ์ฒ์ ์ฌ์ฉํ ๋ ์์กด์ฑ์ ํ์ธํ๊ณ ์์ผ๋ฉด ์ค์นํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด `${CLAUDE_PLUGIN_DATA}/node_modules`๊ฐ ์๋์ง ๊ฒ์ฌํ๊ณ ์์ผ๋ฉด `npm install`์ ์คํํ๋ ํ
์ด๋ ์คํฌ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค์น๋ ์์กด์ฑ์ ์ ์ฅํ ์์น๋ [์๊ตฌ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ](/docs/ko/plugins/components#path-variables-and-persistent-data)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๋ง์ผํ๋ ์ด์ค๋ฅผ ํตํด ํ๋ฌ๊ทธ์ธ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ ์ด ํจํด์ด ํ์ํ์ง ์์ ์ ์์ต๋๋ค. Claude Code๋ ํ๋ฌ๊ทธ์ธ์ ์บ์ํ ๋ [์ ๊ฒฉํ Node.js ํจํค์ง ์์กด์ฑ์ ์๋์ผ๋ก ์ค์น](/docs/ko/plugins/loading#node-js-package-dependencies)ํฉ๋๋ค.
1446 1469
1447<h4 id="setup-input">1470<h4 id="setup-input">
1448 Setup ์
๋ ฅ1471 Setup ์
๋ ฅ
1449</h4>1472</h4>
1450 1473
1451[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ Setup ํ
์ `"init"` ๋๋ `"maintenance"`๋ก ์ค์ ๋ `trigger` ํ๋๋ฅผ ๋ฐ์ต๋๋ค:1474[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ Setup ํ
์ `"init"` ๋๋ `"maintenance"`๋ก ์ค์ ๋ `trigger` ํ๋๋ฅผ ๋ฐ์ต๋๋ค.
1452 1475
1453```json theme={null}1476```json theme={null}
1454{1477{
1464 Setup ๊ฒฐ์ ์ ์ด1487 Setup ๊ฒฐ์ ์ ์ด
1465</h4>1488</h4>
1466 1489
1467Setup ํ
์ ์ฐจ๋จํ ์ ์์ผ๋ฉฐ, ์ด๋ค ์ข
๋ฃ ์ฝ๋์์๋ ์คํ์ด ๊ณ์๋ฉ๋๋ค. ๋ชจ๋ ์ข
๋ฃ ์ฝ๋์์ Claude Code๋ `systemMessage`, `continue`, `hookSpecificOutput.additionalContext` ๊ฐ์ Setup ํ
์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฒ๋ฆฝ๋๋ค. `-p` ์ฌ์ฉ ์ Setup ํ
์ stdout, stderr, ์ข
๋ฃ ์ฝ๋๋ `--output-format stream-json --verbose`๋ก ์คํํ ๋๋ง [`hook_response` ์ด๋ฒคํธ](/docs/ko/headless#read-session-metadata)๋ก ์คํ ์ถ๋ ฅ์ ๋ํ๋ฉ๋๋ค.1490Setup ํ
์ ์ฐจ๋จํ ์ ์์ผ๋ฉฐ, ์ด๋ค ์ข
๋ฃ ์ฝ๋์์๋ ์คํ์ด ๊ณ์๋ฉ๋๋ค. ๋ชจ๋ ์ข
๋ฃ ์ฝ๋์์ Claude Code๋ `systemMessage`, `continue`, `hookSpecificOutput.additionalContext` ๊ฐ์ Setup ํ
์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฒ๋ฆฝ๋๋ค. `-p`๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Setup ํ
์ stdout, stderr, ์ข
๋ฃ ์ฝ๋๋ `--output-format stream-json --verbose`๋ก ์คํํ ๋๋ง ์คํ ์ถ๋ ฅ์ [`hook_response` ์ด๋ฒคํธ](/docs/ko/headless#read-session-metadata)๋ก ๋ํ๋ฉ๋๋ค.
1468 1491
1469Setup ํ
์ `CLAUDE_ENV_FILE`์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด ํ์ผ์ ์ด ๋ณ์๋ [SessionStart ํ
](#persist-environment-variables)๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ธ์
์ ์ดํ Bash ๋ช
๋ น์ ์ ์ง๋ฉ๋๋ค. `Setup`์์๋ `type: "command"` ํ
๋ง ์คํ๋ฉ๋๋ค. `Setup`์ `type: "mcp_tool"` ํ
์ [MCP ๋๊ตฌ ํ
ํ๋](#mcp-tool-hook-fields)์์ ์ค๋ช
ํ ๋๋ก ํญ์ ๊ฑด๋๋๋๋ค.1492Setup ํ
์ `CLAUDE_ENV_FILE`์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํด๋น ํ์ผ์ ์ด ๋ณ์๋ [SessionStart ํ
](#persist-environment-variables)์์์ ๊ฐ์ด ์ธ์
์ ์ดํ Bash ๋ช
๋ น์ ์ ์ง๋ฉ๋๋ค. `Setup`์์๋ `type: "command"` ํ
๋ง ์คํ๋ฉ๋๋ค. [MCP ๋๊ตฌ ํ
ํ๋](#mcp-tool-hook-fields)์ ์ค๋ช
๋ ๋๋ก, `Setup`์ `type: "mcp_tool"` ํ
์ ํญ์ ๊ฑด๋๋๋๋ค.
1470 1493
1471<h3 id="instructionsloaded">1494<h3 id="instructionsloaded">
1472 InstructionsLoaded1495 InstructionsLoaded
1473</h3>1496</h3>
1474 1497
1475`CLAUDE.md` ๋๋ `.claude/rules/*.md` ํ์ผ์ด ์ปจํ
์คํธ์ ๋ก๋๋ ๋ ๋ฐ์ํฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ ์ฆ์ ๋ก๋๋๋ ํ์ผ์ ๋ํด ์ธ์
์์ ์ ๋ฐ์ํ๊ณ , ํ์ผ์ด ์ง์ฐ ๋ก๋๋ ๋ ๋์ค์ ๋ค์ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Claude๊ฐ ์ค์ฒฉ๋ `CLAUDE.md`๊ฐ ์๋ ํ์ ๋๋ ํฐ๋ฆฌ์ ์ก์ธ์คํ๊ฑฐ๋ `paths:` frontmatter๊ฐ ์๋ ์กฐ๊ฑด๋ถ ๊ท์น์ด ์ผ์นํ ๋์
๋๋ค. ์ด ํ
์ ์ฐจ๋จ์ด๋ ๊ฒฐ์ ์ ์ด๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ, ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ์ํด ๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋ฉ๋๋ค.1498`CLAUDE.md` ๋๋ `.claude/rules/*.md` ํ์ผ์ด ์ปจํ
์คํธ์ ๋ก๋๋ ๋ ๋ฐ์ํฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ ์ฆ์ ๋ก๋๋๋ ํ์ผ์ ๊ฒฝ์ฐ ์ธ์
์์ ์ ๋ฐ์ํ๊ณ , ํ์ผ์ด ์ง์ฐ ๋ก๋๋ ๋ ๋ค์ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Claude๊ฐ ์ค์ฒฉ๋ `CLAUDE.md`๊ฐ ์๋ ํ์ ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผํ๊ฑฐ๋ `paths:` frontmatter๊ฐ ์๋ ์กฐ๊ฑด๋ถ ๊ท์น์ด ์ผ์นํ ๋์
๋๋ค. ์ด ํ
์ ์ฐจ๋จ์ด๋ ๊ฒฐ์ ์ ์ด๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ์ํด ๋น๋๊ธฐ๋ก ์คํ๋ฉ๋๋ค.
1476 1499
1477์ด ์ด๋ฒคํธ๋ Claude๊ฐ **Project instructions** ์ค์ ์ ํตํด [`AGENTS.md`๋ฅผ ์ง์ ์ฝ์](/docs/ko/memory#agents-md) ๋๋ ๋ฐ์ํ์ง ์์ต๋๋ค. `CLAUDE.md`๊ฐ `AGENTS.md`๋ฅผ ๊ฐ์ ธ์ฌ ๋๋ ๋ค๋ฅธ ๊ฐ์ ธ์จ ํ์ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก `load_reason`์ด `include`๋ก ์ค์ ๋ ์ํ๋ก ๋ฐ์ํ๋ฉฐ, `CLAUDE.md`๊ฐ ํด๋น ํ์ผ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ผ ๋๋ ์ผ๋ฐ `CLAUDE.md` ๋ก๋๋ก ๋ฐ์ํฉ๋๋ค.1500์ด ์ด๋ฒคํธ๋ Claude๊ฐ **Project instructions** ์ค์ ์ ํตํด [`AGENTS.md`๋ฅผ ์ง์ ์ฝ์](/docs/ko/memory#agents-md) ๋๋ ๋ฐ์ํ์ง ์์ต๋๋ค. `CLAUDE.md`๊ฐ `AGENTS.md`๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ๊ฐ์ ธ์จ ํ์ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก `load_reason`์ด `include`๋ก ์ค์ ๋์ด ๋ฐ์ํ๋ฉฐ, `CLAUDE.md`๊ฐ ํด๋น ํ์ผ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ธ ๊ฒฝ์ฐ์๋ ์ผ๋ฐ `CLAUDE.md` ๋ก๋๋ก ๋ฐ์ํฉ๋๋ค.
1478 1501
1479matcher๋ `load_reason`์ ๋ํด ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธ์
์์ ์ ๋ก๋๋ ํ์ผ์๋ง ๋ฐ์์ํค๋ ค๋ฉด `"matcher": "session_start"`๋ฅผ, ์ง์ฐ ๋ก๋์๋ง ๋ฐ์์ํค๋ ค๋ฉด `"matcher": "path_glob_match|nested_traversal"`์ ์ฌ์ฉํ์ธ์.1502matcher๋ `load_reason`์ ๋ํด ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธ์
์์ ์ ๋ก๋๋ ํ์ผ์ ๋ํด์๋ง ๋ฐ์์ํค๋ ค๋ฉด `"matcher": "session_start"`๋ฅผ, ์ง์ฐ ๋ก๋์ ๋ํด์๋ง ๋ฐ์์ํค๋ ค๋ฉด `"matcher": "path_glob_match|nested_traversal"`์ ์ฌ์ฉํ์ญ์์ค.
1480 1503
1481<h4 id="instructionsloaded-input">1504<h4 id="instructionsloaded-input">
1482 InstructionsLoaded ์
๋ ฅ1505 InstructionsLoaded ์
๋ ฅ
1483</h4>1506</h4>
1484 1507
1485[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ InstructionsLoaded ํ
์ ๋ค์ ํ๋๋ฅผ ๋ฐ์ต๋๋ค:1508[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ InstructionsLoaded ํ
์ ๋ค์ ํ๋๋ฅผ ๋ฐ์ต๋๋ค.
1486 1509
1487| ํ๋ | ์ค๋ช
|1510| ํ๋ | ์ค๋ช
|
1488| :- | :- |1511| :- | :- |
1490| `memory_type` | ํ์ผ์ ๋ฒ์: `"User"`, `"Project"`, `"Local"` ๋๋ `"Managed"` |1513| `memory_type` | ํ์ผ์ ๋ฒ์: `"User"`, `"Project"`, `"Local"` ๋๋ `"Managed"` |
1491| `load_reason` | ํ์ผ์ด ๋ก๋๋ ์ด์ : `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ๋๋ `"compact"`. `"compact"` ๊ฐ์ ์์ถ ์ด๋ฒคํธ ํ ์ง์นจ ํ์ผ์ด ๋ค์ ๋ก๋๋ ๋ ๋ฐ์ํฉ๋๋ค |1514| `load_reason` | ํ์ผ์ด ๋ก๋๋ ์ด์ : `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ๋๋ `"compact"`. `"compact"` ๊ฐ์ ์์ถ ์ด๋ฒคํธ ํ ์ง์นจ ํ์ผ์ด ๋ค์ ๋ก๋๋ ๋ ๋ฐ์ํฉ๋๋ค |
1492| `globs` | ํ์ผ์ `paths:` frontmatter์ ์๋ ๊ฒฝ๋ก glob ํจํด(์๋ ๊ฒฝ์ฐ). `path_glob_match` ๋ก๋์๋ง ์กด์ฌํฉ๋๋ค |1515| `globs` | ํ์ผ์ `paths:` frontmatter์ ์๋ ๊ฒฝ๋ก glob ํจํด(์๋ ๊ฒฝ์ฐ). `path_glob_match` ๋ก๋์๋ง ์กด์ฌํฉ๋๋ค |
1493| `trigger_file_path` | ์ง์ฐ ๋ก๋์ ๊ฒฝ์ฐ, ์ก์ธ์คํ์ฌ ์ด ๋ก๋๋ฅผ ํธ๋ฆฌ๊ฑฐํ ํ์ผ์ ๊ฒฝ๋ก |1516| `trigger_file_path` | ์ง์ฐ ๋ก๋์ ๊ฒฝ์ฐ, ์ ๊ทผ์ผ๋ก ์ธํด ์ด ๋ก๋๋ฅผ ํธ๋ฆฌ๊ฑฐํ ํ์ผ์ ๊ฒฝ๋ก |
1494| `parent_file_path` | `include` ๋ก๋์ ๊ฒฝ์ฐ, ์ด ํ์ผ์ ํฌํจํ ์์ ์ง์นจ ํ์ผ์ ๊ฒฝ๋ก |1517| `parent_file_path` | `include` ๋ก๋์ ๊ฒฝ์ฐ, ์ด ํ์ผ์ ํฌํจํ ์์ ์ง์นจ ํ์ผ์ ๊ฒฝ๋ก |
1495 1518
1496```json theme={null}1519```json theme={null}
1509 InstructionsLoaded ๊ฒฐ์ ์ ์ด1532 InstructionsLoaded ๊ฒฐ์ ์ ์ด
1510</h4>1533</h4>
1511 1534
1512InstructionsLoaded ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ์ง์นจ ๋ก๋๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. Claude Code๋ `systemMessage`, `continue` ๊ฐ์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฒ๋ฆฝ๋๋ค. ์ด ์ด๋ฒคํธ๋ ๊ฐ์ฌ ๋ก๊น
, ๊ท์ ์ค์ ์ถ์ ๋๋ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ์ฌ์ฉํ์ธ์.1535InstructionsLoaded ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ์ง์นจ ๋ก๋๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. Claude Code๋ `systemMessage`, `continue` ๊ฐ์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฒ๋ฆฝ๋๋ค. ์ด ์ด๋ฒคํธ๋ ๊ฐ์ฌ ๋ก๊น
, ๊ท์ ์ค์ ์ถ์ ๋๋ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ์ฌ์ฉํ์ญ์์ค.
1513 1536
1514<h3 id="userpromptsubmit">1537<h3 id="userpromptsubmit">
1515 UserPromptSubmit1538 UserPromptSubmit
1519ํ๋กฌํํธ/๋ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ํ๋กฌํํธ๋ฅผ ๊ฒ์ฆํ๊ฑฐ๋,1542ํ๋กฌํํธ/๋ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ํ๋กฌํํธ๋ฅผ ๊ฒ์ฆํ๊ฑฐ๋,
1520ํน์ ์ ํ์ ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค.1543ํน์ ์ ํ์ ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค.
1521 1544
1522`UserPromptSubmit` ํ
์ ์ง์ ์
๋ ฅํ ํ๋กฌํํธ์์๋ง ๋ฐ์ํ๋ ๊ฒ์ด ์๋๋๋ค. Claude Code๋ ๋ค์ ๊ฒฝ์ฐ์๋ ์ด ํ
์ ์คํํฉ๋๋ค:1545`UserPromptSubmit` ํ
์ ์ง์ ์
๋ ฅํ ํ๋กฌํํธ์์๋ง ๋ฐ์ํ์ง ์์ต๋๋ค. Claude Code๋ ๋ค์์ ๊ฒฝ์ฐ์๋ ์ด ํ
์ ์คํํฉ๋๋ค.
1523 1546
1524* [์์ฝ ์์
](/docs/ko/scheduled-tasks)์ด ์คํ๋ ๋(`/loop` ๋ฐ๋ณต ํฌํจ)1547* `/loop` ๋ฐ๋ณต์ ํฌํจํ [์์ฝ ์์
](/docs/ko/scheduled-tasks)์ด ์คํ๋ ๋
1525* [๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)๊ฐ ์์ ์ ์์ํ ์ธ์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ ๋1548* [๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)๊ฐ ์์ ์ ์์ํ ์ธ์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ ๋
1526* [๋ค๋ฅธ ์ธ์
์ด ๊ธฐ๋ณธ ๋ํ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ผ](/docs/ko/cross-session-messaging) ๋1549* [๋ค๋ฅธ ์ธ์
์ด ๋ณด๋ธ ๋ฉ์์ง](/docs/ko/cross-session-messaging)๊ฐ ๋ฉ์ธ ๋ํ์ ๋์ฐฉํ ๋
1527 1550
1528`UserPromptSubmit` ํ
์ `command`, `http`, `mcp_tool` ์ ํ์ ๊ธฐ๋ณธ ํ์์์์ด 30์ด๋ก, ๋๋ถ๋ถ์ ๋ค๋ฅธ ์ด๋ฒคํธ์์ ์ด๋ฌํ ์ ํ์ ๊ธฐ๋ณธ๊ฐ์ธ 600์ด๋ณด๋ค ์งง์ต๋๋ค. ์ด ํ
์ ๋ชจ๋ ํ๋กฌํํธ ์ ์ ์คํ๋๊ณ ์๋ฃ๋ ๋๊น์ง ๋ชจ๋ธ ์ฒ๋ฆฌ๋ฅผ ์ฐจ๋จํ๋ฏ๋ก, ๋ฉ์ถ ํ
์ ์ธ์
์ ์ ์ง์ํต๋๋ค. ํ
์ ๋ ๋ง์ ์๊ฐ์ด ํ์ํ๋ฉด ํ
ํญ๋ชฉ์์ `timeout` ํ๋๋ฅผ ์ค์ ํ์ธ์.1551`UserPromptSubmit` ํ
์ ๊ธฐ๋ณธ ํ์์์์ `command`, `http`, `mcp_tool` ์ ํ์ ๋ํด 30์ด๋ก, ๋๋ถ๋ถ์ ๋ค๋ฅธ ์ด๋ฒคํธ์์ ํด๋น ์ ํ์ ๊ธฐ๋ณธ๊ฐ์ธ 600์ด๋ณด๋ค ์งง์ต๋๋ค. ์ด ํ
์ ๋ชจ๋ ํ๋กฌํํธ ์ ์ ์คํ๋๊ณ ์๋ฃ๋ ๋๊น์ง ๋ชจ๋ธ ์ฒ๋ฆฌ๋ฅผ ์ฐจ๋จํ๋ฏ๋ก, ๋ฉ์ถ ํ
์ ์ธ์
์ ์ง์ฐ์ํต๋๋ค. ํ
์ ๋ ๋ง์ ์๊ฐ์ด ํ์ํ๋ฉด ํ
ํญ๋ชฉ์์ `timeout` ํ๋๋ฅผ ์ค์ ํ์ญ์์ค.
1529 1552
1530[`async: true`](#run-hooks-in-the-background)๋ก ์คํํ๋ command ํ
์ ์ ์ธํ๊ณ , ํ์์์์ ๋๋ฌํ `UserPromptSubmit` command, HTTP ๋๋ MCP ๋๊ตฌ ํ
์ ์ทจ์๋๋ฉฐ `additionalContext`๋ฅผ ํฌํจํ ์ถ๋ ฅ์ด ๋ฒ๋ ค์ง๋๋ค. ํ๋กฌํํธ๋ ํด๋น ์ปจํ
์คํธ ์์ด Claude์ ์ ๋ฌ๋ฉ๋๋ค. ๋์ ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด command ๋๋ HTTP ํ
์ [`onFailure: "block"`](#block-the-action-when-a-hook-fails)์ ์ค์ ํ์ญ์์ค. ํธ๋์คํฌ๋ฆฝํธ์๋ ํ
์ด๋ฆ, ๋ฐ์ํ ํ์์์, ์ถ๋ ฅ์ด ๋ฒ๋ ค์ก๋ค๋ ์ฌ์ค์ ์๋ฆฌ๋ ์๋ฆผ์ด ํ์๋ฉ๋๋ค.1553[`async: true`](#run-hooks-in-the-background)๋ก ์คํํ๋ command ํ
์ ์ ์ธํ๊ณ , ํ์์์์ ๋๋ฌํ `UserPromptSubmit` command, HTTP ๋๋ MCP ๋๊ตฌ ํ
์ ์ทจ์๋๋ฉฐ `additionalContext`๋ฅผ ํฌํจํ ์ถ๋ ฅ์ด ๋ฒ๋ ค์ง๋๋ค. ํ๋กฌํํธ๋ ํด๋น ์ปจํ
์คํธ ์์ด ์ฌ์ ํ Claude์ ์ ๋ฌ๋ฉ๋๋ค. ๋์ ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด command ๋๋ HTTP ํ
์ [`onFailure: "block"`](#block-the-action-when-a-hook-fails)์ ์ค์ ํ์ญ์์ค. ํธ๋์คํฌ๋ฆฝํธ์๋ ํ
์ด๋ฆ, ๋ฐ์ํ ํ์์์, ์ถ๋ ฅ์ด ๋ฒ๋ ค์ก๋ค๋ ์ฌ์ค์ ์๋ฆฌ๋ ์๋ฆผ์ด ํ์๋ฉ๋๋ค.
1531 1554
1532`UserPromptSubmit`์ [Agent SDK ์ฝ๋ฐฑ ํ
](/docs/ko/agent-sdk/hooks)์ด ํ์์์์ ๋๋ฌํ๋ฉด ํ
๊ณผ ํ์์์์ ๋ช
์ํ๋ ๋ฉ์์ง์ ํจ๊ป ํ๋กฌํํธ๊ฐ ์ฐจ๋จ๋ฉ๋๋ค. ์ด ์์น์ ์ฝ๋ฐฑ์ ์คํจ ์ ์ด๋ ค์๋ ์ ๋๋(fail open) ์ ์ฑ
๊ฒ์ดํธ ์ญํ ์ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ธ์
์ ๊ณ์๋ฉ๋๋ค. v2.1.208 ์ด์ ์๋ ์ด ์ด๋ฒคํธ์์ ์ฝ๋ฐฑ ํ์์์์ด ๋ฐ์ํ๋ฉด ์คํ ์ค๋ฅ์ ํจ๊ป ํด์ด ์ข
๋ฃ๋์์ต๋๋ค.1555`UserPromptSubmit`์ [Agent SDK ์ฝ๋ฐฑ ํ
](/docs/ko/agent-sdk/hooks)์ด ํ์์์์ ๋๋ฌํ๋ฉด ํ
๊ณผ ํ์์์์ ๋ช
์ํ ๋ฉ์์ง์ ํจ๊ป ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํฉ๋๋ค. ํด๋น ์์น์ ์ฝ๋ฐฑ์ ์คํจ ์ ํ์ฉ๋์ด์๋ ์ ๋๋ ์ ์ฑ
๊ฒ์ดํธ ์ญํ ์ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ธ์
์ ๊ณ์๋ฉ๋๋ค. v2.1.208 ์ด์ ์๋ ํด๋น ์ด๋ฒคํธ์์ ์ฝ๋ฐฑ ํ์์์์ด ๋ฐ์ํ๋ฉด ์คํ ์ค๋ฅ์ ํจ๊ป ํด์ด ์ข
๋ฃ๋์์ต๋๋ค.
1533 1556
1534<h4 id="userpromptsubmit-input">1557<h4 id="userpromptsubmit-input">
1535 UserPromptSubmit ์
๋ ฅ1558 UserPromptSubmit ์
๋ ฅ
1536</h4>1559</h4>
1537 1560
1538[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ UserPromptSubmit ํ
์ ์ ์ถ๋ ํ
์คํธ๊ฐ ๋ด๊ธด `prompt` ํ๋๋ฅผ ๋ฐ์ต๋๋ค. `[Pasted text #N]` ์๋ฆฌ ํ์์๋ก ์ถ์๋ ๋ถ์ฌ๋ฃ์ ์ฝํ
์ธ ๋ ์ ์๋ฆฌ์ ํผ์ณ์ง ์ํ๋ก ์ ๋ฌ๋ฉ๋๋ค. Claude Code๊ฐ [Claude๋ฅผ ์ํด ๋ถ์ฌ๋ฃ์ ํ
์คํธ๋ฅผ ํ์ํ๋](/docs/ko/terminal-config#how-claude-treats-pasted-text) ์ธ์
์์๋ ํผ์ณ์ง ์ฝํ
์ธ ๊ฐ `<pasted_content id="โฆ">` ์ค๊ณผ `</pasted_content id="โฆ">` ์ค ์ฌ์ด์ ์์นํ๋ฏ๋ก, ํ
์ด ํ๋กฌํํธ๋ฅผ ํ์ฑํ๋ค๋ฉด ์ด ์ค์ ๊ณ ๋ คํ์ธ์.1561[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ UserPromptSubmit ํ
์ ์ ์ถ๋ ํ
์คํธ๊ฐ ๋ด๊ธด `prompt` ํ๋๋ฅผ ๋ฐ์ต๋๋ค. `[Pasted text #N]` ์๋ฆฌ ํ์์๋ก ์ถ์๋ ๋ถ์ฌ๋ฃ์ ๋ด์ฉ์ ํด๋น ์์น์ ํ์ฅ๋์ด ๋์ฐฉํฉ๋๋ค. Claude Code๊ฐ [Claude๋ฅผ ์ํด ๋ถ์ฌ๋ฃ์ ํ
์คํธ๋ฅผ ํ์](/docs/ko/terminal-config#how-claude-treats-pasted-text)ํ๋ ์ธ์
์์๋ ํ์ฅ๋ ๋ด์ฉ์ด `<pasted_content id="โฆ">` ์ค๊ณผ `</pasted_content id="โฆ">` ์ค ์ฌ์ด์ ์์นํ๋ฏ๋ก, ํ
์ด ํ๋กฌํํธ๋ฅผ ํ์ฑํ๋ ๊ฒฝ์ฐ ์ด ์ค๋ค์ ๊ณ ๋ คํ์ญ์์ค.
1539 1562
1540UserPromptSubmit ํ
์ ์ธ์
์ ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ด ์์ ๋ `session_title`๋ ๋ฐ์ผ๋ฉฐ, ์๋ฏธ๋ [SessionStart `session_title` ํ๋](#sessionstart-input)์ ๊ฐ์ต๋๋ค.1563UserPromptSubmit ํ
์ ์ธ์
์ ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ด ์์ ๋ `session_title`๋ ๋ฐ์ผ๋ฉฐ, ์๋ฏธ๋ [SessionStart `session_title` ํ๋](#sessionstart-input)์ ๊ฐ์ต๋๋ค.
1541 1564
1556 1579
1557`UserPromptSubmit` ํ
์ ์ ์ถ๋ ํ๋กฌํํธ์ ์ฒ๋ฆฌ ์ฌ๋ถ๋ฅผ ์ ์ดํ๊ณ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.1580`UserPromptSubmit` ํ
์ ์ ์ถ๋ ํ๋กฌํํธ์ ์ฒ๋ฆฌ ์ฌ๋ถ๋ฅผ ์ ์ดํ๊ณ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
1558 1581
1559์ข
๋ฃ ์ฝ๋ 0์์ ๋ํ์ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง์
๋๋ค:1582์ข
๋ฃ ์ฝ๋ 0์์ ๋ํ์ ์ปจํ
์คํธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง์
๋๋ค.
1560 1583
1561* **์ผ๋ฐ ํ
์คํธ stdout**: Claude Code๋ [์ผ๋ฐ ํ
์คํธ๋ก ์ฒ๋ฆฌํ๋](#exit-code-0) stdout์ Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐํฉ๋๋ค1584* **์ผ๋ฐ ํ
์คํธ stdout**: Claude Code๋ [์ผ๋ฐ ํ
์คํธ๋ก ์ทจ๊ธํ๋](#exit-code-0) stdout์ Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐํฉ๋๋ค
1562* **`additionalContext`๊ฐ ํฌํจ๋ JSON**: ๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ๋ ค๋ฉด ์๋ JSON ํ์์ ์ฌ์ฉํ์ธ์. `additionalContext` ํ๋๊ฐ ์ปจํ
์คํธ๋ก ์ถ๊ฐ๋ฉ๋๋ค1585* **`additionalContext`๊ฐ ํฌํจ๋ JSON**: ๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ๋ ค๋ฉด ์๋ JSON ํ์์ ์ฌ์ฉํ์ญ์์ค. `additionalContext` ํ๋๊ฐ ์ปจํ
์คํธ๋ก ์ถ๊ฐ๋ฉ๋๋ค
1563 1586
1564๋ ์ฑ๋ ๋ชจ๋ ํธ๋์คํฌ๋ฆฝํธ์ ํ์๋๋ ํญ๋ชฉ์ ๋ง๋ค์ง ์์ต๋๋ค. ์ผ๋ฐ stdout๊ณผ `additionalContext` ๊ฐ์ ๊ฐ๊ฐ ํ
์ด๋ฆ์ผ๋ก ์์ํ๋ ์์คํ
๋ฆฌ๋ง์ธ๋๋ก ์ฃผ์
๋๋ฉฐ, Claude๋ ๋ ๋ค ์ฝ์ต๋๋ค. ์ ๋ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ค๋ฉด [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)๋ฅผ ํ์ธํ์ธ์.1587๋ ์ฑ๋ ๋ชจ๋ ํธ๋์คํฌ๋ฆฝํธ์ ํ์๋๋ ํญ๋ชฉ์ ์์ฑํ์ง ์์ต๋๋ค. ์ผ๋ฐ stdout๊ณผ `additionalContext` ๊ฐ์ ๊ฐ๊ฐ ํ
์ด๋ฆ์ผ๋ก ์์ํ๋ ์์คํ
๋ฆฌ๋ง์ธ๋๋ก ์ฝ์
๋๋ฉฐ, Claude๋ ๋ ๋ค ์ฝ์ต๋๋ค. ์ ๋ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ค๋ฉด [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)๋ฅผ ํ์ธํ์ญ์์ค.
1565 1588
1566ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด `decision`์ `"block"`์ผ๋ก ์ค์ ํ JSON ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ธ์:1589ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด `decision`์ด `"block"`์ผ๋ก ์ค์ ๋ JSON ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ญ์์ค.
1567 1590
1568| ํ๋ | ์ค๋ช
|1591| ํ๋ | ์ค๋ช
|
1569| :- | :- |1592| :- | :- |
1570| `decision` | `"block"`์ ํ๋กฌํํธ๊ฐ Claude์ ๋๋ฌํ๊ธฐ ์ ์ ์ค์งํฉ๋๋ค. ํ๋กฌํํธ ์งํ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํ์ธ์ |1593| `decision` | `"block"`์ ํ๋กฌํํธ๊ฐ Claude์ ๋๋ฌํ๊ธฐ ์ ์ ์ค์งํฉ๋๋ค. ํ๋กฌํํธ ์งํ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํ์ญ์์ค |
1571| `reason` | `decision`์ด `"block"`์ผ ๋ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. ์ปจํ
์คํธ์๋ ์ถ๊ฐ๋์ง ์์ต๋๋ค |1594| `reason` | `decision`์ด `"block"`์ผ ๋ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. ์ปจํ
์คํธ์ ์ถ๊ฐ๋์ง ์์ต๋๋ค |
1572| `additionalContext` | ์ ์ถ๋ ํ๋กฌํํธ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |1595| `additionalContext` | ์ ์ถ๋ ํ๋กฌํํธ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
1573| `sessionTitle` | ์ธ์
์ ๋ชฉ์ ์ค์ ํฉ๋๋ค. ํ๋กฌํํธ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ธ์
์ด๋ฆ์ ์๋ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค |1596| `sessionTitle` | ์ธ์
์ ๋ชฉ์ ์ค์ ํฉ๋๋ค. ํ๋กฌํํธ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ธ์
์ด๋ฆ์ ์๋์ผ๋ก ์ง์ ํ ๋ ์ฌ์ฉํ์ญ์์ค |
1574| `suppressOriginalPrompt` | ํ
์ด ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ ๋ `true`์ด๋ฉด ์ฐจ๋จ ๋ฉ์์ง์์ ํ๋กฌํํธ ํ
์คํธ๋ฅผ ์ ์ธํฉ๋๋ค. [์ฐจ๋จ๋ ํ๋กฌํํธ๊ฐ ๋จ๊ธฐ๋ ๊ฒ](#what-a-blocked-prompt-leaves-behind)์ ์ฐธ์กฐํ์ธ์ |1597| `suppressOriginalPrompt` | ํ
์ด ํ๋กฌํํธ๋ฅผ ์ฐจ๋จํ ๋ `true`์ด๋ฉด ์ฐจ๋จ ๋ฉ์์ง์์ ํ๋กฌํํธ ํ
์คํธ๋ฅผ ์ ์ธํฉ๋๋ค. [์ฐจ๋จ๋ ํ๋กฌํํธ๊ฐ ๋จ๊ธฐ๋ ๊ฒ](#what-a-blocked-prompt-leaves-behind)์ ์ฐธ์กฐํ์ญ์์ค |
1575 1598
1576์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `reason`๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ฐจ๋จ ๋ฉ์์ง๋ stderr ํ
์คํธ๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๋ฉฐ, ์ด ํ
์คํธ๋ ์ปจํ
์คํธ์ ์ถ๊ฐ๋์ง ์์ต๋๋ค.1599์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `reason`๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ฐจ๋จ ๋ฉ์์ง๋ ์ฌ์ฉ์์๊ฒ stderr ํ
์คํธ๋ฅผ ํ์ํ๋ฉฐ, ์ปจํ
์คํธ์๋ ์ถ๊ฐ๋์ง ์์ต๋๋ค.
1577 1600
1578```json theme={null}1601```json theme={null}
1579{1602{
1592 ์ฐจ๋จ๋ ํ๋กฌํํธ๊ฐ ๋จ๊ธฐ๋ ๊ฒ1615 ์ฐจ๋จ๋ ํ๋กฌํํธ๊ฐ ๋จ๊ธฐ๋ ๊ฒ
1593</h4>1616</h4>
1594 1617
1595์ฐจ๋จ๋ ํ๋กฌํํธ๋ Claude์ ๋๋ฌํ์ง ์์ง๋ง, ๊ทธ ํ
์คํธ๊ฐ ๋ชจ๋ ๊ณณ์์ ์ ๊ฑฐ๋๋ ๊ฒ์ ์๋๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ํ์๋๋ ์ฐจ๋จ ๋ฉ์์ง๋ `Original prompt:` ๋ค์ ์ ์ถ๋ ํ
์คํธ๊ฐ ์ค๋ ํํ๋ก ๋๋๋ฉฐ, Claude Code๋ ์ด ๋ฉ์์ง๋ฅผ ๋์คํฌ์ ์ธ์
ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ์๋๋ค. ๋ฉ์์ง์์ ํ
์คํธ๋ฅผ ์ ์ธํ๋ ค๋ฉด `hookSpecificOutput` ์์ `"suppressOriginalPrompt": true`๊ฐ ํฌํจ๋ JSON์ ์ถ๋ ฅํ์ธ์. ์ด๋ ํ
์ด `decision: "block"`์ผ๋ก ์ฐจ๋จํ๋ ์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ์๋ํฉ๋๋ค.1618์ฐจ๋จ๋ ํ๋กฌํํธ๋ Claude์ ๋๋ฌํ์ง ์์ง๋ง, ๊ทธ ํ
์คํธ๊ฐ ๋ชจ๋ ๊ณณ์์ ์ ๊ฑฐ๋๋ ๊ฒ์ ์๋๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ํ์๋๋ ์ฐจ๋จ ๋ฉ์์ง๋ `Original prompt:` ๋ค์ ์ ์ถ๋ ํ
์คํธ๋ก ๋๋๋ฉฐ, Claude Code๋ ์ด ๋ฉ์์ง๋ฅผ ๋์คํฌ์ ์ธ์
ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ์๋๋ค. ๋ฉ์์ง์์ ํ
์คํธ๋ฅผ ์ ์ธํ๋ ค๋ฉด `hookSpecificOutput` ์์ `"suppressOriginalPrompt": true`๊ฐ ํฌํจ๋ JSON์ ์ถ๋ ฅํ์ญ์์ค. ์ด๋ ํ
์ด `decision: "block"`์ผ๋ก ์ฐจ๋จํ๋ ์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ์๋ํฉ๋๋ค.
1596 1619
1597`suppressOriginalPrompt`๋ ์ฐจ๋จ ๋ฉ์์ง๋ง ๋ณ๊ฒฝํฉ๋๋ค. ์ ์ถ๋ ํ
์คํธ๋ ์ธ์
ํธ๋์คํฌ๋ฆฝํธ๋ ํ๋กฌํํธ ๊ธฐ๋ก ๊ฐ์ ๋ก์ปฌ ํ์ผ์ ์ฌ์ ํ ๋ํ๋ ์ ์์ผ๋ฏ๋ก, ์ฐจ๋จ ํ
์ ๋น๋ฐ ์ ๋ณด๋ฅผ ๋์คํฌ์ ๋จ๊ธฐ์ง ์๋ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. ์ด๋ฌํ ํ์ผ์ ์ ํํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ค๋ฉด [์ผ๋ฐ ํ
์คํธ ์ ์ฅ](/docs/ko/claude-directory#plaintext-storage) ๋ฐ [๋ก์ปฌ ๋ฐ์ดํฐ ์ง์ฐ๊ธฐ](/docs/ko/claude-directory#clear-local-data)๋ฅผ ์ฐธ์กฐํ์ธ์.1620`suppressOriginalPrompt`๋ ์ฐจ๋จ ๋ฉ์์ง๋ง ๋ณ๊ฒฝํฉ๋๋ค. ์ ์ถ๋ ํ
์คํธ๋ ์ฌ์ ํ ์ธ์
ํธ๋์คํฌ๋ฆฝํธ๋ ํ๋กฌํํธ ๊ธฐ๋ก ๊ฐ์ ๋ก์ปฌ ํ์ผ์ ๋ํ๋ ์ ์์ผ๋ฏ๋ก, ์ฐจ๋จ ํ
์ ๋น๋ฐ ์ ๋ณด๋ฅผ ๋์คํฌ์ ๋จ๊ธฐ์ง ์๋ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. ์ด๋ฌํ ํ์ผ์ ์ ํํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ค๋ฉด [์ผ๋ฐ ํ
์คํธ ์คํ ๋ฆฌ์ง](/docs/ko/claude-directory#plaintext-storage) ๋ฐ [๋ก์ปฌ ๋ฐ์ดํฐ ์ง์ฐ๊ธฐ](/docs/ko/claude-directory#clear-local-data)๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
1598 1621
1599<h3 id="userpromptexpansion">1622<h3 id="userpromptexpansion">
1600 UserPromptExpansion1623 UserPromptExpansion
1601</h3>1624</h3>
1602 1625
1603์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ช
๋ น์ด Claude์ ๋๋ฌํ๊ธฐ ์ ์ ํ๋กฌํํธ๋ก ํ์ฅ๋ ๋ ์คํ๋ฉ๋๋ค. ํน์ ๋ช
๋ น์ ์ง์ ํธ์ถ์ ์ฐจ๋จํ๊ฑฐ๋, ํน์ ์คํฌ์ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ํธ์ถํ๋ ๋ช
๋ น์ ๋ก๊ทธ์ ๊ธฐ๋กํ๋ ๋ฐ ์ฌ์ฉํ์ธ์. ์๋ฅผ ๋ค์ด `deploy`์ ์ผ์นํ๋ ํ
์ ์น์ธ ํ์ผ์ด ์์ผ๋ฉด `/deploy`๋ฅผ ์ฐจ๋จํ ์ ์๊ณ , ๋ฆฌ๋ทฐ ์คํฌ๊ณผ ์ผ์นํ๋ ํ
์ ํ์ ๋ฆฌ๋ทฐ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ `additionalContext`๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.1626์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ช
๋ น์ด Claude์ ๋๋ฌํ๊ธฐ ์ ์ ํ๋กฌํํธ๋ก ํ์ฅ๋ ๋ ์คํ๋ฉ๋๋ค. ํน์ ๋ช
๋ น์ ์ง์ ํธ์ถ์ ์ฐจ๋จํ๊ฑฐ๋, ํน์ ์คํฌ์ ์ปจํ
์คํธ๋ฅผ ์ฝ์
ํ๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ํธ์ถํ๋ ๋ช
๋ น์ ๋ก๊ทธ์ ๊ธฐ๋กํ ๋ ์ฌ์ฉํ์ญ์์ค. ์๋ฅผ ๋ค์ด `deploy`์ ์ผ์นํ๋ ํ
์ ์น์ธ ํ์ผ์ด ์์ผ๋ฉด `/deploy`๋ฅผ ์ฐจ๋จํ ์ ์๊ณ , ๋ฆฌ๋ทฐ ์คํฌ๊ณผ ์ผ์นํ๋ ํ
์ ํ์ ๋ฆฌ๋ทฐ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ `additionalContext`๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
1604 1627
1605์ด ์ด๋ฒคํธ๋ `PreToolUse`๊ฐ ๋ค๋ฃจ์ง ์๋ ๊ฒฝ๋ก๋ฅผ ๋ค๋ฃน๋๋ค. `Skill` ๋๊ตฌ์ ์ผ์นํ๋ `PreToolUse` ํ
์ Claude๊ฐ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง ๋ฐ์ํ์ง๋ง, `/skillname`์ ์ง์ ์
๋ ฅํ๋ฉด `PreToolUse`๋ฅผ ์ฐํํฉ๋๋ค. `UserPromptExpansion`์ ์ด ์ง์ ๊ฒฝ๋ก์์ ๋ฐ์ํฉ๋๋ค.1628์ด ์ด๋ฒคํธ๋ `PreToolUse`๊ฐ ๋ค๋ฃจ์ง ์๋ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. `Skill` ๋๊ตฌ์ ์ผ์นํ๋ `PreToolUse` ํ
์ Claude๊ฐ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง ๋ฐ์ํ์ง๋ง, `/skillname`์ ์ง์ ์
๋ ฅํ๋ฉด `PreToolUse`๋ฅผ ์ฐํํฉ๋๋ค. `UserPromptExpansion`์ ์ด ์ง์ ๊ฒฝ๋ก์์ ๋ฐ์ํฉ๋๋ค.
1606 1629
1607`command_name`์ ๋ํด ๋งค์นญํฉ๋๋ค. ๋ชจ๋ ํ๋กฌํํธ ์ ํ ๋ช
๋ น์์ ๋ฐ์์ํค๋ ค๋ฉด matcher๋ฅผ ๋น์ ๋์ธ์.1630`command_name`์ ๋ํด ์ผ์นํฉ๋๋ค. ๋ชจ๋ ํ๋กฌํํธ ์ ํ ๋ช
๋ น์์ ๋ฐ์์ํค๋ ค๋ฉด matcher๋ฅผ ๋น์ ๋์ญ์์ค.
1608 1631
1609<h4 id="userpromptexpansion-input">1632<h4 id="userpromptexpansion-input">
1610 UserPromptExpansion ์
๋ ฅ1633 UserPromptExpansion ์
๋ ฅ
1635 1658
1636| ํ๋ | ์ค๋ช
|1659| ํ๋ | ์ค๋ช
|
1637| :- | :- |1660| :- | :- |
1638| `decision` | `"block"`์ ๋ช
๋ น์ด ํ์ฅ๋์ง ์๋๋ก ํฉ๋๋ค. ์งํ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํ์ธ์ |1661| `decision` | `"block"`์ ๋ช
๋ น์ด ํ์ฅ๋์ง ์๋๋ก ํฉ๋๋ค. ์งํ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํ์ญ์์ค |
1639| `reason` | `decision`์ด `"block"`์ผ ๋ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค |1662| `reason` | `decision`์ด `"block"`์ผ ๋ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค |
1640| `additionalContext` | ํ์ฅ๋ ํ๋กฌํํธ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |1663| `additionalContext` | ํ์ฅ๋ ํ๋กฌํํธ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
1641 1664
1642์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `reason`๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ฐจ๋จ ๋ฉ์์ง๋ stderr ํ
์คํธ๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํฉ๋๋ค.1665์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `reason`๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ฐจ๋จ ๋ฉ์์ง๋ ์ฌ์ฉ์์๊ฒ stderr ํ
์คํธ๋ฅผ ํ์ํฉ๋๋ค.
1643 1666
1644```json theme={null}1667```json theme={null}
1645{1668{
1656 MessageDisplay1679 MessageDisplay
1657</h3>1680</h3>
1658 1681
1659์ด์์คํดํธ ๋ฉ์์ง๊ฐ ํ๋ฉด์ผ๋ก ์คํธ๋ฆฌ๋ฐ๋๋ ๋์ ์คํ๋ฉ๋๋ค. Claude Code๋ ๋ฉ์์ง๋ฅผ ๋จ๊ณ์ ์ผ๋ก ํ์ํฉ๋๋ค. ์๋ก ์์ฑ๋ ์ค์ ๋ฐฐ์น๊ฐ ๋ ๋๋ง๋ ์ค๋น๊ฐ ๋ ๋๋ง๋ค ํ
์ด ํด๋น ์ค๋ก ํ ๋ฒ ์คํ๋๊ณ , Claude Code๋ ๊ทธ ์๋ฆฌ์ ํ
์ ๋์ฒด ํ
์คํธ๋ฅผ ๋ ๋๋งํฉ๋๋ค. ๊ธด ๋ฉ์์ง๋ ์ฌ๋ฌ ๋ฒ ํธ์ถ๋๋ฉฐ, ์งง์ ๋ฉ์์ง๋ ํ ๋ฒ๋ง ํธ์ถ๋ ์ ์์ต๋๋ค.1682์ด์์คํดํธ ๋ฉ์์ง๊ฐ ํ๋ฉด์ ์คํธ๋ฆฌ๋ฐ๋๋ ๋์ ์คํ๋ฉ๋๋ค. Claude Code๋ ๋ฉ์์ง๋ฅผ ๋จ๊ณ์ ์ผ๋ก ํ์ํฉ๋๋ค. ์๋ก ์์ฑ๋ ์ค ๋ฌถ์์ด ๋ ๋๋ง๋ ์ค๋น๊ฐ ๋ ๋๋ง๋ค ํ
์ด ํด๋น ์ค๋ก ํ ๋ฒ ์คํ๋๊ณ , Claude Code๋ ๊ทธ ์๋ฆฌ์ ํ
์ ๋์ฒด ํ
์คํธ๋ฅผ ๋ ๋๋งํฉ๋๋ค. ๊ธด ๋ฉ์์ง๋ ์ฌ๋ฌ ๋ฒ ํธ์ถ๋๋ฉฐ, ์งง์ ๋ฉ์์ง๋ ํ ๋ฒ๋ง ํธ์ถ๋ ์ ์์ต๋๋ค.
1660 1683
1661MessageDisplay๋ ๋ค์ ์ฉ๋๋ก ์ฌ์ฉํฉ๋๋ค:1684MessageDisplay๋ ๋ค์ ์ฉ๋๋ก ์ฌ์ฉํ์ญ์์ค.
1662 1685
1663* ์ต์ํ์ ํ์๋ฅผ ์ํด markdown ์ ๊ฑฐ1686* ์ต์ํ์ ํ์๋ฅผ ์ํด markdown ์ ๊ฑฐ
1664* Agent SDK ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ ์ฃผ๋ ํ
์คํธ ๋ณํ1687* Agent SDK ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ํ
์คํธ ๋ณํ
1665* Claude์ ์๋ต์์ API ํค๋ ๋ด๋ถ ํธ์คํธ ์ด๋ฆ ์ญ์ 1688* Claude์ ์๋ต์์ API ํค๋ ๋ด๋ถ ํธ์คํธ ์ด๋ฆ ๊ฐ๋ฆฌ๊ธฐ
1666 1689
1667Claude Code๋ ํ
์ด ๋ฐํํ ๋๊น์ง ๊ฐ ๋ฐฐ์น๋ฅผ ๋ณด๋ฅํ๋ฏ๋ก ํ
์ ๋น ๋ฅด๊ฒ ์ ์งํ์ธ์. ํ
์ด ์คํจํ๊ฑฐ๋ ์๊ฐ ์ด๊ณผ๋๋ฉด Claude Code๋ ์๋ ํ
์คํธ๋ฅผ ํ์ํฉ๋๋ค. ์ด ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ํ์์์์ 10์ด์ด๋ฉฐ, ํ
์ ๋ ๋ง์ ์๊ฐ์ด ํ์ํ๋ฉด ํ
ํญ๋ชฉ์์ `timeout` ํ๋๋ฅผ ์ค์ ํ์ธ์.1690Claude Code๋ ํ
์ด ๋ฐํํ ๋๊น์ง ๊ฐ ๋ฌถ์์ ๋ณด๋ฅํ๋ฏ๋ก ํ
์ ๋น ๋ฅด๊ฒ ์ ์งํ์ญ์์ค. ํ
์ด ์คํจํ๊ฑฐ๋ ์๊ฐ ์ด๊ณผ๋๋ฉด Claude Code๋ ์๋ ํ
์คํธ๋ฅผ ํ์ํฉ๋๋ค. ์ด ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ํ์์์์ 10์ด์ด๋ฉฐ, ํ
์ ๋ ๋ง์ ์๊ฐ์ด ํ์ํ๋ฉด ํ
ํญ๋ชฉ์์ `timeout` ํ๋๋ฅผ ์ค์ ํ์ญ์์ค.
1668 1691
1669MessageDisplay๋ ํ์ ์ ์ฉ์
๋๋ค. ๋์ฒด ํ
์คํธ๋ ํ๋ฉด์ ๋ ๋๋ง๋๋ ๋ด์ฉ๋ง ๋ณ๊ฒฝํฉ๋๋ค. ํธ๋์คํฌ๋ฆฝํธ์ Claude๊ฐ ๋ณด๋ ๋ด์ฉ์ ์๋ ํ
์คํธ๋ฅผ ์ ์งํ๋ฏ๋ก Claude๋ ๋์ฒด ํ
์คํธ๋ฅผ ๋ณด์ง ์์ผ๋ฉฐ, verbose ๋ชจ๋์์๋ ์๋ ํ
์คํธ๊ฐ ํ์๋ฉ๋๋ค. ํ
์ ์ด์์คํดํธ ๋ฉ์์ง ํ
์คํธ๋ง ๋ฐ์ผ๋ฏ๋ก ๋๊ตฌ ๊ฒฐ๊ณผ์ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํ
์คํธ๋ ๋ณ๊ฒฝ ์์ด ๋ ๋๋ง๋ฉ๋๋ค.1692MessageDisplay๋ ํ์ ์ ์ฉ์
๋๋ค. ๋์ฒด ํ
์คํธ๋ ํ๋ฉด์ ๋ ๋๋ง๋๋ ๋ด์ฉ๋ง ๋ณ๊ฒฝํฉ๋๋ค. ํธ๋์คํฌ๋ฆฝํธ์ Claude๊ฐ ๋ณด๋ ๋ด์ฉ์ ์๋ ํ
์คํธ๋ฅผ ์ ์งํ๋ฏ๋ก Claude๋ ๋์ฒด ํ
์คํธ๋ฅผ ๋ณด์ง ์์ผ๋ฉฐ, verbose ๋ชจ๋๋ ์๋ ํ
์คํธ๋ฅผ ํ์ํฉ๋๋ค. ํ
์ ์ด์์คํดํธ ๋ฉ์์ง ํ
์คํธ๋ง ๋ฐ์ผ๋ฏ๋ก ๋๊ตฌ ๊ฒฐ๊ณผ์ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํ
์คํธ๋ ๋ณ๊ฒฝ ์์ด ๋ ๋๋ง๋ฉ๋๋ค.
1670 1693
1671MessageDisplay๋ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ํ
์คํธ๋ฅผ ์คํธ๋ฆฌ๋ฐํ๋ ๋ชจ๋ ์ด์์คํดํธ ๋ฉ์์ง์ ๋ํด ๋ฐ์ํฉ๋๋ค. ๋๊ตฌ ํธ์ถ๋ง ์๋ ์๋ต์ฒ๋ผ ํ
์คํธ๊ฐ ์๋ ๋ฉ์์ง๋ ์ด ํ
์ ํธ๋ฆฌ๊ฑฐํ์ง ์์ต๋๋ค.1694MessageDisplay๋ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ํ
์คํธ๋ฅผ ์คํธ๋ฆฌ๋ฐํ๋ ๋ชจ๋ ์ด์์คํดํธ ๋ฉ์์ง์ ๋ํด ๋ฐ์ํฉ๋๋ค. ๋๊ตฌ ํธ์ถ๋ง ์๋ ์๋ต์ฒ๋ผ ํ
์คํธ๊ฐ ์๋ ๋ฉ์์ง๋ ์ด ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์ต๋๋ค.
1672 1695
1673Agent SDK ์ฟผ๋ฆฌ์ `claude -p`๋ฅผ ํฌํจํ ๋น๋ํํ ์คํ์์ MessageDisplay๋ ์ค ๋ฐฐ์น๋ง๋ค๊ฐ ์๋๋ผ ์ด์์คํดํธ ๋ฉ์์ง๋ง๋ค ํ ๋ฒ ์คํ๋ฉ๋๋ค. ์ด ๋จ์ผ ํธ์ถ์ ๋ฉ์์ง๊ฐ ์๋ฃ๋ ํ ๋์ฐฉํ๋ฉฐ ์ ์ฒด ๋ฉ์์ง ํ
์คํธ๋ฅผ ๋ด์ต๋๋ค. `index`๋ `0`, `final`์ `true`์ด๊ณ `delta`์๋ ์ ์ฒด ๋ฉ์์ง๊ฐ ๋ค์ด ์์ต๋๋ค. ๊ฐ ๋ฉ์์ง์ `delta` ํ
์คํธ๋ฅผ ์์งํ๋ ํ
์ ๋ ๋ชจ๋์์ ๋์ผํ ์ ์ฒด ํ
์คํธ๋ฅผ ๋ฐ์ต๋๋ค.1696Agent SDK ์ฟผ๋ฆฌ์ `claude -p`๋ฅผ ํฌํจํ ๋น๋ํํ ์คํ์์ MessageDisplay๋ ์ค ๋ฌถ์๋ง๋ค๊ฐ ์๋๋ผ ์ด์์คํดํธ ๋ฉ์์ง๋น ํ ๋ฒ ์คํ๋ฉ๋๋ค. ์ด ๋จ์ผ ํธ์ถ์ ๋ฉ์์ง๊ฐ ์๋ฃ๋ ํ ๋์ฐฉํ๋ฉฐ ์ ์ฒด ๋ฉ์์ง ํ
์คํธ๋ฅผ ๋ด๊ณ ์์ต๋๋ค. `index`๋ `0`, `final`์ `true`์ด๊ณ , `delta`์๋ ์ ์ฒด ๋ฉ์์ง๊ฐ ๋ด๊น๋๋ค. ๊ฐ ๋ฉ์์ง์ `delta` ํ
์คํธ๋ฅผ ์์งํ๋ ํ
์ ๋ ๋ชจ๋์์ ๋์ผํ ์ ์ฒด ํ
์คํธ๋ฅผ ๋ฐ์ต๋๋ค.
1674 1697
1675<h4 id="messagedisplay-input">1698<h4 id="messagedisplay-input">
1676 MessageDisplay ์
๋ ฅ1699 MessageDisplay ์
๋ ฅ
1677</h4>1700</h4>
1678 1701
1679[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ MessageDisplay ํ
์ ํด๊ณผ ๋ฉ์์ง์ ์๋ณ์, ๋ฉ์์ง ๋ด ์ด ํธ์ถ์ ์์น, `delta`์ ๋ด๊ธด ์ ํ
์คํธ๋ฅผ ๋ฐ์ต๋๋ค. ๋ฐฐ์น ๊ฒฝ๊ณ๋ ํ
์คํธ๊ฐ ์คํธ๋ฆฌ๋ฐ๋๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฏ๋ก, ์ค์ด ํน์ ๋ฐฉ์์ผ๋ก ๊ทธ๋ฃนํ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ๋ง๊ณ `index`์ `final`์ ์ฌ์ฉํด ๋ฉ์์ง ์งํ ์ํฉ์ ์ถ์ ํ์ธ์.1702[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ MessageDisplay ํ
์ ํด๊ณผ ๋ฉ์์ง์ ์๋ณ์, ๋ฉ์์ง ๋ด์์ ์ด ํธ์ถ์ ์์น, ๊ทธ๋ฆฌ๊ณ `delta`์ ๋ด๊ธด ์ ํ
์คํธ๋ฅผ ๋ฐ์ต๋๋ค. ๋ฌถ์ ๊ฒฝ๊ณ๋ ํ
์คํธ๊ฐ ์คํธ๋ฆฌ๋ฐ๋๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฏ๋ก, ์ค์ด ํน์ ๋ฐฉ์์ผ๋ก ๋ฌถ์ผ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ๋ง๊ณ `index`์ `final`์ ์ฌ์ฉํด ๋ฉ์์ง ์งํ ์ํฉ์ ์ถ์ ํ์ญ์์ค.
1680 1703
1681| ํ๋ | ์ค๋ช
|1704| ํ๋ | ์ค๋ช
|
1682| :- | :- |1705| :- | :- |
1683| `turn_id` | ํ์ฌ ํด์ UUID |1706| `turn_id` | ํ์ฌ ํด์ UUID |
1684| `message_id` | ํ์ ์ค์ธ ์ด์์คํดํธ ๋ฉ์์ง์ UUID. ๊ฐ์ ๋ฉ์์ง์ ๋ชจ๋ ๋ฐฐ์น์์ ๋์ผํฉ๋๋ค. API `msg_โฆ` id๊ฐ ์๋๋ฏ๋ก ํธ๋์คํฌ๋ฆฝํธ ๋ฉ์์ง id์ ์ฐ๊ด์ํฌ ์ ์์ต๋๋ค |1707| `message_id` | ํ์ ์ค์ธ ์ด์์คํดํธ ๋ฉ์์ง์ UUID์
๋๋ค. ๊ฐ์ ๋ฉ์์ง์ ๋ชจ๋ ๋ฌถ์์์ ๋์ผํฉ๋๋ค. ์ด๋ API `msg_โฆ` id๊ฐ ์๋๋ฏ๋ก ํธ๋์คํฌ๋ฆฝํธ ๋ฉ์์ง id์ ์ฐ๊ด์ํฌ ์ ์์ต๋๋ค |
1685| `index` | ๋ฉ์์ง ๋ด ์ด ๋ฐฐ์น์ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค |1708| `index` | ๋ฉ์์ง ๋ด์์ ์ด ๋ฌถ์์ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค |
1686| `final` | ๋ฉ์์ง์ ๋ง์ง๋ง ๋ฐฐ์น์์ `true`. ๊ฐ ๋ฉ์์ง์๋ ์ ํํ ํ๋์ ๋ง์ง๋ง ๋ฐฐ์น๊ฐ ์์ต๋๋ค |1709| `final` | ๋ฉ์์ง์ ๋ง์ง๋ง ๋ฌถ์์์ `true`์
๋๋ค. ๊ฐ ๋ฉ์์ง์๋ ์ ํํ ํ๋์ ๋ง์ง๋ง ๋ฌถ์์ด ์์ต๋๋ค |
1687| `delta` | ์ด์ ๋ฐฐ์น ์ดํ ์๋ก ์์ฑ๋ ์ค(๋์ ์ค๋ฐ๊ฟ ํฌํจ). ์ค ์ค๊ฐ์์ ๋๋ ์ ์๋ ๋ง์ง๋ง ๋ฐฐ์น๋ฅผ ์ ์ธํ๊ณ ํญ์ ์์ ํ ์ค์
๋๋ค. ๋ํํ ์คํ์์ ๋ฉ์์ง๊ฐ ์ค๋ฐ๊ฟ์ผ๋ก ๋๋๋ฉด ๋ง์ง๋ง ๋ฐฐ์น์ delta๋ ๋น์ด ์์ผ๋ฏ๋ก, ๋น์ด ์์ง ์์ delta๊ฐ ์๋๋ผ `final`์ ๋ฉ์์ง ์ข
๋ฃ ์ ํธ๋ก ์ทจ๊ธํ์ธ์. Agent SDK ๋ฐ `claude -p` ์คํ์์๋ ๋จ์ผ ํธ์ถ์ ์ ์ฒด ๋ฉ์์ง๊ฐ ๋ด๊น๋๋ค |1710| `delta` | ์ด์ ๋ฌถ์ ์ดํ ์๋ก ์์ฑ๋ ์ค๋ก, ๋์ ์ค๋ฐ๊ฟ์ ํฌํจํฉ๋๋ค. ์ค ์ค๊ฐ์์ ๋๋ ์ ์๋ ๋ง์ง๋ง ๋ฌถ์์ ์ ์ธํ๋ฉด ํญ์ ์์ ํ ์ค์
๋๋ค. ๋ํํ ์คํ์์ ๋ฉ์์ง๊ฐ ์ค๋ฐ๊ฟ์ผ๋ก ๋๋๋ฉด ๋ง์ง๋ง ๋ฌถ์์ delta๋ ๋น์ด ์์ผ๋ฏ๋ก, ๋น์ด ์์ง ์์ delta๊ฐ ์๋๋ผ `final`์ ๋ฉ์์ง ์ข
๋ฃ ์ ํธ๋ก ์ทจ๊ธํ์ญ์์ค. Agent SDK ๋ฐ `claude -p` ์คํ์์๋ ๋จ์ผ ํธ์ถ์ด ์ ์ฒด ๋ฉ์์ง๋ฅผ ๋ด์ต๋๋ค |
1688 1711
1689```json theme={null}1712```json theme={null}
1690{1713{
1704 MessageDisplay ์ถ๋ ฅ1727 MessageDisplay ์ถ๋ ฅ
1705</h4>1728</h4>
1706 1729
1707๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ MessageDisplay ํ
์ ํ๋ฉด์ delta๋ฅผ ๋์ฒดํ๋ `displayContent`๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค:1730๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ MessageDisplay ํ
์ ํ๋ฉด์ delta๋ฅผ ๋์ฒดํ๋ `displayContent`๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
1708 1731
1709| ํ๋ | ์ค๋ช
|1732| ํ๋ | ์ค๋ช
|
1710| :- | :- |1733| :- | :- |
1711| `displayContent` | delta ๋์ ํ์๋๋ ํ
์คํธ. ์๋ ํ
์คํธ๋ฅผ ํ์ํ๋ ค๋ฉด ์๋ตํ์ธ์ |1734| `displayContent` | delta ๋์ ํ์๋๋ ํ
์คํธ์
๋๋ค. ์๋ ํ
์คํธ๋ฅผ ํ์ํ๋ ค๋ฉด ์๋ตํ์ญ์์ค |
1712 1735
1713MessageDisplay ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ๋ฉ์์ง๋ฅผ ์ฐจ๋จํ๊ฑฐ๋, ํธ๋์คํฌ๋ฆฝํธ์ ์ ์ฅ๋๊ฑฐ๋ Claude์ ์ ์ก๋๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. Claude Code๋ JSON ์ถ๋ ฅ์ `displayContent`์ ๋ฐ๋ผ ๋์ํ๊ณ `systemMessage`์ `continue`๋ ๋ฒ๋ฆฝ๋๋ค.1736MessageDisplay ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ๋ฉ์์ง๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ํธ๋์คํฌ๋ฆฝํธ์ ์ ์ฅ๋๊ฑฐ๋ Claude์ ์ ์ก๋๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. Claude Code๋ JSON ์ถ๋ ฅ์ `displayContent`๋ฅผ ์ฒ๋ฆฌํ๊ณ `systemMessage`์ `continue`๋ ๋ฒ๋ฆฝ๋๋ค.
1714 1737
1715์ด ์์๋ ์ผ๋ฐ ํ
์คํธ ํ์๋ฅผ ์ํด Claude์ ์๋ต์์ markdown ์์์ ์ ๊ฑฐํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ stdin์์ ๊ฐ ๋ฐฐ์น๋ฅผ ์ฝ๊ณ , `delta`์์ ๊ตต๊ฒ ํ์ ๊ธฐํธ์ ์ธ๋ผ์ธ ์ฝ๋ ๋ฐฑํฑ์ ์ ๊ฑฐํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ `displayContent`๋ก ๋ฐํํฉ๋๋ค.1738๋ค์ ์์๋ ์ผ๋ฐ ํ
์คํธ ํ์๋ฅผ ์ํด Claude์ ์๋ต์์ markdown ์์์ ์ ๊ฑฐํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ stdin์์ ๊ฐ ๋ฌถ์์ ์ฝ๊ณ , `delta`์์ ๊ตต๊ฒ ํ์ ๋ง์ปค์ ์ธ๋ผ์ธ ์ฝ๋ ๋ฐฑํฑ์ ์ ๊ฑฐํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ `displayContent`๋ก ๋ฐํํฉ๋๋ค.
1716 1739
1717<Tabs>1740<Tabs>
1718 <Tab title="macOS/Linux">1741 <Tab title="macOS/Linux">
1719 ์ค์ ํ์ผ์ ์ด ์ด๋ฒคํธ์ ๋ํ command ํ
์ ๋ฑ๋กํ์ธ์:1742 ์ค์ ํ์ผ์์ ์ด๋ฒคํธ์ ๋ํ command ํ
์ ๋ฑ๋กํฉ๋๋ค.
1720 1743
1721 ```json theme={null}1744 ```json theme={null}
1722 {1745 {
1736 }1759 }
1737 ```1760 ```
1738 1761
1739 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/plain-display.sh`์ ์ ์ฅํ๊ณ `chmod +x`๋ก ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋์ธ์:1762 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/plain-display.sh`์ ์ ์ฅํ๊ณ `chmod +x`๋ก ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
1740 1763
1741 ```bash theme={null}1764 ```bash theme={null}
1742 #!/bin/bash1765 #!/bin/bash
1745 </Tab>1768 </Tab>
1746 1769
1747 <Tab title="Windows (PowerShell)">1770 <Tab title="Windows (PowerShell)">
1748 PowerShell์ ํตํด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ command ํ
์ ๋ฑ๋กํ์ธ์:1771 PowerShell์ ํตํด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ command ํ
์ ๋ฑ๋กํฉ๋๋ค.
1749 1772
1750 ```json theme={null}1773 ```json theme={null}
1751 {1774 {
1771 }1794 }
1772 ```1795 ```
1773 1796
1774 `-NoProfile` ํ๋๊ทธ๋ PowerShell ํ๋กํ ๋ก๋๋ฅผ ๊ฑด๋๋ฐ์ด ํ
์ด ๋น ๋ฅด๊ฒ ์์๋๋๋ก ํ๊ณ , `-ExecutionPolicy Bypass`๋ PowerShell์ด ๋ก์ปฌ ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ ์ ์๊ฒ ํฉ๋๋ค.1797 `-NoProfile` ํ๋๊ทธ๋ PowerShell ํ๋กํ ๋ก๋๋ฅผ ๊ฑด๋๋ฐ์ด ํ
์ด ๋น ๋ฅด๊ฒ ์์๋๋๋ก ํ๋ฉฐ, `-ExecutionPolicy Bypass`๋ PowerShell์ด ๋ก์ปฌ ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ ์ ์๊ฒ ํฉ๋๋ค.
1775 1798
1776 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/plain-display.ps1`์ ์ ์ฅํ์ธ์:1799 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/plain-display.ps1`์ ์ ์ฅํฉ๋๋ค.
1777 1800
1778 ```powershell theme={null}1801 ```powershell theme={null}
1779 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1802 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json
1788 </Tab>1811 </Tab>
1789</Tabs>1812</Tabs>
1790 1813
1791markdown์ด ์๋ ๋ฐฐ์น๋ ๋ณ๊ฒฝ ์์ด ํต๊ณผํฉ๋๋ค. ์๋ฅผ ๋ค์ด `jq`๊ฐ ์์ด ์คํฌ๋ฆฝํธ๊ฐ ์คํจํ๋ฉด Claude Code๋ ์๋ ํ
์คํธ๋ฅผ ํ์ํ๊ณ , ์คํจ๋ ์ธ์
์ด ์๋ [๋๋ฒ๊ทธ ์ถ๋ ฅ](#debug-hooks)์๋ง ๊ธฐ๋กํฉ๋๋ค.1814markdown์ด ์๋ ๋ฌถ์์ ๋ณ๊ฒฝ ์์ด ํต๊ณผํฉ๋๋ค. ์๋ฅผ ๋ค์ด `jq`๊ฐ ์์ด์ ์คํฌ๋ฆฝํธ๊ฐ ์คํจํ๋ฉด, Claude Code๋ ์๋ ํ
์คํธ๋ฅผ ํ์ํ๊ณ ์คํจ๋ฅผ ์ธ์
์ด ์๋ [๋๋ฒ๊ทธ ์ถ๋ ฅ](#debug-hooks)์๋ง ๊ธฐ๋กํฉ๋๋ค.
1792 1815
1793<h3 id="pretooluse">1816<h3 id="pretooluse">
1794 PreToolUse1817 PreToolUse
1795</h3>1818</h3>
1796 1819
1797Claude๊ฐ ๋๊ตฌ ๋งค๊ฐ๋ณ์๋ฅผ ์์ฑํ ํ, ๋๊ตฌ ํธ์ถ์ ์ฒ๋ฆฌํ๊ธฐ ์ ์ ์คํ๋ฉ๋๋ค. `EndConversation`์ ์ ์ธํ ๋ชจ๋ ๋๊ตฌ ์ด๋ฆ์ ๋ํด ๋งค์นญํฉ๋๋ค. ์ฌ๊ธฐ์๋ `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` ๊ฐ์ ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ์ ๋ชจ๋ [MCP ๋๊ตฌ ์ด๋ฆ](#match-mcp-tools)์ด ํฌํจ๋ฉ๋๋ค.1820Claude๊ฐ ๋๊ตฌ ๋งค๊ฐ๋ณ์๋ฅผ ์์ฑํ ํ, ๋๊ตฌ ํธ์ถ์ ์ฒ๋ฆฌํ๊ธฐ ์ ์ ์คํ๋ฉ๋๋ค. `EndConversation`์ ์ ์ธํ ๋ชจ๋ ๋๊ตฌ ์ด๋ฆ์ ๋ํด ์ผ์นํฉ๋๋ค. ์ฌ๊ธฐ์๋ `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` ๊ฐ์ ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ์ ๋ชจ๋ [MCP ๋๊ตฌ ์ด๋ฆ](#match-mcp-tools)์ด ํฌํจ๋ฉ๋๋ค.
1798 1821
1799๋ฌด์์ด ํ์ผ์ ์ผ๋์ง์ ๊ด๊ณ์์ด ํน์ ํ์ผ์ด ๋์คํฌ์์ ๋ณ๊ฒฝ๋ ๋ ํ
์ ์คํํ๋ ค๋ฉด, ํ์ผ ํธ์ง ๋๊ตฌ๋ฅผ ์ด๋ฆ์ผ๋ก ๋งค์นญํ๋ ๋์ [FileChanged](#filechanged)๋ฅผ ์ฌ์ฉํ์ธ์. PreToolUse์ ๋ฌ๋ฆฌ Claude Code๋ ๋ณ๊ฒฝ ํ์ FileChanged ํ
์ ์คํํ๋ฉฐ, ์ด ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ผ๋ฏ๋ก ์ฐ๊ธฐ๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค.1822๋ฌด์์ด ํ์ผ์ ์ผ๋ ์๊ด์์ด ๋์คํฌ์ ํน์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ํ
์ ์คํํ๋ ค๋ฉด, ํ์ผ ํธ์ง ๋๊ตฌ๋ฅผ ์ด๋ฆ์ผ๋ก ์ผ์น์ํค๋ ๋์ [FileChanged](#filechanged)๋ฅผ ์ฌ์ฉํ์ญ์์ค. PreToolUse์ ๋ฌ๋ฆฌ Claude Code๋ ๋ณ๊ฒฝ ํ์ FileChanged ํ
์ ์คํํ๋ฉฐ, ์ด ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ผ๋ฏ๋ก ์ฐ๊ธฐ๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค.
1800 1823
1801<Warning>1824<Warning>
1802 PreToolUse๋ Claude๊ฐ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง ์คํ๋ฉ๋๋ค. [ํ๋กฌํํธ์์ `@`๋ก ์ฐธ์กฐํ๋](/docs/ko/common-workflows#reference-files-and-directories) ํ์ผ์ ๋๊ตฌ ํธ์ถ ์์ด ์ถ๊ฐ๋ฉ๋๋ค. Claude Code๋ ํ๋กฌํํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋์ ํด๋น ํ์ผ์ ๋ด์ฉ์ ์ฝ์
ํ๋ฏ๋ก, `Read`์ ์ผ์นํ๋ ํ
์ ํฌํจํด ์ด๋ค PreToolUse ํ
๋ ์ด ํ์ผ์ ๋ํด ๋ฐ์ํ์ง ์์ต๋๋ค. `@` ์ฐธ์กฐ์์ ํน์ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด ๋์ [`Read` ๊ฑฐ๋ถ ๊ท์น](/docs/ko/permissions#read-and-edit)์ ์ฌ์ฉํ์ธ์.1825 PreToolUse๋ Claude๊ฐ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง ์คํ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก [ํ๋กฌํํธ์์ `@`๋ก ์ฐธ์กฐ](/docs/ko/common-workflows#reference-files-and-directories)ํ ํ์ผ์ ๋๊ตฌ ํธ์ถ ์์ด ์ถ๊ฐ๋ฉ๋๋ค. Claude Code๋ ํ๋กฌํํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋์ ํด๋น ํ์ผ์ ๋ด์ฉ์ ์ฝ์
ํ๋ฏ๋ก, `Read`์ ์ผ์นํ๋ ํ
์ ํฌํจํด ์ด๋ค PreToolUse ํ
๋ ๋ฐ์ํ์ง ์์ต๋๋ค. PreToolUse๋ [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)์ ๋ํด์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
1826
1827 `@` ์ฐธ์กฐ์์ ํน์ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์ฝ์
์ ๋ ์ ์์ต๋๋ค.
1803 1828
1804 PreToolUse๋ [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)์ ๋ํด์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.1829 * **ํน์ ๊ฒฝ๋ก ์ฐจ๋จ**: ํด๋น ๊ฒฝ๋ก์ ๋ํ [`Read` ๊ฑฐ๋ถ ๊ท์น](/docs/ko/permissions#read-and-edit)์ ์ถ๊ฐํฉ๋๋ค
1830 * **์ฝ์
๋๊ธฐ**: ์
ธ, ์ฌ์ฉ์ ์ค์ ๋๋ ๊ด๋ฆฌํ ์ค์ ์์ [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/ko/env-vars#variables)์ ์ค์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด Claude๋ ํ์ผ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ์ฝ์ผ๋ผ๋ ์๋ด์ ํจ๊ป ์ธ๊ธ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ต๋๋ค. Claude๊ฐ ๊ทธ๋ ๊ฒ ํ๋ฉด ์ผ์นํ๋ PreToolUse ํ
์ด ์คํ๋ฉ๋๋ค. ์ด ๋ณ์์๋ Claude Code v2.1.299 ์ด์์ด ํ์ํ๋ฉฐ, Claude Code๋ ํ๋ก์ ํธ ๋ฐ ๋ก์ปฌ ์ค์ ์์๋ ์ด ๋ณ์๋ฅผ ๋ฌด์ํฉ๋๋ค.
1805</Warning>1831</Warning>
1806 1832
1807[PreToolUse ๊ฒฐ์ ์ ์ด](#pretooluse-decision-control)๋ฅผ ์ฌ์ฉํด ๋๊ตฌ ํธ์ถ์ ํ์ฉ, ๊ฑฐ๋ถ, ํ์ธ ์์ฒญ ๋๋ ์ง์ฐํ์ธ์.1833[PreToolUse ๊ฒฐ์ ์ ์ด](#pretooluse-decision-control)๋ฅผ ์ฌ์ฉํด ๋๊ตฌ ํธ์ถ์ ํ์ฉ, ๊ฑฐ๋ถ, ํ์ธ ์์ฒญ ๋๋ ์ง์ฐํ ์ ์์ต๋๋ค.
1808 1834
1809`PreToolUse`์ [Agent SDK ์ฝ๋ฐฑ ํ
](/docs/ko/agent-sdk/hooks)์ด ํ์์์์ ์ด๊ณผํ๋ฉด ๋๊ตฌ ํธ์ถ์ด ์ฐจ๋จ๋๊ณ , Claude๋ ํ์์์์ ๋ช
์ํ๋ ์ค๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ต๋๋ค. ๋ค๋ฅธ ํ
์ด ๋ฐํํ ๋ช
์์ ๊ฑฐ๋ถ๋ ์ฌ์ ํ ์ฐ์ ํฉ๋๋ค.1835`PreToolUse`์ [Agent SDK ์ฝ๋ฐฑ ํ
](/docs/ko/agent-sdk/hooks)์ด ํ์์์์ ์ด๊ณผํ๋ฉด ๋๊ตฌ ํธ์ถ์ด ์ฐจ๋จ๋๊ณ , Claude๋ ํ์์์์ ๋ช
์ํ ์ค๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ต๋๋ค. ๋ค๋ฅธ ํ
์ด ๋ฐํํ ๋ช
์์ ๊ฑฐ๋ถ๋ ์ฌ์ ํ ์ฐ์ ํฉ๋๋ค.
1810 1836
1811<h4 id="pretooluse-input">1837<h4 id="pretooluse-input">
1812 PreToolUse ์
๋ ฅ1838 PreToolUse ์
๋ ฅ
1814 1840
1815[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PreToolUse ํ
์ `tool_name`, `tool_input`, `tool_use_id`๋ฅผ ๋ฐ์ต๋๋ค.1841[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PreToolUse ํ
์ `tool_name`, `tool_input`, `tool_use_id`๋ฅผ ๋ฐ์ต๋๋ค.
1816 1842
1817[MCP ๋๊ตฌ](#match-mcp-tools)์ ๊ฒฝ์ฐ ์
๋ ฅ์ `mcp_server`๋ ํฌํจ๋ฉ๋๋ค. ์ด๋ ์๋ฒ์ `name`๊ณผ ์๋ฒ ์ ์์ ์ถ์ฒ๋ฅผ ๋ํ๋ด๋ `source`๊ฐ ์๋ ๊ฐ์ฒด์
๋๋ค. `source` ๊ฐ์๋ `plugin`, `sdk`, ๊ทธ๋ฆฌ๊ณ `user`, `project` ๊ฐ์ ๊ตฌ์ฑ ๋ฒ์๊ฐ ํฌํจ๋ฉ๋๋ค. Agent SDK ์ฐธ์กฐ์ [`McpServerProvenance`](/docs/ko/agent-sdk/typescript#mcpserverprovenance)์ ์ ์ฒด ๋ชฉ๋ก๊ณผ ์ธ์ํ ์ ์๋ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด ๋์ ์์ต๋๋ค. ์ ๋ขฐ ๊ฒฐ์ ์ `name`์ด๋ `mcp__<server>__` ๋๊ตฌ ์ด๋ฆ ์ ๋์ฌ๊ฐ ์๋๋ผ `source`๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ธ์. `mcp_server` ํ๋์๋ Claude Code v2.1.274 ์ด์์ด ํ์ํฉ๋๋ค.1843[MCP ๋๊ตฌ](#match-mcp-tools)์ ๊ฒฝ์ฐ ์
๋ ฅ์ `mcp_server`๋ ํฌํจ๋ฉ๋๋ค. ์ด๋ ์๋ฒ์ `name`๊ณผ ์๋ฒ ์ ์์ ์ถ์ฒ๋ฅผ ๋ํ๋ด๋ `source`๋ฅผ ๋ด์ ๊ฐ์ฒด์
๋๋ค. `source` ๊ฐ์๋ `plugin`, `sdk`, ๊ทธ๋ฆฌ๊ณ `user`, `project` ๊ฐ์ ๊ตฌ์ฑ ๋ฒ์๊ฐ ํฌํจ๋ฉ๋๋ค. Agent SDK ๋ ํผ๋ฐ์ค์ [`McpServerProvenance`](/docs/ko/agent-sdk/typescript#mcpserverprovenance)์ ๋ชจ๋ ๊ฐ์ด ๋์ด๋์ด ์์ผ๋ฉฐ, ์ธ์ํ์ง ๋ชปํ๋ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ๋ ์ค๋ช
๋์ด ์์ต๋๋ค. ์ ๋ขฐ ๊ฒฐ์ ์ `name`์ด๋ `mcp__<server>__` ๋๊ตฌ ์ด๋ฆ ์ ๋์ฌ๊ฐ ์๋ `source`๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ญ์์ค. `mcp_server` ํ๋์๋ Claude Code v2.1.274 ์ด์์ด ํ์ํฉ๋๋ค.
1818 1844
1819ํ์ผ ๋๊ตฌ `Write`, `Edit`, `Read`์ ๊ฒฝ์ฐ `tool_input.file_path`๋ ํญ์ ์ ๋ ๊ฒฝ๋ก์
๋๋ค:1845ํ์ผ ๋๊ตฌ `Write`, `Edit`, `Read`์ ๊ฒฝ์ฐ `tool_input.file_path`๋ ํญ์ ์ ๋ ๊ฒฝ๋ก์
๋๋ค.
1820 1846
1821* Claude Code๋ ํ
์ด ์คํ๋๊ธฐ ์ ์ `~`์ ์๋ ๊ฒฝ๋ก๋ฅผ ํ์ฅํ๋ฏ๋ก, ๊ฒฝ๋ก๋ฅผ ๋งค์นญํ๋ ํ
์ `~`๋ ๊ฐ์ ๊ฒฝ๋ก์ ์๋ ํ๊ธฐ๋ก ์ฐํํ ์ ์์ต๋๋ค1847* Claude Code๋ ํ
์ด ์คํ๋๊ธฐ ์ ์ `~`์ ์๋ ๊ฒฝ๋ก๋ฅผ ํ์ฅํ๋ฏ๋ก, ๊ฒฝ๋ก๋ก ์ผ์น์ํค๋ ํ
์ `~`๋ ๊ฐ์ ๊ฒฝ๋ก์ ์๋ ํ๊ธฐ๋ก ์ฐํํ ์ ์์ต๋๋ค
1822* Windows์์๋ `$PWD`๊ฐ `/c/project`์ฒ๋ผ ๋ณด์ด๋ Git Bash์์ ํ
์ด ์คํ๋๋๋ผ๋ ๊ฒฝ๋ก๊ฐ ๋ฐฑ์ฌ๋์ ๊ตฌ๋ถ์๋ก ์ ๋ฌ๋ฉ๋๋ค1848* Windows์์๋ `$PWD`๊ฐ `/c/project`์ฒ๋ผ ๋ณด์ด๋ Git Bash์์ ํ
์ด ์คํ๋๋๋ผ๋ ๊ฒฝ๋ก๊ฐ ๋ฐฑ์ฌ๋์ ๊ตฌ๋ถ์๋ก ๋์ฐฉํฉ๋๋ค
1823* `/src/` ๊ฒ์ฌ์ฒ๋ผ ์ฌ๋์๋ก ์์ฑ๋ ๋น๊ต๋ ๋ฐฑ์ฌ๋์ ๊ฒฝ๋ก์ ์ ๋ ์ผ์นํ์ง ์์ผ๋ฉฐ, ๋๊ตฌ ํธ์ถ์ ํ
์ด ์ฐจ๋จํ ๊ฒ์ด ์์๋ ๊ฒ์ฒ๋ผ ์งํ๋ฉ๋๋ค1849* `/src/` ๊ฒ์ฌ์ฒ๋ผ ์ฌ๋์๋ก ์์ฑ๋ ๋น๊ต๋ ๋ฐฑ์ฌ๋์ ๊ฒฝ๋ก์ ์ ๋ ์ผ์นํ์ง ์์ผ๋ฉฐ, ๋๊ตฌ ํธ์ถ์ ํ
์ด ์ฐจ๋จํ ๊ฒ์ด ์์๋ ๊ฒ์ฒ๋ผ ์งํ๋ฉ๋๋ค
1824* ๋น๊ตํ๊ธฐ ์ ์ ๊ตฌ๋ถ์๋ฅผ ์ ๊ทํํ์ธ์. Bash์์๋ `FILE_PATH="${FILE_PATH//\\//}"`, Python์์๋ `file_path.replace("\\", "/")`๋ฅผ ์ฌ์ฉํ ๋ค์, ๊ฒฝ๋ก๊ฐ ์ ๋ ๊ฒฝ๋ก์ด๋ฏ๋ก `^`๋ก ๊ณ ์ ํ์ง ๋ง๊ณ `/src/` ๊ฐ์ ๊ฒฝ๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ๋งค์นญํ์ธ์1850* ๋น๊ตํ๊ธฐ ์ ์ ๊ตฌ๋ถ์๋ฅผ ์ ๊ทํํ์ญ์์ค. Bash์์๋ `FILE_PATH="${FILE_PATH//\\//}"`, Python์์๋ `file_path.replace("\\", "/")`๋ฅผ ์ฌ์ฉํ ๋ค์, ๊ฒฝ๋ก๊ฐ ์ ๋ ๊ฒฝ๋ก์ด๋ฏ๋ก `^`๋ก ๊ณ ์ ํ์ง ๋ง๊ณ `/src/` ๊ฐ์ ๊ฒฝ๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ์ผ์น์ํค์ญ์์ค
1825 1851
1826Windows์์ `Write` ํธ์ถ์ ๋ค์์ ์ ๋ฌํฉ๋๋ค:1852Windows์์์ `Write` ํธ์ถ์ ๋ค์์ ์ ๋ฌํฉ๋๋ค.
1827 1853
1828```json theme={null}1854```json theme={null}
1829{1855{
1837}1863}
1838```1864```
1839 1865
1840`tool_input` ํ๋๋ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค:1866`tool_input` ํ๋๋ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
1841 1867
1842<a id="bash" />1868<a id="bash" />
1843 1869
1851| :- | :- | :- | :- |1877| :- | :- | :- | :- |
1852| `command` | string | `"npm test"` | ์คํํ ์
ธ ๋ช
๋ น |1878| `command` | string | `"npm test"` | ์คํํ ์
ธ ๋ช
๋ น |
1853| `description` | string | `"Run test suite"` | ๋ช
๋ น์ด ์ํํ๋ ์์
์ ๋ํ ์ ํ์ ์ค๋ช
|1879| `description` | string | `"Run test suite"` | ๋ช
๋ น์ด ์ํํ๋ ์์
์ ๋ํ ์ ํ์ ์ค๋ช
|
1854| `timeout` | number | `120000` | ๋ฐ๋ฆฌ์ด ๋จ์์ ์ ํ์ ํ์์์. [์ต๋๊ฐ](/docs/ko/tools-reference#bash-tool-behavior)์ ์ด๊ณผํ๋ ๊ฐ์ ๊ฑฐ๋ถ๋์ง ์๊ณ ์ต๋๊ฐ์ผ๋ก ์ค์ด๋ญ๋๋ค |1880| `timeout` | number | `120000` | ๋ฐ๋ฆฌ์ด ๋จ์์ ์ ํ์ ํ์์์์
๋๋ค. [์ต๋๊ฐ](/docs/ko/tools-reference#bash-tool-behavior)์ ์ด๊ณผํ๋ ๊ฐ์ ๊ฑฐ๋ถ๋์ง ์๊ณ ์ต๋๊ฐ์ผ๋ก ์ค์ด๋ญ๋๋ค |
1855| `run_in_background` | boolean | `false` | ๋ช
๋ น์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ง ์ฌ๋ถ |1881| `run_in_background` | boolean | `false` | ๋ช
๋ น์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ง ์ฌ๋ถ |
1856 1882
1857Bash ๋ช
๋ น์ด Git ์ ์ฅ์์ ํ์ผ์ ๋ณ๊ฒฝํ๋ฉด Claude Code๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ ์ ์์ต๋๋ค. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) ์ค์ ์ด ๊ธฐ๋ก์ ์ผ๋ฉด ๋ชจ๋ ๊ถํ ๋ชจ๋์์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ๋ฉฐ, ์ด๋ค ํ์ผ์์ ์ด ์ค์ ์ ์ง์ ํ ์ ์๋์ง๋ ํด๋น ์ค์ ํญ๋ชฉ์ ๋์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ ๋ชจ๋์ `bypassPermissions` ๋ชจ๋์์๋ง, ๊ทธ๋ฆฌ๊ณ Claude Code๊ฐ Claude์๊ฒ Bash๋ฅผ ํตํด ํ์ผ์ ํธ์งํ๋๋ก ์ง์ํ ๋๋ง ๊ธฐ๋กํฉ๋๋ค. ๊ธฐ๋ก์ ๋๋ ค๋ฉด `bashEditDiffEnabled`๋ฅผ `false`๋ก ์ค์ ํ์ธ์. ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ช
๋ น๊ณผ ์ฝ๊ธฐ ์ ์ฉ ๋ช
๋ น์๋ diff๊ฐ ํฌํจ๋์ง ์์ต๋๋ค.1883Bash ๋ช
๋ น์ด Git ์ ์ฅ์์ ํ์ผ์ ๋ณ๊ฒฝํ๋ฉด Claude Code๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ ์ ์์ต๋๋ค. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) ์ค์ ์ผ๋ก ๊ธฐ๋ก์ ์ผ๋ฉด ๋ชจ๋ ๊ถํ ๋ชจ๋์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋กํ๋ฉฐ, ํด๋น ์ค์ ํญ๋ชฉ์ ์ด๋ฅผ ์ค์ ํ ์ ์๋ ํ์ผ์ด ์๋ด๋์ด ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ ๋ชจ๋์ `bypassPermissions` ๋ชจ๋์์๋ง, ๊ทธ๋ฆฌ๊ณ Claude Code๊ฐ Claude์๊ฒ Bash๋ฅผ ํตํด ํ์ผ์ ํธ์งํ๋๋ก ์ง์ํ ๊ฒฝ์ฐ์๋ง ๊ธฐ๋กํฉ๋๋ค. ๊ธฐ๋ก์ ๋๋ ค๋ฉด `bashEditDiffEnabled`๋ฅผ `false`๋ก ์ค์ ํ์ญ์์ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ช
๋ น๊ณผ ์ฝ๊ธฐ ์ ์ฉ ๋ช
๋ น์๋ diff๊ฐ ํฌํจ๋์ง ์์ต๋๋ค.
1858 1884
1859๊ทธ๋ฌ๋ฉด [PostToolUse ํ
](#posttooluse)์ด `tool_response.bashEditDiff`์์ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ฐ์ต๋๋ค. ์ด ๋ชฉ๋ก์ ๋ช
๋ น์ด ์คํ๋๋ ๋์ ์ ์ฅ์์์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค. Git์ด ๋ฌด์ํ๋ ํ์ผ๊ณผ ์๋ธ๋ชจ๋์ ํ์ผ์ ๋์ด๋์ง ์์ต๋๋ค. Claude Code v2.1.269 ์ด์์ด ํ์ํฉ๋๋ค.1885๊ทธ๋ฌ๋ฉด [PostToolUse ํ
](#posttooluse)์ `tool_response.bashEditDiff`์์ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ฐ์ต๋๋ค. ์ด ๋ชฉ๋ก์ ๋ช
๋ น์ด ์คํ๋๋ ๋์ ์ ์ฅ์ ์๋์์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค. Git์ด ๋ฌด์ํ๋ ํ์ผ๊ณผ ์๋ธ๋ชจ๋์ ํ์ผ์ ๋์ด๋์ง ์์ต๋๋ค. Claude Code v2.1.269 ์ด์์ด ํ์ํฉ๋๋ค.
1860 1886
1861<Note>1887<Note>
1862 ์ด ๋ชฉ๋ก์ ์ต์ ์ ๋
ธ๋ ฅ(best effort) ๋ฐฉ์์ผ๋ก ์ ๊ณต๋๋ฉฐ ๊ณต๊ฐ ๋ฒ ํ ์ํ์
๋๋ค. Claude Code๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋์น๊ฑฐ๋, ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ณ๊ฒฝํ ํ์ผ์ ํฌํจํ๊ฑฐ๋, ํฌ๊ธฐ ์ ํ์์ ์ค๋จ๋ ์ ์์ต๋๋ค. ํ๋ ํ์์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ด ๋ชฉ๋ก์ ์ ์ฑ
์ ๊ฐ์ ํ๋ ์ฉ๋๊ฐ ์๋๋ผ ๊ฒํ ํ ํญ๋ชฉ์ ์ฐพ๋ ์ฉ๋๋ก ์ฌ์ฉํ์ธ์.1888 ์ด ๋ชฉ๋ก์ ์ต์ ์ ๋
ธ๋ ฅ์ผ๋ก ์ ๊ณต๋๋ฉฐ ๊ณต๊ฐ ๋ฒ ํ ์ํ์
๋๋ค. Claude Code๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋์น๊ฑฐ๋, ๋์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋ณ๊ฒฝํ ํ์ผ์ ํฌํจํ๊ฑฐ๋, ํฌ๊ธฐ ์ ํ์์ ์ค๋จ๋ ์ ์์ต๋๋ค. ํ๋ ํํ๋ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ด ๋ชฉ๋ก์ ์ ์ฑ
์ ๊ฐ์ ํ๋ ์ฉ๋๊ฐ ์๋๋ผ ๊ฒํ ํ ๋์์ ์ฐพ๋ ์ฉ๋๋ก ์ฌ์ฉํ์ญ์์ค.
1863</Note>1889</Note>
1864 1890
1865`changedFiles`์ `files`๋ ๋ช
๋ น์ด ๋ณ๊ฒฝํ ๋ด์ฉ์ ๋์ดํ๊ณ , ๋๋จธ์ง ํ๋๋ ๊ทธ ๋ชฉ๋ก์ด ์ผ๋ง๋ ์์ ํ๊ณ ์ ๋ขฐํ ์ ์๋์ง ์๋ ค ์ค๋๋ค.1891`changedFiles`์ `files`๋ ๋ช
๋ น์ด ๋ณ๊ฒฝํ ๋ด์ฉ์ ๋์ดํ๋ฉฐ, ๋๋จธ์ง ํ๋๋ ํด๋น ๋ชฉ๋ก์ด ์ผ๋ง๋ ์์ ํ๊ณ ์ ๋ขฐํ ์ ์๋์ง๋ฅผ ๋ํ๋
๋๋ค.
1866 1892
1867| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|1893| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
1868| :- | :- | :- | :- |1894| :- | :- | :- | :- |
1869| `changedFiles` | array | `["/path/to/src/app.ts"]` | ๋ช
๋ น์ด ๋ณ๊ฒฝํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก(์ต๋ 200๊ฐ). `files`์ diff๊ฐ ์๊ฑฐ๋ `moreFiles`๊ฐ 0๋ณด๋ค ํด ๋ ํญ์ ์กด์ฌํฉ๋๋ค |1895| `changedFiles` | array | `["/path/to/src/app.ts"]` | ๋ช
๋ น์ด ๋ณ๊ฒฝํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก๋ก, ์ต๋ 200๊ฐ์
๋๋ค. `files`์ diff๊ฐ ์๊ฑฐ๋ `moreFiles`๊ฐ 0๋ณด๋ค ํด ๋๋ง๋ค ์กด์ฌํฉ๋๋ค |
1870| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | ํ์์ฉ์ผ๋ก ์ ๊ณต๋๋ ์ต๋ 5๊ฐ ๋ณ๊ฒฝ ํ์ผ์ diff. ๋ช
๋ น์ด ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ํ์ผ์ `created` ๋๋ `deleted`๊ฐ `true`์
๋๋ค |1896| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | ํ์์ฉ์ผ๋ก ๋ณ๊ฒฝ๋ ํ์ผ ์ต๋ 5๊ฐ์ diff์
๋๋ค. ๋ช
๋ น์ด ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ํ์ผ์ ๊ฒฝ์ฐ `created` ๋๋ `deleted`๊ฐ `true`์
๋๋ค |
1871| `moreFiles` | number | `2` | `files`์ diff๊ฐ ์๋ ๋ณ๊ฒฝ๋ ํ์ผ ์ |1897| `moreFiles` | number | `2` | `files`์ diff๊ฐ ์๋ ๋ณ๊ฒฝ๋ ํ์ผ ์ |
1872| `unavailable` | boolean | `true` | diff๊ฐ ๋ถ์์ ํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์์ ๋ ์ค์ ๋ฉ๋๋ค |1898| `unavailable` | boolean | `true` | diff๊ฐ ๋ถ์์ ํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์์ ๋ ์ค์ ๋ฉ๋๋ค |
1873| `skipped` | boolean | `true` | `git checkout`์ด๋ `git stash`์ฒ๋ผ ์ํน ํธ๋ฆฌ๋ฅผ ์ด๋ํ๋ Git ๋ช
๋ น์ ์ค์ ๋๋ฉฐ, ์ด ๊ฒฝ์ฐ Claude Code๋ diff๋ฅผ ๊ฐ์ ธ์ค์ง ์์ต๋๋ค |1899| `skipped` | boolean | `true` | `git checkout`์ด๋ `git stash`์ฒ๋ผ ์์
ํธ๋ฆฌ๋ฅผ ์ด๋์ํค๋ Git ๋ช
๋ น์ ๋ํด ์ค์ ๋๋ฉฐ, ์ด ๊ฒฝ์ฐ Claude Code๋ diff๋ฅผ ๊ฐ์ ธ์ค์ง ์์ต๋๋ค |
1874| `shared` | boolean | `true` | ์๋ธ์์ด์ ํธ์ ํธ์ถ ๊ฐ์ ๋ค๋ฅธ Bash ๋๊ตฌ ํธ์ถ์ด ๊ฐ์ ์ ์ฅ์์์ ๋์์ ์คํ๋์์ ๋ ์ค์ ๋๋ฉฐ, ์ด ๊ฒฝ์ฐ ๋์ด๋ ์ผ๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ํด๋น ๋ช
๋ น์ ์ํ ๊ฒ์ผ ์ ์์ต๋๋ค |1900| `shared` | boolean | `true` | ์๋ธ์์ด์ ํธ์ ํธ์ถ ๊ฐ์ ๋ค๋ฅธ Bash ๋๊ตฌ ํธ์ถ์ด ๊ฐ์ ์ ์ฅ์์์ ๋์์ ์คํ๋์ด, ๋์ด๋ ๋ณ๊ฒฝ ์ฌํญ ์ผ๋ถ๊ฐ ํด๋น ๋ช
๋ น์ ๊ฒ์ผ ์ ์์ ๋ ์ค์ ๋ฉ๋๋ค |
1875 1901
1876<a id="powershell" />1902<a id="powershell" />
1877 1903
1879 PowerShell1905 PowerShell
1880</h5>1906</h5>
1881 1907
1882PowerShell ๋ช
๋ น์ ์คํํฉ๋๋ค. ํ๋ซํผ๋ณ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋ [PowerShell ๋๊ตฌ](/docs/ko/tools-reference#powershell-tool)๋ฅผ ์ฐธ์กฐํ์ธ์.1908PowerShell ๋ช
๋ น์ ์คํํฉ๋๋ค. ํ๋ซํผ๋ณ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋ [PowerShell ๋๊ตฌ](/docs/ko/tools-reference#powershell-tool)๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
1883 1909
1884ํ๋๋ Bash ๋๊ตฌ์ ๊ฐ์ผ๋ฉฐ, ๋ช
๋ น ๋ฌธ์์ด์ `command`์ ์์ต๋๋ค:1910ํ๋๋ Bash ๋๊ตฌ์ ๊ฐ์ผ๋ฉฐ, ๋ช
๋ น ๋ฌธ์์ด์ `command`์ ์์ต๋๋ค.
1885 1911
1886| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|1912| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
1887| :- | :- | :- | :- |1913| :- | :- | :- | :- |
1890| `timeout` | number | `120000` | ๋ฐ๋ฆฌ์ด ๋จ์์ ์ ํ์ ํ์์์ |1916| `timeout` | number | `120000` | ๋ฐ๋ฆฌ์ด ๋จ์์ ์ ํ์ ํ์์์ |
1891| `run_in_background` | boolean | `false` | ๋ช
๋ น์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ง ์ฌ๋ถ |1917| `run_in_background` | boolean | `false` | ๋ช
๋ น์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ง ์ฌ๋ถ |
1892 1918
1893์
ธ ๋ช
๋ น์ ๊ฒ์ฌํ๋ ํ
์์๋ ๋ ๋๊ตฌ๋ฅผ ๋ชจ๋ ๋ค๋ฃจ๋๋ก `Bash|PowerShell`์ ๋งค์นญํ์ธ์:1919์
ธ ๋ช
๋ น์ ๊ฒ์ฌํ๋ ํ
์์๋ ๋ ๋๊ตฌ๋ฅผ ๋ชจ๋ ๋ค๋ฃจ๋๋ก `Bash|PowerShell`์ ์ผ์น์ํค์ญ์์ค.
1894 1920
1895* Windows์์ PowerShell ๋๊ตฌ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ Claude๋ PowerShell์ ๊ธฐ๋ณธ ์
ธ๋ก ์ทจ๊ธํ๊ณ ์
ธ ๋ช
๋ น์ PowerShell๋ก ๋ผ์ฐํ
ํฉ๋๋ค.1921* Windows์์ PowerShell ๋๊ตฌ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ, Claude๋ PowerShell์ ๊ธฐ๋ณธ ์
ธ๋ก ์ทจ๊ธํ๊ณ ์
ธ ๋ช
๋ น์ PowerShell๋ก ๋ผ์ฐํ
ํฉ๋๋ค.
1896* Git Bash๊ฐ ์๋ Windows์์๋ ์ด ๋๊ตฌ๊ฐ ์๋์ผ๋ก ํ์ฑํ๋๋ฉฐ Claude Code๋ Bash ๋๊ตฌ๋ฅผ ์ ํ ๋ฑ๋กํ์ง ์์ต๋๋ค.1922* Git Bash๊ฐ ์๋ Windows์์๋ ์ด ๋๊ตฌ๊ฐ ์๋์ผ๋ก ํ์ฑํ๋๋ฉฐ Claude Code๋ Bash ๋๊ตฌ๋ฅผ ์์ ๋ฑ๋กํ์ง ์์ต๋๋ค.
1897* `Bash`๋ง ๋งค์นญํ๋ ํ
์ ๊ทธ๋ฌํ ํ๊ฒฝ์์ ์ ๋ ๋ฐ์ํ์ง ์์ต๋๋ค.1923* `Bash`๋ง ์ผ์น์ํค๋ ํ
์ ๊ทธ ํ๊ฒฝ์์ ์ ๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
1898 1924
1899<h5 id="write">1925<h5 id="write">
1900 Write1926 Write
1911 Edit1937 Edit
1912</h5>1938</h5>
1913 1939
1914๊ธฐ์กด ํ์ผ์ ๋ฌธ์์ด์ ๋ฐ๊ฟ๋๋ค.1940๊ธฐ์กด ํ์ผ์ ๋ฌธ์์ด์ ๋์ฒดํฉ๋๋ค.
1915 1941
1916| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|1942| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
1917| :- | :- | :- | :- |1943| :- | :- | :- | :- |
1918| `file_path` | string | `"/path/to/file.txt"` | ํธ์งํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก |1944| `file_path` | string | `"/path/to/file.txt"` | ํธ์งํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก |
1919| `old_string` | string | `"original text"` | ์ฐพ์์ ๋ฐ๊ฟ ํ
์คํธ |1945| `old_string` | string | `"original text"` | ์ฐพ์์ ๋์ฒดํ ํ
์คํธ |
1920| `new_string` | string | `"replacement text"` | ๋์ฒด ํ
์คํธ |1946| `new_string` | string | `"replacement text"` | ๋์ฒด ํ
์คํธ |
1921| `replace_all` | boolean | `false` | ๋ชจ๋ ํญ๋ชฉ์ ๋ฐ๊ฟ์ง ์ฌ๋ถ |1947| `replace_all` | boolean | `false` | ๋ชจ๋ ํญ๋ชฉ์ ๋์ฒดํ ์ง ์ฌ๋ถ |
1922 1948
1923<h5 id="read">1949<h5 id="read">
1924 Read1950 Read
1929| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|1955| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
1930| :- | :- | :- | :- |1956| :- | :- | :- | :- |
1931| `file_path` | string | `"/path/to/file.txt"` | ์ฝ์ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก |1957| `file_path` | string | `"/path/to/file.txt"` | ์ฝ์ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก |
1932| `offset` | number | `10` | ์ฝ๊ธฐ๋ฅผ ์์ํ ์ ํ์ ์ค ๋ฒํธ |1958| `offset` | number | `10` | ์ฝ๊ธฐ ์์ํ ์ ํ์ ์ค ๋ฒํธ |
1933| `limit` | number | `50` | ์ฝ์ ์ค ์(์ ํ ์ฌํญ) |1959| `limit` | number | `50` | ์ฝ์ ์ ํ์ ์ค ์ |
1934 1960
1935<h5 id="glob">1961<h5 id="glob">
1936 Glob1962 Glob
1940 1966
1941| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|1967| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
1942| :- | :- | :- | :- |1968| :- | :- | :- | :- |
1943| `pattern` | string | `"**/*.ts"` | ํ์ผ๊ณผ ๋งค์นญํ glob ํจํด |1969| `pattern` | string | `"**/*.ts"` | ํ์ผ์ ์ผ์น์ํฌ glob ํจํด |
1944| `path` | string | `"/path/to/dir"` | ๊ฒ์ํ ์ ํ์ ๋๋ ํฐ๋ฆฌ. ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ ์์
๋๋ ํฐ๋ฆฌ์
๋๋ค |1970| `path` | string | `"/path/to/dir"` | ๊ฒ์ํ ์ ํ์ ๋๋ ํฐ๋ฆฌ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ ์์
๋๋ ํฐ๋ฆฌ์
๋๋ค |
1945 1971
1946<h5 id="grep">1972<h5 id="grep">
1947 Grep1973 Grep
1956| `glob` | string | `"*.ts"` | ํ์ผ์ ํํฐ๋งํ ์ ํ์ glob ํจํด |1982| `glob` | string | `"*.ts"` | ํ์ผ์ ํํฐ๋งํ ์ ํ์ glob ํจํด |
1957| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ๋๋ `"count"`. ๊ธฐ๋ณธ๊ฐ์ `"files_with_matches"`์
๋๋ค |1983| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ๋๋ `"count"`. ๊ธฐ๋ณธ๊ฐ์ `"files_with_matches"`์
๋๋ค |
1958| `-i` | boolean | `true` | ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ๊ฒ์ |1984| `-i` | boolean | `true` | ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ๊ฒ์ |
1959| `multiline` | boolean | `false` | ์ฌ๋ฌ ์ค ๋งค์นญ ํ์ฑํ |1985| `multiline` | boolean | `false` | ์ฌ๋ฌ ์ค ์ผ์น ํ์ฑํ |
1960 1986
1961<h5 id="webfetch">1987<h5 id="webfetch">
1962 WebFetch1988 WebFetch
1967| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|1993| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
1968| :- | :- | :- | :- |1994| :- | :- | :- | :- |
1969| `url` | string | `"https://example.com/api"` | ์ฝํ
์ธ ๋ฅผ ๊ฐ์ ธ์ฌ URL |1995| `url` | string | `"https://example.com/api"` | ์ฝํ
์ธ ๋ฅผ ๊ฐ์ ธ์ฌ URL |
1970| `prompt` | string | `"Extract the API endpoints"` | ๊ฐ์ ธ์จ ์ฝํ
์ธ ์ ๋ํด ์คํํ ํ๋กฌํํธ |1996| `prompt` | string | `"Extract the API endpoints"` | ๊ฐ์ ธ์จ ์ฝํ
์ธ ์ ์คํํ ํ๋กฌํํธ |
1971| `offset` | number | `100000` | ํ์ด์ง ์์ ๋ถ๋ถ๋ถํฐ ๊ฑด๋๋ธ ์ ํ์ ๋ฌธ์ ์์
๋๋ค. Claude๋ ๊ธด ํ์ด์ง๋ฅผ ๊ณ์ ์ฝ๊ธฐ ์ํด ์ด ๊ฐ์ ์ค์ ํฉ๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |1997| `offset` | number | `100000` | ํ์ด์ง ์์ ๋ถ๋ถ์์ ๊ฑด๋๋ธ ์ ํ์ ๋ฌธ์ ์์
๋๋ค. Claude๋ ๊ธด ํ์ด์ง๋ฅผ ๊ณ์ ์ฝ๊ธฐ ์ํด ์ด ๊ฐ์ ์ค์ ํฉ๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |
1972 1998
1973<h5 id="websearch">1999<h5 id="websearch">
1974 WebSearch2000 WebSearch
1995| `subagent_type` | string | `"Explore"` | ์ฌ์ฉํ ์ ๋ฌธ ์์ด์ ํธ ์ ํ |2021| `subagent_type` | string | `"Explore"` | ์ฌ์ฉํ ์ ๋ฌธ ์์ด์ ํธ ์ ํ |
1996| `model` | string | `"sonnet"` | ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ ์ ํ์ ๋ชจ๋ธ ๋ณ์นญ |2022| `model` | string | `"sonnet"` | ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ ์ ํ์ ๋ชจ๋ธ ๋ณ์นญ |
1997 2023
1998ํฌ๊ทธ๋ผ์ด๋ Agent ํธ์ถ์ด ์๋ฃ๋๋ฉด [PostToolUse ํ
](#posttooluse)์ `tool_response`์์ ์๋ธ์์ด์ ํธ์ ๊ฒฐ๊ณผ์ ์คํ ํ
๋ ๋ฉํธ๋ฆฌ๋ฅผ ๋ฐ์ต๋๋ค. ์คํ์ ๊ฒ์ฌํ๋ ค๋ฉด ์ด ํ๋๋ฅผ ์ฝ์ผ์ธ์. `totalTokens`์ `usage`๋ ์ต์ข
์์ฒญ๋ง ๋ค๋ฃจ๋ฏ๋ก, ์๋ธ์์ด์ ํธ ์ ์ฒด์ ํ ํฐ ๋ฐ ๋น์ฉ ์ง๊ณ์๋ `query_source` `"subagent"`๋ก ํํฐ๋งํ [ํ ํฐ ๋ฐ ๋น์ฉ ์นด์ดํฐ](/docs/ko/monitoring-usage#token-counter)๋ฅผ ์ฌ์ฉํ์ธ์:2024ํฌ๊ทธ๋ผ์ด๋ Agent ํธ์ถ์ด ์๋ฃ๋๋ฉด [PostToolUse ํ
](#posttooluse)์ `tool_response`์์ ์๋ธ์์ด์ ํธ์ ๊ฒฐ๊ณผ์ ์คํ ํ
๋ ๋ฉํธ๋ฆฌ๋ฅผ ๋ฐ์ต๋๋ค. ์คํ์ ๊ฒ์ฌํ๋ ค๋ฉด ์ด ํ๋๋ฅผ ์ฝ์ผ์ญ์์ค. ์๋ธ์์ด์ ํธ ์ ์ฒด์ ํ ํฐ ๋ฐ ๋น์ฉ ์ง๊ณ์๋ `query_source` `"subagent"`๋ก ํํฐ๋งํ [ํ ํฐ ๋ฐ ๋น์ฉ ์นด์ดํฐ](/docs/ko/monitoring-usage#token-counter)๋ฅผ ์ฌ์ฉํ์ญ์์ค. `totalTokens`์ `usage`๋ ๋ง์ง๋ง ์์ฒญ๋ง ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์
๋๋ค.
1999 2025
2000| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|2026| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
2001| :- | :- | :- | :- |2027| :- | :- | :- | :- |
2002| `status` | string | `"completed"` | ํฌ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ๋ `"completed"`, ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ๋ `"async_launched"`. ์๋ธ์์ด์ ํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ฏ๋ก `run_in_background`๋ฅผ ์๋ตํ Agent ํธ์ถ๋ `"async_launched"`๋ฅผ ์์ฑํฉ๋๋ค |2028| `status` | string | `"completed"` | ํฌ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ๋ `"completed"`, ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ๋ `"async_launched"`์
๋๋ค. ์๋ธ์์ด์ ํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ฏ๋ก, `run_in_background`๋ฅผ ์๋ตํ Agent ํธ์ถ๋ `"async_launched"`๋ฅผ ์์ฑํฉ๋๋ค |
2003| `agentId` | string | `"a4d2c8f1e0b3a297"` | ์๋ธ์์ด์ ํธ ์คํ์ ์๋ณ์ |2029| `agentId` | string | `"a4d2c8f1e0b3a297"` | ์๋ธ์์ด์ ํธ ์คํ์ ์๋ณ์ |
2004| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | ์๋ธ์์ด์ ํธ์ ์ต์ข
ํ
์คํธ ๋ธ๋ก. ๋ณด๊ณ ์๊ฐ `SubagentHandback`์ ๊ฑฐ์น๋ ์๋ธ์์ด์ ํธ์ ๊ฒฝ์ฐ ๊ทธ ๋์ ํด๋น ํธ๋๋ฐฑ์ ๋ํ ์งง์ ๋ฉ๋ชจ |2030| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | ์๋ธ์์ด์ ํธ์ ์ต์ข
ํ
์คํธ ๋ธ๋ก์
๋๋ค. ๋ณด๊ณ ์๊ฐ `SubagentHandback`์ ํตํด ์ ๋ฌ๋๋ ์๋ธ์์ด์ ํธ์ ๊ฒฝ์ฐ์๋ ๊ทธ ๋์ ํด๋น ์ธ๊ณ์ ๋ํ ์งง์ ๋ฉ๋ชจ๊ฐ ๋ด๊น๋๋ค |
2005| `resolvedModel` | string | `"claude-sonnet-4-5"` | ์๋ธ์์ด์ ํธ๊ฐ ์์๋ ๋ชจ๋ธ๋ก, ์์ฒญ๋ ๋ชจ๋ธ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค |2031| `resolvedModel` | string | `"claude-sonnet-4-5"` | ์๋ธ์์ด์ ํธ๊ฐ ์์ํ ๋ชจ๋ธ๋ก, ์์ฒญ๋ ๋ชจ๋ธ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค |
2006| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | ์ฌ์ฉ๋ ๋ชจ๋ธ์ ์์๋๋ก ๋์ดํ ๋ชฉ๋ก(์ฐ์ ๋ฐ๋ณต์ ํ๋๋ก ํฉ์ณ์ง). ์คํ ์ค์ ๋ชจ๋ธ์ด ๊ต์ฒด๋ ๊ฒฝ์ฐ์๋ง ์ค์ ๋ฉ๋๋ค. Claude Code v2.1.212 ์ด์์ด ํ์ํฉ๋๋ค |2032| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | ์ฌ์ฉ๋ ๋ชจ๋ธ์ ์์๋๋ก ๋์ดํ๋ฉฐ, ์ฐ์ ๋ฐ๋ณต์ ํ๋๋ก ํฉ์ณ์ง๋๋ค. ์คํ ์ค ๋ชจ๋ธ์ด ๊ต์ฒด๋ ๊ฒฝ์ฐ์๋ง ์ค์ ๋ฉ๋๋ค. Claude Code v2.1.212 ์ด์์ด ํ์ํฉ๋๋ค |
2007| `totalTokens` | number | `12450` | ์๋ธ์์ด์ ํธ์ ์ต์ข
API ์์ฒญ์์์ ํ ํฐ ์๋ก, ์
๋ ฅ, ์ถ๋ ฅ, ์บ์ ํ ํฐ์ ํฉํ ๊ฐ์
๋๋ค. ์ ์ฒด ์คํ์ ๋ํ ํฉ๊ณ๊ฐ ์๋๋๋ค |2033| `totalTokens` | number | `12450` | ์๋ธ์์ด์ ํธ์ ๋ง์ง๋ง API ์์ฒญ์ ํ ํฐ ์๋ก, ์
๋ ฅ, ์ถ๋ ฅ, ์บ์ ํ ํฐ์ ํฉํ ๊ฐ์
๋๋ค. ์ ์ฒด ์คํ์ ๊ฑธ์น ํฉ๊ณ๊ฐ ์๋๋๋ค |
2008| `totalDurationMs` | number | `48211` | ์๋ธ์์ด์ ํธ ์คํ์ ์ค์ ์์ ์๊ฐ |2034| `totalDurationMs` | number | `48211` | ์๋ธ์์ด์ ํธ ์คํ์ ์ค์ ์์ ์๊ฐ |
2009| `totalToolUseCount` | number | `7` | ์๋ธ์์ด์ ํธ๊ฐ ์ํํ ๋๊ตฌ ํธ์ถ ์ |2035| `totalToolUseCount` | number | `7` | ์๋ธ์์ด์ ํธ๊ฐ ์ํํ ๋๊ตฌ ํธ์ถ ์ |
2010| `usage` | object | `{"input_tokens": 8320, ...}` | ์ต์ข
API ์์ฒญ์ ์ ํ๋ณ ํ ํฐ ๋ด์ญ: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |2036| `usage` | object | `{"input_tokens": 8320, ...}` | ๋ง์ง๋ง API ์์ฒญ์ ์ ํ๋ณ ํ ํฐ ๋ด์ญ: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |
2011 2037
2012Claude Code v2.1.271 ์ด์์์๋ Claude Code๊ฐ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)์์ ์ ๊ณตํ๋ [`SubagentHandback`](/docs/ko/tools-reference) ๋๊ตฌ์ ํจ๊ป ์คํ๋๋ ์๋ธ์์ด์ ํธ๊ฐ ๋ณด๊ณ ์๋ฅผ ํ
์คํธ๋ก ๋ฐํํ์ง ์๊ณ ์ด ๋๊ตฌ๋ฅผ ํตํด ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด `completed` ๊ฒฐ๊ณผ์ `content` ํ๋์๋ ๋ณด๊ณ ์ ์์ฒด๊ฐ ์๋๋ผ ํด๋น ํธ๋๋ฐฑ์ ๋ํ ์งง์ ๋ฉ๋ชจ๊ฐ ๋ด๊น๋๋ค. ๋ณด๊ณ ์๋ฅผ ์ฝ์ผ๋ ค๋ฉด `SubagentHandback`์ `PreToolUse` ๋๋ `PostToolUse` ํ
์ ๋งค์นญํ๊ณ `tool_input.message`๋ฅผ ์ฝ์ผ์ธ์.2038Claude Code v2.1.271 ์ด์์์, Claude Code๊ฐ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)์์ ์ ๊ณตํ๋ [`SubagentHandback`](/docs/ko/tools-reference) ๋๊ตฌ์ ํจ๊ป ์คํ๋๋ ์๋ธ์์ด์ ํธ๋ ๋ณด๊ณ ์๋ฅผ ํ
์คํธ๋ก ๋ฐํํ์ง ์๊ณ ํด๋น ๋๊ตฌ๋ฅผ ํตํด ์ ๋ฌํฉ๋๋ค. ์ด๋ `completed` ๊ฒฐ๊ณผ์ `content` ํ๋์๋ ๋ณด๊ณ ์ ์์ฒด๊ฐ ์๋ ํด๋น ์ธ๊ณ์ ๋ํ ์งง์ ๋ฉ๋ชจ๊ฐ ๋ด๊น๋๋ค. ๋ณด๊ณ ์๋ฅผ ์ฝ์ผ๋ ค๋ฉด `SubagentHandback`์ `PreToolUse` ๋๋ `PostToolUse` ํ
์ ์ผ์น์ํค๊ณ `tool_input.message`๋ฅผ ์ฝ์ผ์ญ์์ค.
2013 2039
2014๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ์ ๊ฒฝ์ฐ ์์
์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ด๋ํ ๋ ๋๊ตฌ๊ฐ ๋ฐํ๋๋ฏ๋ก `tool_response`์๋ ์ฌ์ฉ๋ ํ๋๊ฐ ์์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ ์ฆ์ ๋ฐํ๋๋ฉฐ, Claude Code๊ฐ ์คํ ์ค์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋ณด๋ธ ํฌ๊ทธ๋ผ์ด๋ ์์
์ ๊ทธ ์ ํ ์์ ์ ๋ฐํ๋ฉ๋๋ค. ์๋ต์๋ `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, `resolvedModel`์ด ์์ต๋๋ค.2040๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ์ ๊ฒฝ์ฐ, ๋๊ตฌ๋ ์์
์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ด๋ํ ๋ ๋ฐํ๋๋ฏ๋ก `tool_response`์๋ ์ฌ์ฉ๋ ํ๋๊ฐ ์์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ ์ฆ์ ๋ฐํ๋๊ณ , Claude Code๊ฐ ์คํ ๋์ค ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํํ ํฌ๊ทธ๋ผ์ด๋ ์์
์ ๊ทธ ์ ํ ์์ ์ ๋ฐํ๋ฉ๋๋ค. ์๋ต์๋ `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, `resolvedModel`์ด ์์ต๋๋ค.
2015 2041
2016`completed` ์๋ต์์ `resolvedModel`์ ์๋ธ์์ด์ ํธ๊ฐ ์์๋ ๋ชจ๋ธ์ ๋ํ๋ด๋ฉฐ, `availableModels`๋ ๋ค๋ฅธ ์ฌ์ ์๊ฐ ์ ์ฉ๋๋ ๊ฒฝ์ฐ์ฒ๋ผ `tool_input`์ `model` ๊ฐ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค. `async_launched` ์๋ต์์ `resolvedModel`์ ์์ด์ ํธ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ด๋ํ ๋ ์ฌ์ฉ ์ค์ด๋ ๋ชจ๋ธ์ ๋ํ๋ด๋ฏ๋ก, ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ ์ ์ ๋ฐ์ํ ๊ต์ฒด๊ฐ ๋ฐ์๋ฉ๋๋ค. `modelsUsed`์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ ์์ ์ `resolvedModel` ๋์์๋ Claude Code v2.1.212 ์ด์์ด ํ์ํฉ๋๋ค.2042`completed` ์๋ต์์ `resolvedModel`์ ์๋ธ์์ด์ ํธ๊ฐ ์์ํ ๋ชจ๋ธ์ ๋ํ๋ด๋ฉฐ, ์ด๋ `availableModels`๋ ๋ค๋ฅธ ์ฌ์ ์๊ฐ ์ ์ฉ๋๋ ๊ฒฝ์ฐ์ฒ๋ผ `tool_input`์ `model` ๊ฐ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค. `async_launched` ์๋ต์์ `resolvedModel`์ ์์ด์ ํธ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ด๋ํ์ ๋ ์ฌ์ฉ ์ค์ด๋ ๋ชจ๋ธ์ ๋ํ๋ด๋ฏ๋ก, ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ ์ ์ ๋ฐ์ํ ๊ต์ฒด๊ฐ ๋ฐ์๋ฉ๋๋ค. `modelsUsed`์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ ์์ ์ `resolvedModel` ๋์์๋ Claude Code v2.1.212 ์ด์์ด ํ์ํฉ๋๋ค.
2017 2043
2018<a id="askuserquestion" />2044<a id="askuserquestion" />
2019 2045
2025 2051
2026| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|2052| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
2027| :- | :- | :- | :- |2053| :- | :- | :- | :- |
2028| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | ํ์ํ ์ง๋ฌธ. ๊ฐ ์ง๋ฌธ์๋ `question` ๋ฌธ์์ด, ์งง์ `header`, `options` ๋ฐฐ์ด, ์ ํ์ `multiSelect` ํ๋๊ทธ๊ฐ ์์ต๋๋ค |2054| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | ์ ์ํ ์ง๋ฌธ์ผ๋ก, ๊ฐ๊ฐ `question` ๋ฌธ์์ด, ์งง์ `header`, `options` ๋ฐฐ์ด, ์ ํ์ `multiSelect` ํ๋๊ทธ๋ฅผ ๊ฐ์ง๋๋ค |
2029| `answers` | object | `{"Which framework?": "React"}` | ์ ํ ์ฌํญ. ์ง๋ฌธ ํ
์คํธ๋ฅผ ์ ํ๋ ์ต์
๋ ์ด๋ธ์ ๋งคํํฉ๋๋ค. ๋ค์ค ์ ํ ๋ต๋ณ์ ๋ ์ด๋ธ์ ์ผํ๋ก ์ฐ๊ฒฐํฉ๋๋ค. Claude๋ ์ด ํ๋๋ฅผ ์ค์ ํ์ง ์์ผ๋ฏ๋ก, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ต๋ณํ๋ ค๋ฉด `updatedInput`์ ํตํด ์ ๊ณตํ์ธ์ |2055| `answers` | object | `{"Which framework?": "React"}` | ์ ํ ์ฌํญ์
๋๋ค. ์ง๋ฌธ ํ
์คํธ๋ฅผ ์ ํ๋ ์ต์
๋ ์ด๋ธ์ ๋งคํํฉ๋๋ค. ๋ค์ค ์ ํ ๋ต๋ณ์ ๋ ์ด๋ธ์ ์ผํ๋ก ์ฐ๊ฒฐํฉ๋๋ค. Claude๋ ์ด ํ๋๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉฐ, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ต๋ณํ๋ ค๋ฉด `updatedInput`์ ํตํด ์ ๊ณตํ์ญ์์ค |
2030 2056
2031<h5 id="exitplanmode">2057<h5 id="exitplanmode">
2032 ExitPlanMode2058 ExitPlanMode
2033</h5>2059</h5>
2034 2060
2035Claude๊ฐ [ํ๋ ๋ชจ๋](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)๋ฅผ ์ข
๋ฃํ๊ธฐ ์ ์ ํ๋์ ์ ์ํ๊ณ ์ฌ์ฉ์์๊ฒ ์น์ธ์ ์์ฒญํฉ๋๋ค. Claude๋ ๋๊ตฌ๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ํ๋์ ๋์คํฌ์ ํ์ผ์ ์ฐ๋ฏ๋ก, ๋ชจ๋ธ์ด ๋ณด๋ด๋ ์ค์ `tool_input`์ ์ผ๋ฐ์ ์ผ๋ก ๋น์ด ์์ต๋๋ค. Claude Code๋ ์
๋ ฅ์ ํ
์ ์ ๋ฌํ๊ธฐ ์ ์ ํ๋ ๋ด์ฉ๊ณผ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฃผ์
ํฉ๋๋ค.2061Claude๊ฐ [ํ๋ ๋ชจ๋](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)๋ฅผ ์ข
๋ฃํ๊ธฐ ์ ์ ๊ณํ์ ์ ์ํ๊ณ ์ฌ์ฉ์์๊ฒ ์น์ธ์ ์์ฒญํฉ๋๋ค. Claude๋ ๋๊ตฌ๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ๊ณํ์ ๋์คํฌ์ ํ์ผ์ ์ฐ๋ฏ๋ก, ๋ชจ๋ธ์ด ๋ณด๋ธ ์ค์ `tool_input`์ ์ผ๋ฐ์ ์ผ๋ก ๋น์ด ์์ต๋๋ค. Claude Code๋ ์
๋ ฅ์ ํ
์ ์ ๋ฌํ๊ธฐ ์ ์ ๊ณํ ๋ด์ฉ๊ณผ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฝ์
ํฉ๋๋ค.
2036 2062
2037| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|2063| ํ๋ | ์ ํ | ์์ | ์ค๋ช
|
2038| :- | :- | :- | :- |2064| :- | :- | :- | :- |
2039| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown ํ์์ ํ๋ ๋ด์ฉ. ๋์คํฌ์ ํ๋ ํ์ผ์์ ์ฃผ์
๋ฉ๋๋ค |2065| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown ํ์์ ๊ณํ ๋ด์ฉ์
๋๋ค. ๋์คํฌ์ ๊ณํ ํ์ผ์์ ์ฝ์
๋ฉ๋๋ค |
2040| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | ํ๋ ํ์ผ ๊ฒฝ๋ก. ์ฃผ์
๋ฉ๋๋ค |2066| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | ๊ณํ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ์ฝ์
๋ฉ๋๋ค |
2041| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | deprecated. Claude Code๋ ์ด ํ๋๋ฅผ ํ์ฉํ์ง๋ง ๋ฌด์ํฉ๋๋ค. v2.1.205 ์ด์ ์๋ Claude๊ฐ ํ๋์ ๊ตฌํํ๊ธฐ ์ํด ์์ฒญํ ํ๋กฌํํธ ๊ธฐ๋ฐ ๊ถํ์ ๋ด์์ต๋๋ค |2067| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | deprecated์
๋๋ค. Claude Code๋ ์ด ํ๋๋ฅผ ๋ฐ์ง๋ง ๋ฌด์ํฉ๋๋ค. v2.1.205 ์ด์ ์๋ Claude๊ฐ ๊ณํ์ ๊ตฌํํ๊ธฐ ์ํด ์์ฒญํ ํ๋กฌํํธ ๊ธฐ๋ฐ ๊ถํ์ ๋ด์์ต๋๋ค |
2042 2068
2043`PostToolUse`์์ `tool_response`๋ ์น์ธ๋ ํ๋์ ๋ด์ `plan` ๋ฐ `filePath` ํ๋์ ๋ด๋ถ ์ํ ํ๋๊ทธ๊ฐ ์๋ ๊ฐ์ฒด์
๋๋ค. ๋์คํฌ์์ ํ์ผ์ ๋ค์ ์ฝ์ง ๋ง๊ณ ํ๋ ๋ด์ฉ์ `tool_response.plan`์์ ์ฝ์ผ์ธ์.2069`PostToolUse`์์ `tool_response`๋ ์น์ธ๋ ๊ณํ์ ๋ด์ `plan` ๋ฐ `filePath` ํ๋์ ๋ด๋ถ ์ํ ํ๋๊ทธ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด์
๋๋ค. ๋์คํฌ์์ ํ์ผ์ ๋ค์ ์ฝ๋ ๋์ `tool_response.plan`์์ ๊ณํ ๋ด์ฉ์ ์ฝ์ผ์ญ์์ค.
2044 2070
2045<h4 id="pretooluse-decision-control">2071<h4 id="pretooluse-decision-control">
2046 PreToolUse ๊ฒฐ์ ์ ์ด2072 PreToolUse ๊ฒฐ์ ์ ์ด
2047</h4>2073</h4>
2048 2074
2049`PreToolUse` ํ
์ ๋๊ตฌ ํธ์ถ์ ์งํ ์ฌ๋ถ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ต์์ `decision` ํ๋๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ
๊ณผ ๋ฌ๋ฆฌ PreToolUse๋ `hookSpecificOutput` ๊ฐ์ฒด ์์ ๊ฒฐ์ ์ ๋ฐํํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ค ๊ฐ์ง ๊ฒฐ๊ณผ(allow, deny, ask, defer)์ ์คํ ์ ๋๊ตฌ ์
๋ ฅ์ ์์ ํ๋ ๊ธฐ๋ฅ์ด๋ผ๋ ๋ ํ๋ถํ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค.2075`PreToolUse` ํ
์ ๋๊ตฌ ํธ์ถ์ ์งํ ์ฌ๋ถ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ต์์ `decision` ํ๋๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ
๊ณผ ๋ฌ๋ฆฌ, PreToolUse๋ `hookSpecificOutput` ๊ฐ์ฒด ์์์ ๊ฒฐ์ ์ ๋ฐํํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ํ๋ถํ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ค ๊ฐ์ง ๊ฒฐ๊ณผ(ํ์ฉ, ๊ฑฐ๋ถ, ํ์ธ ์์ฒญ, ์ง์ฐ)์ ํจ๊ป ์คํ ์ ์ ๋๊ตฌ ์
๋ ฅ์ ์์ ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
2050 2076
2051| ํ๋ | ์ค๋ช
|2077| ํ๋ | ์ค๋ช
|
2052| :- | :- |2078| :- | :- |
2053| `permissionDecision` | `"allow"`๋ ๊ถํ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋๋๋ค. ๋จ, [์ด๋ค ๋ชจ๋๋ ์๋ ์น์ธํ์ง ์๋ ์์
](/docs/ko/permission-modes#actions-no-mode-auto-approves), [๋คํธ์ํฌ ๊ฒฝ๋ก์์์ ์ฝ๊ธฐ](/docs/ko/permissions#network-paths), ๊ทธ๋ฆฌ๊ณ [`updatedInput`๊ณผ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋](#allow-with-updatedinput) `AskUserQuestion` ๋ฐ `ExitPlanMode`๋ ์์ธ์
๋๋ค. `"deny"`๋ ๋๊ตฌ ํธ์ถ์ ๋ง์ต๋๋ค. `"ask"`๋ ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํฉ๋๋ค. `"defer"`๋ ๋์ค์ ๋๊ตฌ๋ฅผ ์ฌ๊ฐํ ์ ์๋๋ก ์ ์์ ์ผ๋ก ์ข
๋ฃํฉ๋๋ค. ํ
์ด ๋ฌด์์ ๋ฐํํ๋ [๊ฑฐ๋ถ ๋ฐ ํ์ธ ๊ท์น](/docs/ko/permissions#manage-permissions)์ ์ฌ์ ํ ํ๊ฐ๋ฉ๋๋ค |2079| `permissionDecision` | `"allow"`๋ ๊ถํ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋๋๋ค. ๋จ, [์ด๋ค ๋ชจ๋์์๋ ์๋ ์น์ธ๋์ง ์๋ ์์
](/docs/ko/permission-modes#actions-no-mode-auto-approves), [๋คํธ์ํฌ ๊ฒฝ๋ก์์์ ์ฝ๊ธฐ](/docs/ko/permissions#network-paths), ๊ทธ๋ฆฌ๊ณ [`updatedInput`๊ณผ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋](#allow-with-updatedinput) `AskUserQuestion` ๋ฐ `ExitPlanMode`๋ ์์ธ์
๋๋ค. `"deny"`๋ ๋๊ตฌ ํธ์ถ์ ๋ง์ต๋๋ค. `"ask"`๋ ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํฉ๋๋ค. `"defer"`๋ ๋๊ตฌ๋ฅผ ๋์ค์ ์ฌ๊ฐํ ์ ์๋๋ก ์ ์์ ์ผ๋ก ์ข
๋ฃํฉ๋๋ค. ํ
์ด ๋ฌด์์ ๋ฐํํ๋ [๊ฑฐ๋ถ ๋ฐ ํ์ธ ๊ท์น](/docs/ko/permissions#manage-permissions)์ ์ฌ์ ํ ํ๊ฐ๋ฉ๋๋ค |
2054| `permissionDecisionReason` | `"ask"`์ ๊ฒฝ์ฐ ๊ถํ ํ๋กฌํํธ์์ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. ์๋ฌด๋ ๊ทธ ํ๋กฌํํธ์ ์๋ตํ ์ ์๋ `-p` ์คํ์์ Claude Code๊ฐ [ํธ์ถ์ ๊ฑฐ๋ถ](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)ํ๋ฉด, Claude๋ ๋์ ๋๊ตฌ ๊ฒฐ๊ณผ์์ ์ด์ ๋ฅผ ์ฝ์ต๋๋ค. `"deny"`์ ๊ฒฝ์ฐ Claude์๊ฒ ํ์๋ฉ๋๋ค. `"allow"` ๋ฐ `"defer"`์ ๊ฒฝ์ฐ [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)์๋ง ๊ธฐ๋ก๋ฉ๋๋ค |2080| `permissionDecisionReason` | `"ask"`์ ๊ฒฝ์ฐ ๊ถํ ํ๋กฌํํธ์์ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. ์๋ฌด๋ ํด๋น ํ๋กฌํํธ์ ๋ตํ ์ ์๋ `-p` ์คํ์์ Claude Code๊ฐ [ํธ์ถ์ ๊ฑฐ๋ถ](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)ํ๋ฉด, Claude๊ฐ ๋์ ๋๊ตฌ ๊ฒฐ๊ณผ์์ ์ด์ ๋ฅผ ์ฝ์ต๋๋ค. `"deny"`์ ๊ฒฝ์ฐ Claude์๊ฒ ํ์๋ฉ๋๋ค. `"allow"` ๋ฐ `"defer"`์ ๊ฒฝ์ฐ [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)์๋ง ๊ธฐ๋ก๋ฉ๋๋ค |
2055| `updatedInput` | ์คํ ์ ์ ๋๊ตฌ์ ์
๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํฉ๋๋ค. ์ ์ฒด ์
๋ ฅ ๊ฐ์ฒด๋ฅผ ๋์ฒดํ๋ฏ๋ก ์์ ๋ ํ๋์ ํจ๊ป ๋ณ๊ฒฝ๋์ง ์์ ํ๋๋ ํฌํจํ์ธ์. Claude Code๋ ๊ถํ ๊ท์น๊ณผ Bash ๋ช
๋ น์ [์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ๊ฒฉ์ฑ](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)์ Claude๊ฐ ๋ณด๋ธ ์
๋ ฅ์ด ์๋๋ผ ํ
์ด ๋ฐํํ ์
๋ ฅ์ ๊ธฐ์ค์ผ๋ก ํ๊ฐํฉ๋๋ค. ์๋ ์น์ธํ๋ ค๋ฉด `"allow"`์, ์์ ๋ ์
๋ ฅ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ ์ฃผ๋ ค๋ฉด `"ask"`์ ํจ๊ป ์ฌ์ฉํ์ธ์. `"defer"`์ ๊ฒฝ์ฐ ๋ฌด์๋ฉ๋๋ค |2081| `updatedInput` | ์คํ ์ ์ ๋๊ตฌ์ ์
๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํฉ๋๋ค. ์ ์ฒด ์
๋ ฅ ๊ฐ์ฒด๋ฅผ ๋์ฒดํ๋ฏ๋ก ์์ ๋ ํ๋์ ํจ๊ป ๋ณ๊ฒฝ๋์ง ์์ ํ๋๋ ํฌํจํ์ญ์์ค. Claude Code๋ ๊ถํ ๊ท์น๊ณผ Bash ๋ช
๋ น์ [์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ ์ ๊ฒฉ์ฑ](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)์ Claude๊ฐ ๋ณด๋ธ ์
๋ ฅ์ด ์๋ ํ
์ด ๋ฐํํ ์
๋ ฅ์ ๊ธฐ์ค์ผ๋ก ํ๊ฐํฉ๋๋ค. ์๋ ์น์ธํ๋ ค๋ฉด `"allow"`์, ์์ ๋ ์
๋ ฅ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ค๋ฉด `"ask"`์ ํจ๊ป ์ฌ์ฉํ์ญ์์ค. `"defer"`์ ๊ฒฝ์ฐ ๋ฌด์๋ฉ๋๋ค |
2056| `additionalContext` | ๋๊ตฌ ๊ฒฐ๊ณผ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. `permissionDecision`์ด `"defer"`์ด๋ฉด ๋ฌด์๋ฉ๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |2082| `additionalContext` | ๋๊ตฌ ๊ฒฐ๊ณผ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. `permissionDecision`์ด `"defer"`์ผ ๋๋ ๋ฌด์๋ฉ๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
2057 2083
2058์ฌ๋ฌ PreToolUse ํ
์ด ์๋ก ๋ค๋ฅธ ๊ฒฐ์ ์ ๋ฐํํ๋ฉด ์ฐ์ ์์๋ `deny` > `defer` > `ask` > `allow`์
๋๋ค.2084์ฌ๋ฌ PreToolUse ํ
์ด ์๋ก ๋ค๋ฅธ ๊ฒฐ์ ์ ๋ฐํํ๋ฉด ์ฐ์ ์์๋ `deny` > `defer` > `ask` > `allow`์
๋๋ค.
2059 2085
2060์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `"deny"`์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. Claude๋ stderr ๋ฉ์์ง๋ฅผ ๊ฑฐ๋ถ ์ด์ ๋ก ๋ด
๋๋ค.2086์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `"deny"`์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. Claude๋ stderr ๋ฉ์์ง๋ฅผ ๊ฑฐ๋ถ ์ด์ ๋ก ๋ด
๋๋ค.
2061 2087
2062ํ
์ด `"ask"`๋ฅผ ๋ฐํํ๋ฉด ์ฌ์ฉ์์๊ฒ ํ์๋๋ ๊ถํ ํ๋กฌํํธ์ ํ
์ ์ถ์ฒ๋ฅผ ์๋ณํ๋ ๋ ์ด๋ธ์ด ํฌํจ๋ฉ๋๋ค. ์ค์ ํ์ผ์ด๋ ์์ด์ ํธ frontmatter์ ํ
์ `[settings]`, ํ๋ฌ๊ทธ์ธ์ ํ
์ `[plugin:<name>]`, ์คํฌ frontmatter์ ํ
์ `[skill]`๋ก ํ์๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ด๋ค ๊ตฌ์ฑ ์์ค๊ฐ ํ์ธ์ ์์ฒญํ๋์ง ์ดํดํ ์ ์์ต๋๋ค.2088ํ
์ด `"ask"`๋ฅผ ๋ฐํํ๋ฉด, ์ฌ์ฉ์์๊ฒ ํ์๋๋ ๊ถํ ํ๋กฌํํธ์ ํ
์ ์ถ์ฒ๋ฅผ ์๋ณํ๋ ๋ ์ด๋ธ์ด ํฌํจ๋ฉ๋๋ค. ์ค์ ํ์ผ์ด๋ ์์ด์ ํธ frontmatter์ ํ
์ `[settings]`, ํ๋ฌ๊ทธ์ธ์ ํ
์ `[plugin:<name>]`, ์คํฌ frontmatter์ ํ
์ `[skill]`์
๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ด๋ค ๊ตฌ์ฑ ์ถ์ฒ๊ฐ ํ์ธ์ ์์ฒญํ๋์ง ์ดํดํ ์ ์์ต๋๋ค.
2063 2089
2064ํ
์ `"ask"`๋ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)์์๋ ๊ถํ ํ๋กฌํํธ๋ฅผ ๊ฐ์ ํฉ๋๋ค. ๋ถ๋ฅ๊ธฐ๋ ์ฌ์ ํ ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํ ์ ์์ง๋ง ํธ์ถ์ ์กฐ์ฉํ ์น์ธํ ์๋ ์์ต๋๋ค. v2.1.211 ์ด์ ์๋ ๋ถ๋ฅ๊ธฐ๊ฐ [์๋๋ฐ์ค](/docs/ko/sandboxing) ์ธ๋ถ์์ ์คํ๋๋ Bash ๋ช
๋ น์ ํ
์ด ์์ฒญํ ํ๋กฌํํธ๋ฅผ ํ์ํ์ง ์๊ณ ์น์ธํ ์ ์์์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ถ๋ฅ๊ธฐ๋ ํด๋น ๋ช
๋ น์ ์์ฒด ์์ ๊ท์น์ ์ ์ฉํ์ผ๋ฉฐ, ํ
์ `"deny"`๋ ํญ์ ์กด์ค๋์์ต๋๋ค.2090ํ
์ `"ask"`๋ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)์์๋ ๊ถํ ํ๋กฌํํธ๋ฅผ ๊ฐ์ ํฉ๋๋ค. ๋ถ๋ฅ๊ธฐ๋ ์ฌ์ ํ ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํ ์ ์์ง๋ง, ํธ์ถ์ ์กฐ์ฉํ ์น์ธํ ์๋ ์์ต๋๋ค. v2.1.211 ์ด์ ์๋ ๋ถ๋ฅ๊ธฐ๊ฐ [์๋๋ฐ์ค](/docs/ko/sandboxing) ๋ฐ์์ ์คํ๋๋ Bash ๋ช
๋ น์ ํ
์ด ์์ฒญํ ํ๋กฌํํธ๋ฅผ ํ์ํ์ง ์๊ณ ์น์ธํ ์ ์์์ต๋๋ค. ์ด๋๋ ๋ถ๋ฅ๊ธฐ๋ ํด๋น ๋ช
๋ น์ ์์ฒด ์์ ๊ท์น์ ์ ์ฉํ์ผ๋ฉฐ, ํ
์ `"deny"`๋ ํญ์ ์ค์๋์์ต๋๋ค.
2065 2091
2066```json theme={null}2092```json theme={null}
2067{2093{
2078```2104```
2079 2105
2080<Note>2106<Note>
2081 PreToolUse๋ ์ด์ ์ ์ต์์ `decision` ๋ฐ `reason` ํ๋๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ด ์ด๋ฒคํธ์์๋ deprecated๋์์ต๋๋ค. ๋์ `hookSpecificOutput.permissionDecision` ๋ฐ `hookSpecificOutput.permissionDecisionReason`์ ์ฌ์ฉํ์ธ์. deprecated ๊ฐ์ธ `"approve"`์ `"block"`์ ๊ฐ๊ฐ `"allow"`์ `"deny"`์ ๋งคํ๋ฉ๋๋ค. PostToolUse์ Stop ๊ฐ์ ๋ค๋ฅธ ์ด๋ฒคํธ๋ ํ์ฌ ํ์์ผ๋ก ์ต์์ `decision`๊ณผ `reason`์ ๊ณ์ ์ฌ์ฉํฉ๋๋ค.2107 PreToolUse๋ ์ด์ ์ ์ต์์ `decision` ๋ฐ `reason` ํ๋๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ด ์ด๋ฒคํธ์์๋ deprecated๋์์ต๋๋ค. ๋์ `hookSpecificOutput.permissionDecision`๊ณผ `hookSpecificOutput.permissionDecisionReason`์ ์ฌ์ฉํ์ญ์์ค. deprecated๋ ๊ฐ `"approve"`์ `"block"`์ ๊ฐ๊ฐ `"allow"`์ `"deny"`์ ๋งคํ๋ฉ๋๋ค. PostToolUse์ Stop ๊ฐ์ ๋ค๋ฅธ ์ด๋ฒคํธ๋ ํ์ฌ ํ์์ผ๋ก ์ต์์ `decision`๊ณผ `reason`์ ๊ณ์ ์ฌ์ฉํฉ๋๋ค.
2082</Note>2108</Note>
2083 2109
2084<h4 id="allow-with-updatedinput">2110<h4 id="allow-with-updatedinput">
2085 ์ฌ์ฉ์ ์ํธ ์์ฉ์ด ํ์ํ ๋๊ตฌ2111 ์ฌ์ฉ์ ์ํธ์์ฉ์ด ํ์ํ ๋๊ตฌ
2086</h4>2112</h4>
2087 2113
2088`AskUserQuestion`๊ณผ `ExitPlanMode`๋ ์ฌ์ฉ์ ์ํธ ์์ฉ์ด ํ์ํฉ๋๋ค. `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์ Claude Code๋ Agent SDK `canUseTool` ์ฝ๋ฐฑ์ฒ๋ผ ํ๋กฌํํธ๋ฅผ ๋ฐ์ [๊ถํ ํธ์คํธ](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)๊ฐ ์คํ์ ์์ ๋๋ง ์ด ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.2114`AskUserQuestion`๊ณผ `ExitPlanMode`๋ ์ฌ์ฉ์ ์ํธ์์ฉ์ด ํ์ํฉ๋๋ค. `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์ Claude Code๋ Agent SDK `canUseTool` ์ฝ๋ฐฑ์ฒ๋ผ ํ๋กฌํํธ๋ฅผ ๋ฐ์ [๊ถํ ํธ์คํธ](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)๊ฐ ์คํ์ ์์ ๋๋ง ์ด ๋๊ตฌ๋ค์ ์ ๊ณตํฉ๋๋ค.
2089 2115
2090`PreToolUse` ํ
์ ๋ค์์ ์ํํ ๋ ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค:2116`PreToolUse` ํ
์ด ๋ค์์ ์ํํ๋ฉด ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค.
2091 2117
20921. stdin์์ ๋๊ตฌ์ ์
๋ ฅ์ ์ฝ์ต๋๋ค21181. stdin์์ ๋๊ตฌ์ ์
๋ ฅ์ ์ฝ์ต๋๋ค
20932. ์์ฒด UI๋ฅผ ํตํด ๋ต๋ณ์ ์์งํฉ๋๋ค21192. ์์ฒด UI๋ฅผ ํตํด ๋ต๋ณ์ ์์งํฉ๋๋ค
20943. ๋ต๋ณ์ ๋ด์ `updatedInput`๊ณผ ํจ๊ป `permissionDecision: "allow"`๋ฅผ ๋ฐํํ์ฌ ํ๋กฌํํธ ์์ด ๋๊ตฌ๊ฐ ์คํ๋๋๋ก ํฉ๋๋ค21203. ๋ต๋ณ์ ๋ด์ `updatedInput`๊ณผ ํจ๊ป `permissionDecision: "allow"`๋ฅผ ๋ฐํํ์ฌ ๋๊ตฌ๊ฐ ํ๋กฌํํธ ์์ด ์คํ๋๋๋ก ํฉ๋๋ค
2095 2121
2096์ด๋ฌํ ๋๊ตฌ์๋ `"allow"`๋ง ๋ฐํํ๋ ๊ฒ์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.2122์ด ๋๊ตฌ๋ค์๋ `"allow"`๋ง ๋ฐํํ๋ ๊ฒ์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
2097 2123
2098`AskUserQuestion`์ ๊ฒฝ์ฐ ์๋ `questions` ๋ฐฐ์ด์ ๊ทธ๋๋ก ๋ฐํํ๊ณ , ๊ฐ ์ง๋ฌธ์ ํ
์คํธ๋ฅผ ์ ํ๋ ๋ต๋ณ์ ๋งคํํ๋ [`answers`](#askuserquestion) ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ์ธ์. ์ด ์ถ๋ ฅ์ ํ ์ง๋ฌธ์ `React`๋ก ๋ตํฉ๋๋ค:2124`AskUserQuestion`์ ๊ฒฝ์ฐ, ์๋ `questions` ๋ฐฐ์ด์ ๊ทธ๋๋ก ๋ฐํํ๊ณ ๊ฐ ์ง๋ฌธ์ ํ
์คํธ๋ฅผ ์ ํํ ๋ต๋ณ์ ๋งคํํ๋ [`answers`](#askuserquestion) ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ์ญ์์ค. ๋ค์ ์ถ๋ ฅ์ ํ ์ง๋ฌธ์ `React`๋ก ๋ตํฉ๋๋ค.
2099 2125
2100```json theme={null}2126```json theme={null}
2101{2127{
2117}2143}
2118```2144```
2119 2145
2120์๋ฒ๊ฐ [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)์ผ๋ก ํ์ํ MCP ๋๊ตฌ๋ ๋ ์๊ฒฉํฉ๋๋ค. ํ
์ `updatedInput` ์ ๋ฌด์ ๊ด๊ณ์์ด `"allow"`๋ก ์น์ธ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. Claude Code๋ ํ
์ด ๋๊ตฌ์ ํ์ํ ์ํธ ์์ฉ์ ์์งํ๋์ง ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.2146์๋ฒ๊ฐ [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)๋ก ํ์ํ MCP ๋๊ตฌ๋ ๋ ์๊ฒฉํฉ๋๋ค. Claude Code๋ ํ
์ด ๋๊ตฌ์ ํ์ํ ์ํธ์์ฉ์ ์์งํ๋์ง ํ์ธํ ์ ์์ผ๋ฏ๋ก, ํ
์ `updatedInput` ์ ๋ฌด์ ๊ด๊ณ์์ด `"allow"`๋ก ํด๋น ๋๊ตฌ์ ์น์ธ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.
2121 2147
2122<h4 id="defer-a-tool-call-for-later">2148<h4 id="defer-a-tool-call-for-later">
2123 ๋์ค์ ์ํด ๋๊ตฌ ํธ์ถ ์ง์ฐ2149 ๋๊ตฌ ํธ์ถ์ ๋์ค์ผ๋ก ์ง์ฐ
2124</h4>2150</h4>
2125 2151
2126`"defer"`๋ Agent SDK ์ฑ์ด๋ Claude Code ์์ ๊ตฌ์ถ๋ ์ฌ์ฉ์ ์ง์ UI์ฒ๋ผ `claude -p`๋ฅผ ํ์ ํ๋ก์ธ์ค๋ก ์คํํ๊ณ JSON ์ถ๋ ฅ์ ์ฝ๋ ํตํฉ์ ์ํ ๊ฒ์
๋๋ค. ์ด๋ฅผ ํตํด ํธ์ถ ํ๋ก์ธ์ค๋ ๋๊ตฌ ํธ์ถ ์์ ์์ Claude๋ฅผ ์ผ์ ์ค์งํ๊ณ , ์์ฒด ์ธํฐํ์ด์ค๋ฅผ ํตํด ์
๋ ฅ์ ์์งํ ๋ค์, ์ค๋จํ ์ง์ ์์ ์ฌ๊ฐํ ์ ์์ต๋๋ค. Claude Code๋ `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์๋ง ์ด ๊ฐ์ ๋ฐ๋ฆ
๋๋ค. ๋ํํ ์ธ์
์์๋ ๊ฒฝ๊ณ ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ณ ํ
๊ฒฐ๊ณผ๋ฅผ ๋ฌด์ํฉ๋๋ค.2152`"defer"`๋ Agent SDK ์ฑ์ด๋ Claude Code ์์ ๊ตฌ์ถ๋ ์ฌ์ฉ์ ์ง์ UI์ฒ๋ผ `claude -p`๋ฅผ ํ์ ํ๋ก์ธ์ค๋ก ์คํํ๊ณ JSON ์ถ๋ ฅ์ ์ฝ๋ ํตํฉ์ ์ํ ๊ฒ์
๋๋ค. ์ด๋ฅผ ํตํด ํธ์ถ ํ๋ก์ธ์ค๋ ๋๊ตฌ ํธ์ถ์์ Claude๋ฅผ ์ผ์ ์ค์งํ๊ณ , ์์ฒด ์ธํฐํ์ด์ค๋ก ์
๋ ฅ์ ์์งํ ๋ค์, ์ค๋จํ ์ง์ ์์ ์ฌ๊ฐํ ์ ์์ต๋๋ค. Claude Code๋ `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์์๋ง ์ด ๊ฐ์ ์ ์ฉํฉ๋๋ค. ๋ํํ ์ธ์
์์๋ ๊ฒฝ๊ณ ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ณ ํ
๊ฒฐ๊ณผ๋ฅผ ๋ฌด์ํฉ๋๋ค.
2127 2153
2128`AskUserQuestion` ๋๊ตฌ๊ฐ ๋ํ์ ์ธ ๊ฒฝ์ฐ์
๋๋ค. Claude๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฌป๊ณ ์ถ์ง๋ง ์๋ตํ ํฐ๋ฏธ๋์ด ์๋ ์ํฉ์
๋๋ค. `-p` ์คํ์ `--permission-prompt-tool`๋ก ์ ๋ฌํ๋ MCP ๋๊ตฌ ๊ฐ์ [๊ถํ ํธ์คํธ](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)๊ฐ ์์ ๋๋ง `AskUserQuestion`์ ์ ๊ณตํ๋ฏ๋ก, ๊ถํ ํธ์คํธ์ ํจ๊ป ์คํ์ ์์ํ์ธ์. ์๋ณต ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:2154`AskUserQuestion` ๋๊ตฌ๊ฐ ๋ํ์ ์ธ ์ฌ๋ก์
๋๋ค. Claude๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฌป๊ณ ์ถ์ง๋ง ๋ตํ ํฐ๋ฏธ๋์ด ์๋ ๊ฒฝ์ฐ์
๋๋ค. `-p` ์คํ์ `--permission-prompt-tool`๋ก ์ ๋ฌํ๋ MCP ๋๊ตฌ ๊ฐ์ [๊ถํ ํธ์คํธ](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)๊ฐ ์์ ๋๋ง `AskUserQuestion`์ ์ ๊ณตํ๋ฏ๋ก, ๊ถํ ํธ์คํธ์ ํจ๊ป ์คํ์ ์์ํ์ญ์์ค. ์๋ณต ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2129 2155
21301. Claude๊ฐ `AskUserQuestion`์ ํธ์ถํฉ๋๋ค. `PreToolUse` ํ
์ด ๋ฐ์ํฉ๋๋ค.21561. Claude๊ฐ `AskUserQuestion`์ ํธ์ถํฉ๋๋ค. `PreToolUse` ํ
์ด ๋ฐ์ํฉ๋๋ค.
21312. ํ
์ด `permissionDecision: "defer"`๋ฅผ ๋ฐํํฉ๋๋ค. ๋๊ตฌ๋ ์คํ๋์ง ์์ต๋๋ค. ํ๋ก์ธ์ค๋ `stop_reason: "tool_deferred"`์ ํจ๊ป ์ข
๋ฃ๋๋ฉฐ, ๋ณด๋ฅ ์ค์ธ ๋๊ตฌ ํธ์ถ์ ํธ๋์คํฌ๋ฆฝํธ์ ๋ณด์กด๋ฉ๋๋ค.21572. ํ
์ด `permissionDecision: "defer"`๋ฅผ ๋ฐํํฉ๋๋ค. ๋๊ตฌ๋ ์คํ๋์ง ์์ต๋๋ค. ํ๋ก์ธ์ค๋ `stop_reason: "tool_deferred"`์ ํจ๊ป ์ข
๋ฃ๋๋ฉฐ, ๋๊ธฐ ์ค์ธ ๋๊ตฌ ํธ์ถ์ ํธ๋์คํฌ๋ฆฝํธ์ ๋ณด์กด๋ฉ๋๋ค.
21323. ํธ์ถ ํ๋ก์ธ์ค๊ฐ SDK ๊ฒฐ๊ณผ์์ `deferred_tool_use`๋ฅผ ์ฝ๊ณ , ์์ฒด UI์ ์ง๋ฌธ์ ํ์ํ ๋ค์, ๋ต๋ณ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.21583. ํธ์ถ ํ๋ก์ธ์ค๊ฐ SDK ๊ฒฐ๊ณผ์์ `deferred_tool_use`๋ฅผ ์ฝ๊ณ , ์์ฒด UI์ ์ง๋ฌธ์ ํ์ํ ๋ค์, ๋ต๋ณ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
21334. ํธ์ถ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๊ถํ ํธ์คํธ๋ก `claude -p --resume <session-id>`๋ฅผ ์คํํฉ๋๋ค. ๊ฐ์ ๋๊ตฌ ํธ์ถ์ด `PreToolUse`๋ฅผ ๋ค์ ๋ฐ์์ํต๋๋ค.21594. ํธ์ถ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๊ถํ ํธ์คํธ๋ก `claude -p --resume <session-id>`๋ฅผ ์คํํฉ๋๋ค. ๊ฐ์ ๋๊ตฌ ํธ์ถ์ด ๋ค์ `PreToolUse`๋ฅผ ๋ฐ์์ํต๋๋ค.
21345. ํ
์ด `updatedInput`์ ๋ต๋ณ์ ๋ด์ `permissionDecision: "allow"`๋ฅผ ๋ฐํํฉ๋๋ค. ๋๊ตฌ๊ฐ ์คํ๋๊ณ Claude๊ฐ ๊ณ์ ์งํํฉ๋๋ค.21605. ํ
์ด `updatedInput`์ ๋ต๋ณ์ ๋ด์ `permissionDecision: "allow"`๋ฅผ ๋ฐํํฉ๋๋ค. ๋๊ตฌ๊ฐ ์คํ๋๊ณ Claude๊ฐ ๊ณ์ ์งํํฉ๋๋ค.
2135 2161
2136`deferred_tool_use` ํ๋์๋ ๋๊ตฌ์ `id`, `name`, `input`์ด ๋ด๊น๋๋ค. `input`์ Claude๊ฐ ๋๊ตฌ ํธ์ถ์ ์ํด ์์ฑํ ๋งค๊ฐ๋ณ์๋ก, ์คํ ์ ์ ์บก์ฒ๋ฉ๋๋ค:2162`deferred_tool_use` ํ๋๋ ๋๊ตฌ์ `id`, `name`, `input`์ ๋ด์ต๋๋ค. `input`์ Claude๊ฐ ๋๊ตฌ ํธ์ถ์ ์ํด ์์ฑํ ๋งค๊ฐ๋ณ์๋ก, ์คํ ์ ์ ์บก์ฒ๋ฉ๋๋ค.
2137 2163
2138```json theme={null}2164```json theme={null}
2139{2165{
2149}2175}
2150```2176```
2151 2177
2152ํ์์์์ด๋ ์ฌ์๋ ์ ํ์ ์์ต๋๋ค. ์ธ์
์ ์ฌ๊ฐํ ๋๊น์ง ๋์คํฌ์ ๋จ์ ์์ผ๋ฉฐ, [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) ๋ณด์กด ์ ๋ฆฌ์ ์ ์ฉ์ ๋ฐ์ต๋๋ค. ์ด ์ ๋ฆฌ๋ [๋ณด์กด ์ ๋ฆฌ ๊ท์น](/docs/ko/claude-directory#cleaned-up-automatically)์ ๋ฐ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก 30์ผ ํ ์ธ์
ํ์ผ์ ์ญ์ ํฉ๋๋ค. ์ฌ๊ฐํ ๋ ๋ต๋ณ์ด ์ค๋น๋์ง ์์๋ค๋ฉด ํ
์ ๋ค์ `"defer"`๋ฅผ ๋ฐํํ ์ ์์ผ๋ฉฐ, ํ๋ก์ธ์ค๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ข
๋ฃ๋ฉ๋๋ค. ํธ์ถ ํ๋ก์ธ์ค๋ ๊ฒฐ๊ตญ ํ
์์ `"allow"` ๋๋ `"deny"`๋ฅผ ๋ฐํํ์ฌ ๋ฃจํ๋ฅผ ๋๋ผ ์์ ์ ์ ์ดํฉ๋๋ค.2178ํ์์์์ด๋ ์ฌ์๋ ์ ํ์ ์์ต๋๋ค. ์ธ์
์ ์ฌ๊ฐํ ๋๊น์ง ๋์คํฌ์ ๋จ์ ์์ผ๋ฉฐ, [๋ณด์กด ์ ๋ฆฌ ๊ท์น](/docs/ko/claude-directory#cleaned-up-automatically)์ ๋ฐ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก 30์ผ ํ ์ธ์
ํ์ผ์ ์ญ์ ํ๋ [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) ๋ณด์กด ์ ๋ฆฌ์ ์ ์ฉ์ ๋ฐ์ต๋๋ค. ์ฌ๊ฐํ ๋ ๋ต๋ณ์ด ์ค๋น๋์ง ์์์ผ๋ฉด ํ
์ ๋ค์ `"defer"`๋ฅผ ๋ฐํํ ์ ์์ผ๋ฉฐ ํ๋ก์ธ์ค๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ข
๋ฃ๋ฉ๋๋ค. ํธ์ถ ํ๋ก์ธ์ค๋ ๊ฒฐ๊ตญ ํ
์์ `"allow"` ๋๋ `"deny"`๋ฅผ ๋ฐํํจ์ผ๋ก์จ ๋ฃจํ๋ฅผ ๋๋ผ ์์ ์ ์ ์ดํฉ๋๋ค.
2153 2179
2154`"defer"`๋ Claude๊ฐ ํด์์ ๋จ์ผ ๋๊ตฌ ํธ์ถ์ ํ ๋๋ง ์๋ํฉ๋๋ค. Claude๊ฐ ์ฌ๋ฌ ๋๊ตฌ ํธ์ถ์ ํ ๋ฒ์ ํ๋ฉด `"defer"`๋ ๊ฒฝ๊ณ ์ ํจ๊ป ๋ฌด์๋๊ณ , ๋๊ตฌ๋ ์ผ๋ฐ ๊ถํ ํ๋ฆ์ ํตํด ์งํ๋ฉ๋๋ค. ์ด ์ ์ฝ์ ์ฌ๊ฐ ์ ํ๋์ ๋๊ตฌ๋ง ๋ค์ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ์กด์ฌํฉ๋๋ค. ๋ค๋ฅธ ํธ์ถ์ ํด๊ฒฐ๋์ง ์์ ์ํ๋ก ๋จ๊ธฐ์ง ์๊ณ ๋ฐฐ์น์์ ํ๋์ ํธ์ถ๋ง ์ง์ฐํ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.2180`"defer"`๋ Claude๊ฐ ํด์์ ๋จ์ผ ๋๊ตฌ ํธ์ถ์ ํ ๋๋ง ์๋ํฉ๋๋ค. Claude๊ฐ ํ ๋ฒ์ ์ฌ๋ฌ ๋๊ตฌ ํธ์ถ์ ํ๋ฉด `"defer"`๋ ๊ฒฝ๊ณ ์ ํจ๊ป ๋ฌด์๋๊ณ ๋๊ตฌ๋ ์ผ๋ฐ ๊ถํ ํ๋ฆ์ ํตํด ์งํ๋ฉ๋๋ค. ์ด ์ ์ฝ์ ์ฌ๊ฐ ์ ํ๋์ ๋๊ตฌ๋ง ๋ค์ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ์กด์ฌํฉ๋๋ค. ๋๋จธ์ง๋ฅผ ๋ฏธํด๊ฒฐ ์ํ๋ก ๋์ง ์๊ณ ๋ฌถ์์์ ํ๋์ ํธ์ถ๋ง ์ง์ฐํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
2155 2181
2156์ฌ๊ฐํ ๋ ์ง์ฐ๋ ๋๊ตฌ๋ฅผ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ผ๋ฉด, ํ๋ก์ธ์ค๋ ํ
์ด ๋ฐ์ํ๊ธฐ ์ ์ `stop_reason: "tool_deferred_unavailable"` ๋ฐ `is_error: true`์ ํจ๊ป ์ข
๋ฃ๋ฉ๋๋ค. ์ด๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ MCP ์๋ฒ๊ฐ ์ฌ๊ฐ๋ ์ธ์
์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ค ๋๊ตฌ๊ฐ ๋๋ฝ๋์๋์ง ์๋ณํ ์ ์๋๋ก `deferred_tool_use` ํ์ด๋ก๋๋ ์ฌ์ ํ ํฌํจ๋ฉ๋๋ค.2182์ฌ๊ฐํ ๋ ์ง์ฐ๋ ๋๊ตฌ๋ฅผ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ผ๋ฉด, ํ๋ก์ธ์ค๋ ํ
์ด ๋ฐ์ํ๊ธฐ ์ ์ `stop_reason: "tool_deferred_unavailable"` ๋ฐ `is_error: true`์ ํจ๊ป ์ข
๋ฃ๋ฉ๋๋ค. ์ด๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ MCP ์๋ฒ๊ฐ ์ฌ๊ฐ๋ ์ธ์
์ ์ฐ๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค. `deferred_tool_use` ํ์ด๋ก๋๋ ์ฌ์ ํ ํฌํจ๋๋ฏ๋ก ์ด๋ค ๋๊ตฌ๊ฐ ๋๋ฝ๋์๋์ง ์๋ณํ ์ ์์ต๋๋ค.
2157 2183
2158<Note>2184<Note>
2159 ์ง์ฐ๋ ์ธ์
์ ํ๋ ๋ชจ๋์์ ์ฌ๊ฐํ๋ ค๋ฉด Claude Code๊ฐ ์น์ธ์ ์ํด ๊ณํ์ ์ ์ํ ์ ์๋๋ก `--resume`๊ณผ ํจ๊ป [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)์ ์ ๋ฌํ์ธ์. ๋ค๋ฅธ ์กฐ๊ฑด์ [`-p`๋ก ํ๋ ๋ชจ๋์์ ์ฌ๊ฐ](/docs/ko/sessions#resume-in-plan-mode-with-p)๋ฅผ ์ฐธ์กฐํ์ธ์. Claude Code v2.1.246 ์ด์์ด ํ์ํฉ๋๋ค.2185 ์ง์ฐ๋ ์ธ์
์ ํ๋ ๋ชจ๋์์ ์ฌ๊ฐํ๋ ค๋ฉด Claude Code๊ฐ ์น์ธ์ ์ํด ๊ณํ์ ์ ์ํ ์ ์๋๋ก `--resume`๊ณผ ํจ๊ป [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)์ ์ ๋ฌํ์ญ์์ค. ๋ค๋ฅธ ์กฐ๊ฑด์ [`-p`๋ก ํ๋ ๋ชจ๋์์ ์ฌ๊ฐ](/docs/ko/sessions#resume-in-plan-mode-with-p)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. Claude Code v2.1.246 ์ด์์ด ํ์ํฉ๋๋ค.
2160 2186
2161 `-p`๋ก ์ฌ๊ฐํ๋ฉด Claude Code๋ ์ ์ฅ๋ ๋ค๋ฅธ ๊ถํ ๋ชจ๋๋ฅผ ๋ณต์ํ์ง ์์ต๋๋ค. ์ `claude -p` ์คํ์ด ์์๋๋ ๊ถํ ๋ชจ๋๋ก ์คํ์ ์์ํ๋ฏ๋ก, ์ง์ฐ๋ ์ธ์
์์ `--permission-mode` ๋๋ `--dangerously-skip-permissions`๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ค์ ์ ๋ฌํ์ธ์. `-p` ์์ด `claude --resume <session-id>`๋ก ์ฌ๊ฐํ๋ฉด Claude Code๋ [์ฌ๊ฐ ์ ๊ถํ ๋ชจ๋](/docs/ko/sessions#permission-mode-on-resume)์ ๋์ด๋ ์์ธ๋ฅผ ์ ์ธํ๊ณ ์ ์ฅ๋ ๊ถํ ๋ชจ๋๋ฅผ ๋ณต์ํฉ๋๋ค.2187 `-p`๋ก ์ฌ๊ฐํ๋ฉด Claude Code๋ ์ ์ฅ๋ ๋ค๋ฅธ ๊ถํ ๋ชจ๋๋ฅผ ๋ณต์ํ์ง ์์ต๋๋ค. ์ `claude -p` ์คํ์ด ์์๋ ๊ถํ ๋ชจ๋๋ก ์คํ์ ์์ํ๋ฏ๋ก, ์ง์ฐ๋ ์ธ์
์ด `--permission-mode` ๋๋ `--dangerously-skip-permissions`๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ค์ ์ ๋ฌํ์ญ์์ค. `-p` ์์ด `claude --resume <session-id>`๋ก ์ฌ๊ฐํ๋ฉด Claude Code๋ [์ฌ๊ฐ ์ ๊ถํ ๋ชจ๋](/docs/ko/sessions#permission-mode-on-resume)์ ๋์ด๋ ์์ธ๋ฅผ ์ ์ธํ๊ณ ์ ์ฅ๋ ๊ถํ ๋ชจ๋๋ฅผ ๋ณต์ํฉ๋๋ค.
2162</Note>2188</Note>
2163 2189
2164<h3 id="permissionrequest">2190<h3 id="permissionrequest">
2165 PermissionRequest2191 PermissionRequest
2166</h3>2192</h3>
2167 2193
2168Claude Code๊ฐ ๋๊ตฌ ์ฌ์ฉ ๊ถํ์ ์์ฒญํ๋ ค ํ ๋ ์คํ๋ฉ๋๋ค. [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ์ฒ๋ผ ํ๋กฌํํธ๋ฅผ ํ์ํ ์ ์๋ ์ธ์
์์๋ Claude Code๋ ์ด ํ
์ ์คํํ๋ฉฐ, ๊ฒฐ์ ์ ๋ฐํํ๋ ํ
์ด ์์ผ๋ฉด ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํฉ๋๋ค. `--permission-prompt-tool` ๋๋ Agent SDK์ [`canUseTool` ์ฝ๋ฐฑ](/docs/ko/agent-sdk/permissions)์ ๋๋ฌํ๋ ํธ์ถ์ ๊ฒฝ์ฐ ํ
์ด ํธ์คํธ์ ํจ๊ป ์คํ๋๋ฉฐ, ๋จผ์ ๊ฒฐ์ ํ๋ ์ชฝ์ด ์ ์ฉ๋ฉ๋๋ค.2194Claude Code๊ฐ ๋๊ตฌ ์ฌ์ฉ ๊ถํ์ ์์ฒญํ๋ ค๊ณ ํ ๋ ์คํ๋ฉ๋๋ค. [๋น๋ํํ ๋ชจ๋](/docs/ko/headless)์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋ธ์์ด์ ํธ์ฒ๋ผ ํ๋กฌํํธ๋ฅผ ํ์ํ ์ ์๋ ์ธ์
์์๋ Claude Code๋ ์ด ํ
์ ์คํํ๋ฉฐ, ์ด๋ค ํ
๋ ๊ฒฐ์ ์ ๋ฐํํ์ง ์์ผ๋ฉด ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํฉ๋๋ค. `--permission-prompt-tool`์ด๋ Agent SDK์ [`canUseTool` ์ฝ๋ฐฑ](/docs/ko/agent-sdk/permissions)์ ๋๋ฌํ๋ ํธ์ถ์ ๊ฒฝ์ฐ, ํ
์ ํธ์คํธ์ ํจ๊ป ์คํ๋๋ฉฐ ๋จผ์ ๊ฒฐ์ ํ๋ ์ชฝ์ด ์ ์ฉ๋ฉ๋๋ค.
2169[PermissionRequest ๊ฒฐ์ ์ ์ด](#permissionrequest-decision-control)๋ฅผ ์ฌ์ฉํด ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ์ธ์.2195[PermissionRequest ๊ฒฐ์ ์ ์ด](#permissionrequest-decision-control)๋ฅผ ์ฌ์ฉํด ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค.
2170 2196
2171Claude๊ฐ ๋๊ตฌ ์ฌ์ฉ ๊ถํ์ ์์ฒญํ๋ ์ฆ์ ์ ํธ๊ฐ ํ์ํ ๋ ์ด ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ์ธ์. Claude Code๋ ํ๋กฌํํธ๊ฐ ์ฝ 6์ด ๋์ ๋๊ธฐํ ํ์์ผ `permission_prompt` ์ ํ์ [Notification](#notification) ํ
์ ์คํํฉ๋๋ค.2197Claude๊ฐ ๋๊ตฌ ์ฌ์ฉ ๊ถํ์ ์์ฒญํ๋ ์๊ฐ ์ ํธ๊ฐ ํ์ํ ๋ ์ด ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ์ญ์์ค. Claude Code๋ ํ๋กฌํํธ๊ฐ ์ฝ 6์ด๊ฐ ๋๊ธฐํ ํ์์ผ `permission_prompt` ์ ํ์ [Notification](#notification) ํ
์ ์คํํฉ๋๋ค.
2172 2198
2173Claude Code๋ ์๋๋ฐ์ค๋ ๋ช
๋ น์ [๋คํธ์ํฌ ์์ฒญ](/docs/ko/sandboxing#network-isolation)์ ๋ํด์๋ PermissionRequest ํ
์ ์คํํ์ง ์์ต๋๋ค. ํด๋น ํ๋กฌํํธ์ ๋ํ ์ ํธ๋ฅผ ๋ฐ์ผ๋ ค๋ฉด `permission_prompt` ์๋ฆผ ์ ํ์ ์ฌ์ฉํ์ธ์.2199Claude Code๋ ์๋๋ฐ์ค๋ ๋ช
๋ น์ [๋คํธ์ํฌ ์์ฒญ](/docs/ko/sandboxing#network-isolation)์ ๋ํด์๋ PermissionRequest ํ
์ ์คํํ์ง ์์ต๋๋ค. ํด๋น ํ๋กฌํํธ์ ๋ํ ์ ํธ๋ฅผ ๋ฐ์ผ๋ ค๋ฉด `permission_prompt` ์๋ฆผ ์ ํ์ ์ฌ์ฉํ์ญ์์ค.
2174 2200
2175PreToolUse์ ๊ฐ์ ๊ฐ์ผ๋ก ๋๊ตฌ ์ด๋ฆ์ ๋ํด ๋งค์นญํฉ๋๋ค.2201PreToolUse์ ๊ฐ์ ๊ฐ์ผ๋ก ๋๊ตฌ ์ด๋ฆ์ ๋ํด ์ผ์นํฉ๋๋ค.
2176 2202
2177<h4 id="permissionrequest-input">2203<h4 id="permissionrequest-input">
2178 PermissionRequest ์
๋ ฅ2204 PermissionRequest ์
๋ ฅ
2179</h4>2205</h4>
2180 2206
2181PermissionRequest ํ
์ PreToolUse ํ
์ฒ๋ผ `tool_name` ๋ฐ `tool_input` ํ๋๋ฅผ ๋ฐ์ง๋ง `tool_use_id`๋ ๋ฐ์ง ์์ต๋๋ค. MCP ๋๊ตฌ์ ๊ฒฝ์ฐ [`mcp_server`](#pretooluse-input) ๊ฐ์ฒด๋ ๋ฐ์ต๋๋ค. ์ ํ์ `permission_suggestions` ๋ฐฐ์ด์๋ ํ์ฉ ๊ท์น ์ถ๊ฐ๋ ๊ถํ ๋ชจ๋ ๋ณ๊ฒฝ์ฒ๋ผ Claude Code๊ฐ ์ด ์์ฒญ์ ๋ํด ์ ์ํ๋ [๊ถํ ์
๋ฐ์ดํธ](#permission-update-entries)๊ฐ ๋ค์ด ์์ต๋๋ค.2207PermissionRequest ํ
์ PreToolUse ํ
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก `tool_name` ๋ฐ `tool_input` ํ๋๋ฅผ ๋ฐ์ง๋ง `tool_use_id`๋ ๋ฐ์ง ์์ต๋๋ค. MCP ๋๊ตฌ์ ๊ฒฝ์ฐ [`mcp_server`](#pretooluse-input) ๊ฐ์ฒด๋ ๋ฐ์ต๋๋ค. ์ ํ์ `permission_suggestions` ๋ฐฐ์ด์๋ ํ์ฉ ๊ท์น ์ถ๊ฐ๋ ๊ถํ ๋ชจ๋ ๋ณ๊ฒฝ ๋ฑ Claude Code๊ฐ ์ด ์์ฒญ์ ๋ํด ์ ์ํ๋ [๊ถํ ์
๋ฐ์ดํธ](#permission-update-entries)๊ฐ ํฌํจ๋ฉ๋๋ค.
2182 2208
2183๊ฐ ๊ถํ ๋ํ ์์๋ ์์ฒด ์ต์
์ ๊ตฌ์ฑํ๋ฏ๋ก `permission_suggestions` ๋ฐฐ์ด์ ํ๋ฉด์ ํ์๋๋ ์ต์
์ ์ ํํ ๋ชฉ๋ก์ด ์๋๋๋ค. ํ์ผ ํธ์ง์ฉ ๋ํ ์์์ฒ๋ผ ์ผ๋ถ ๋ํ ์์๋ ๋ฐฐ์ด์ ์ ํ ์ฝ์ง ์๊ณ ์์ฒญ ์์ฒด์์ ์ต์
์ ๋์ถํฉ๋๋ค. ๋ฐฐ์ด์ ์ฝ๋ ๋ํ ์์๋ ์ ์์ด ๋ฐฐ์ด์ ๋จ์ ์๋ ์ต์
์ ์จ๊ธธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)๊ฐ ๊ท์น ์ ์ฅ ์ต์
์ ์จ๊ธฐ๋ ๊ฒฝ์ฐ์
๋๋ค. ๋ํ ๊ถํ ์
๋ฐ์ดํธ๋ฅผ ํตํ์ง ์๊ณ ๊ถํ ๋ชจ๋๋ฅผ ์ง์ ๋ณ๊ฒฝํ๋ [**Yes, and switch to auto mode**](/docs/ko/permission-modes#switch-permission-modes)์ฒ๋ผ ์ ์ ํญ๋ชฉ์ด ์๋ ์ต์
์ ์ ๊ณตํ ์๋ ์์ต๋๋ค.2209๊ฐ ๊ถํ ๋ํ ์์๋ ์์ฒด์ ์ผ๋ก ์ต์
์ ๊ตฌ์ฑํ๋ฏ๋ก `permission_suggestions` ๋ฐฐ์ด์ ํ๋ฉด์ ํ์๋๋ ์ต์
์ ์ ํํ ๋ชฉ๋ก์ด ์๋๋๋ค. ํ์ผ ํธ์ง์ฉ ๋ํ ์์์ฒ๋ผ ์ผ๋ถ ๋ํ ์์๋ ์ด ๋ฐฐ์ด์ ์ ํ ์ฝ์ง ์๊ณ ์์ฒญ ์์ฒด์์ ์ต์
์ ๋์ถํฉ๋๋ค. ๋ฐฐ์ด์ ์ฝ๋ ๋ํ ์์๋ผ๋ ์ ์์ด ๋ฐฐ์ด์ ๋จ์ ์๋ ์ต์
์ ํ์ํ์ง ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)๊ฐ ๊ท์น ์ ์ฅ ์ต์
์ ์จ๊ธฐ๋ ๊ฒฝ์ฐ์
๋๋ค. ๋ํ [**Yes, and switch to auto mode**](/docs/ko/permission-modes#switch-permission-modes)์ฒ๋ผ ์ ์ ํญ๋ชฉ์ด ์๋ ์ต์
์ ์ ๊ณตํ ์๋ ์๋๋ฐ, ์ด ์ต์
์ ๊ถํ ์
๋ฐ์ดํธ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๊ถํ ๋ชจ๋๋ฅผ ์ง์ ๋ณ๊ฒฝํฉ๋๋ค.
2184 2210
2185PreToolUse ํ
์ ๊ถํ์ด ํ์ํ์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ชจ๋ ๋๊ตฌ ํธ์ถ ์ ์ ์คํ๋ฉ๋๋ค. PermissionRequest ํ
์ Claude Code๊ฐ ๊ถํ์ ์์ฒญํ๋ ค ํ ๋, ๋๋ ํ๋กฌํํธ๋ฅผ ํ์ํ ์ ์๋ ํธ์ถ์ ์๋ ๊ฑฐ๋ถํ๋ ค ํ ๋๋ง ์คํ๋ฉ๋๋ค. ๋ ์ด๋ฒคํธ ๋ชจ๋ [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)์ ๋ํด์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.2211PreToolUse ํ
์ ๊ถํ ํ์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ชจ๋ ๋๊ตฌ ํธ์ถ ์ ์ ์คํ๋ฉ๋๋ค. PermissionRequest ํ
์ Claude Code๊ฐ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ์์ฒญํ๋ ค๋ ๊ฒฝ์ฐ, ๋๋ ํ์ธ์ ์์ฒญํ ์ ์๋ ํธ์ถ์ ์๋์ผ๋ก ๊ฑฐ๋ถํ๋ ค๋ ๊ฒฝ์ฐ์๋ง ์คํ๋ฉ๋๋ค. ๋ ์ด๋ฒคํธ ๋ชจ๋ [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)์ ๋ํด์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
2186 2212
2187```json theme={null}2213```json theme={null}
2188{2214{
2211 PermissionRequest ๊ฒฐ์ ์ ์ด2237 PermissionRequest ๊ฒฐ์ ์ ์ด
2212</h4>2238</h4>
2213 2239
2214`PermissionRequest` ํ
์ ๊ถํ ์์ฒญ์ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๊ฐ ์๋ `decision` ๊ฐ์ฒด๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค:2240`PermissionRequest` ํ
์ ๊ถํ ์์ฒญ์ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๊ฐ ํฌํจ๋ `decision` ๊ฐ์ฒด๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
2215 2241
2216| ํ๋ | ์ค๋ช
|2242| ํ๋ | ์ค๋ช
|
2217| :- | :- |2243| :- | :- |
2218| `behavior` | `"allow"`๋ ๊ถํ์ ๋ถ์ฌํ๊ณ `"deny"`๋ ๊ฑฐ๋ถํฉ๋๋ค. [๊ฑฐ๋ถ ๋ฐ ํ์ธ ๊ท์น](/docs/ko/permissions#manage-permissions)์ ์ฌ์ ํ ํ๊ฐ๋๋ฏ๋ก `"allow"`๋ฅผ ๋ฐํํ๋ ํ
์ด ์ผ์นํ๋ ๊ฑฐ๋ถ ๊ท์น์ ์ฌ์ ์ํ์ง ์์ต๋๋ค |2244| `behavior` | `"allow"`๋ ๊ถํ์ ๋ถ์ฌํ๊ณ `"deny"`๋ ๊ฑฐ๋ถํฉ๋๋ค. [๊ฑฐ๋ถ ๋ฐ ํ์ธ ๊ท์น](/docs/ko/permissions#manage-permissions)์ ๊ณ์ ํ๊ฐ๋๋ฏ๋ก, `"allow"`๋ฅผ ๋ฐํํ๋ ํ
์ด ์ผ์นํ๋ ๊ฑฐ๋ถ ๊ท์น์ ์ฌ์ ์ํ์ง๋ ์์ต๋๋ค |
2219| `updatedInput` | `"allow"` ์ ์ฉ: ์คํ ์ ์ ๋๊ตฌ์ ์
๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํฉ๋๋ค. ์ ์ฒด ์
๋ ฅ ๊ฐ์ฒด๋ฅผ ๋์ฒดํ๋ฏ๋ก ์์ ๋ ํ๋์ ํจ๊ป ๋ณ๊ฒฝ๋์ง ์์ ํ๋๋ ํฌํจํ์ธ์. ์์ ๋ ์
๋ ฅ์ ๊ฑฐ๋ถ ๋ฐ ํ์ธ ๊ท์น์ ๋ํด ๋ค์ ํ๊ฐ๋ฉ๋๋ค |2245| `updatedInput` | `"allow"` ์ ์ฉ: ์คํ ์ ์ ๋๊ตฌ์ ์
๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํฉ๋๋ค. ์ ์ฒด ์
๋ ฅ ๊ฐ์ฒด๋ฅผ ๋์ฒดํ๋ฏ๋ก ์์ ๋ ํ๋์ ํจ๊ป ๋ณ๊ฒฝ๋์ง ์์ ํ๋๋ ํฌํจํด์ผ ํฉ๋๋ค. ์์ ๋ ์
๋ ฅ์ ๊ฑฐ๋ถ ๋ฐ ํ์ธ ๊ท์น์ ๋ํด ๋ค์ ํ๊ฐ๋ฉ๋๋ค |
2220| `updatedPermissions` | `"allow"` ์ ์ฉ: ํ์ฉ ๊ท์น ์ถ๊ฐ๋ ์ธ์
๊ถํ ๋ชจ๋ ๋ณ๊ฒฝ์ฒ๋ผ ์ ์ฉํ [๊ถํ ์
๋ฐ์ดํธ ํญ๋ชฉ](#permission-update-entries) ๋ฐฐ์ด |2246| `updatedPermissions` | `"allow"` ์ ์ฉ: ํ์ฉ ๊ท์น ์ถ๊ฐ๋ ์ธ์
๊ถํ ๋ชจ๋ ๋ณ๊ฒฝ ๋ฑ ์ ์ฉํ [๊ถํ ์
๋ฐ์ดํธ ํญ๋ชฉ](#permission-update-entries)์ ๋ฐฐ์ด์
๋๋ค |
2221| `message` | `"deny"` ์ ์ฉ: ๊ถํ์ด ๊ฑฐ๋ถ๋ ์ด์ ๋ฅผ Claude์๊ฒ ์๋ฆฝ๋๋ค |2247| `message` | `"deny"` ์ ์ฉ: ๊ถํ์ด ๊ฑฐ๋ถ๋ ์ด์ ๋ฅผ Claude์๊ฒ ์๋ฆฝ๋๋ค |
2222| `interrupt` | `"deny"` ์ ์ฉ: `true`์ด๋ฉด Claude๋ฅผ ์ค์งํฉ๋๋ค |2248| `interrupt` | `"deny"` ์ ์ฉ: `true`์ด๋ฉด Claude๋ฅผ ์ค์งํฉ๋๋ค |
2223 2249
2246| `type` | ํ๋ | ํจ๊ณผ |2272| `type` | ํ๋ | ํจ๊ณผ |
2247| :- | :- | :- |2273| :- | :- | :- |
2248| `addRules` | `rules`, `behavior`, `destination` | ๊ถํ ๊ท์น์ ์ถ๊ฐํฉ๋๋ค. `rules`๋ `{toolName, ruleContent?}` ๊ฐ์ฒด์ ๋ฐฐ์ด์
๋๋ค. ๋๊ตฌ ์ ์ฒด์ ์ผ์น์ํค๋ ค๋ฉด `ruleContent`๋ฅผ ์๋ตํฉ๋๋ค. `behavior`๋ `"allow"`, `"deny"` ๋๋ `"ask"`์
๋๋ค |2274| `addRules` | `rules`, `behavior`, `destination` | ๊ถํ ๊ท์น์ ์ถ๊ฐํฉ๋๋ค. `rules`๋ `{toolName, ruleContent?}` ๊ฐ์ฒด์ ๋ฐฐ์ด์
๋๋ค. ๋๊ตฌ ์ ์ฒด์ ์ผ์น์ํค๋ ค๋ฉด `ruleContent`๋ฅผ ์๋ตํฉ๋๋ค. `behavior`๋ `"allow"`, `"deny"` ๋๋ `"ask"`์
๋๋ค |
2249| `replaceRules` | `rules`, `behavior`, `destination` | `destination`์ ์๋ ์ง์ ๋ `behavior`์ ๋ชจ๋ ๊ท์น์ ์ ๊ณต๋ `rules`๋ก ๋์ฒดํฉ๋๋ค |2275| `replaceRules` | `rules`, `behavior`, `destination` | `destination`์์ ์ง์ ๋ `behavior`์ ๋ชจ๋ ๊ท์น์ ์ ๊ณต๋ `rules`๋ก ๋์ฒดํฉ๋๋ค |
2250| `removeRules` | `rules`, `behavior`, `destination` | ์ง์ ๋ `behavior`์ ์ผ์นํ๋ ๊ท์น์ ์ ๊ฑฐํฉ๋๋ค |2276| `removeRules` | `rules`, `behavior`, `destination` | ์ง์ ๋ `behavior`์ ์ผ์นํ๋ ๊ท์น์ ์ ๊ฑฐํฉ๋๋ค |
2251| `setMode` | `mode`, `destination` | ๊ถํ ๋ชจ๋๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ์ ํจํ ๋ชจ๋๋ `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, ๊ทธ๋ฆฌ๊ณ `default`์ ๋ณ์นญ์ธ `manual`์
๋๋ค |2277| `setMode` | `mode`, `destination` | ๊ถํ ๋ชจ๋๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ์ ํจํ ๋ชจ๋๋ `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, ๊ทธ๋ฆฌ๊ณ `default`์ ๋ณ์นญ์ธ `manual`์
๋๋ค |
2252| `addDirectories` | `directories`, `destination` | ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. `directories`๋ ๊ฒฝ๋ก ๋ฌธ์์ด์ ๋ฐฐ์ด์
๋๋ค |2278| `addDirectories` | `directories`, `destination` | ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. `directories`๋ ๊ฒฝ๋ก ๋ฌธ์์ด์ ๋ฐฐ์ด์
๋๋ค |
2253| `removeDirectories` | `directories`, `destination` | ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค |2279| `removeDirectories` | `directories`, `destination` | ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค |
2254 2280
2255<Note>2281<Note>
2256 `bypassPermissions`๋ฅผ ์ฌ์ฉํ๋ `setMode`๋ ์ฐํ ๋ชจ๋๋ฅผ ์ด๋ฏธ ์ฌ์ฉํ ์ ์๋ ์ํ๋ก ์ธ์
์ ์์ํ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ฆ, `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, ๋๋ [์ฌ์ฉ์ ์ค์ , `--settings` ๋๋ ๊ด๋ฆฌํ ์ค์ ](/docs/ko/settings-reference#permissions-defaultmode)์ `permissions.defaultMode: "bypassPermissions"`๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์
๋ฐ์ดํธ๋ ์๋ฌด ํจ๊ณผ๊ฐ ์์ต๋๋ค. [`permissions.disableBypassPermissionsMode`](/docs/ko/permissions#managed-settings)๊ฐ ํด๋น ๋ชจ๋๋ฅผ ๋นํ์ฑํํ ๊ฒฝ์ฐ๋ ์ธ์
์ด [์ ํ ๋ชจ๋](/docs/ko/cli-reference#cli-flags)๋ก ์์๋ ๊ฒฝ์ฐ์๋ ์
๋ฐ์ดํธ๋ ์๋ฌด ํจ๊ณผ๊ฐ ์์ต๋๋ค.2282 `bypassPermissions`๋ฅผ ์ง์ ํ `setMode`๋ ์ฐํ ๋ชจ๋๋ฅผ ์ด๋ฏธ ์ฌ์ฉํ ์ ์๋ ์ํ๋ก ์ธ์
์ ์์ํ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ฆ `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, ๋๋ [์ฌ์ฉ์, `--settings` ๋๋ ๊ด๋ฆฌํ ์ค์ ](/docs/ko/settings-reference#permissions-defaultmode)์ `permissions.defaultMode: "bypassPermissions"`๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์
๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์
๋ฐ์ดํธ๋ ์๋ฌด ํจ๊ณผ๊ฐ ์์ต๋๋ค. [`permissions.disableBypassPermissionsMode`](/docs/ko/permissions#managed-settings)๊ฐ ํด๋น ๋ชจ๋๋ฅผ ๋นํ์ฑํํ ๊ฒฝ์ฐ๋ ์ธ์
์ด [์ ํ ๋ชจ๋](/docs/ko/cli-reference#cli-flags)๋ก ์์๋ ๊ฒฝ์ฐ์๋ ์
๋ฐ์ดํธ๋ ์๋ฌด ํจ๊ณผ๊ฐ ์์ต๋๋ค.
2257 2283
2258 `bypassPermissions`๋ `destination`๊ณผ ๊ด๊ณ์์ด `defaultMode`๋ก ์ ์ฅ๋์ง ์์ต๋๋ค.2284 `bypassPermissions`๋ `destination`๊ณผ ๊ด๊ณ์์ด `defaultMode`๋ก ์ ์ฅ๋์ง ์์ต๋๋ค.
2259</Note>2285</Note>
2260 2286
2261๋ชจ๋ ํญ๋ชฉ์ `destination` ํ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ง๋ ์ง ์ค์ ํ์ผ์ ์ ์ฅ๋ ์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.2287๋ชจ๋ ํญ๋ชฉ์ `destination` ํ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ง๋๋์ง ์ค์ ํ์ผ์ ์ ์ฅ๋๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
2262 2288
2263| `destination` | ๊ธฐ๋ก ์์น |2289| `destination` | ๊ธฐ๋ก ์์น |
2264| :- | :- |2290| :- | :- |
2265| `session` | ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ง๋๋ฉฐ ์ธ์
์ด ๋๋๋ฉด ํ๊ธฐ๋จ |2291| `session` | ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ง๋๋ฉฐ ์ธ์
์ด ๋๋๋ฉด ๋ฒ๋ ค์ง๋๋ค |
2266| `localSettings` | `.claude/settings.local.json` |2292| `localSettings` | `.claude/settings.local.json` |
2267| `projectSettings` | `.claude/settings.json` |2293| `projectSettings` | `.claude/settings.json` |
2268| `userSettings` | `~/.claude/settings.json` |2294| `userSettings` | `~/.claude/settings.json` |
2269 2295
2270ํ
์ ์ ๋ฌ๋ฐ์ `permission_suggestions` ์ค ํ๋๋ฅผ ์์ฒด `updatedPermissions` ์ถ๋ ฅ์ผ๋ก ๊ทธ๋๋ก ๋ฐํํ ์ ์์ต๋๋ค.2296ํ
์ ๋ฐ์ `permission_suggestions` ์ค ํ๋๋ฅผ ์์ฒด `updatedPermissions` ์ถ๋ ฅ์ผ๋ก ๊ทธ๋๋ก ๋ฐํํ ์ ์์ต๋๋ค.
2271 2297
2272<h3 id="posttooluse">2298<h3 id="posttooluse">
2273 PostToolUse2299 PostToolUse
2275 2301
2276๋๊ตฌ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ์งํ์ ์คํ๋ฉ๋๋ค.2302๋๊ตฌ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ์งํ์ ์คํ๋ฉ๋๋ค.
2277 2303
2278๋๊ตฌ ์ด๋ฆ๊ณผ ์ผ์นํ๋ฉฐ, ๊ฐ์ PreToolUse์ ๋์ผํฉ๋๋ค.2304PreToolUse์ ๋์ผํ ๊ฐ์ผ๋ก ๋๊ตฌ ์ด๋ฆ์ ๋ํด ์ผ์น์ํต๋๋ค.
2279 2305
2280๋๊ตฌ ์ด๋ฆ์ด ์ ์ ํ ํํฐ๊ฐ ์๋ ๋๋ ๋ ๋๊ฒ ์ผ์น์ํฌ ์ ์์ต๋๋ค.2306๋๊ตฌ ์ด๋ฆ์ด ์ ์ ํ ํํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ ๋๊ฒ ์ผ์น์ํฌ ์ ์์ต๋๋ค.
2281 2307
2282* ์ด๋ค ๋๊ตฌ๋ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํ ํ
์ ์คํํ๋ ค๋ฉด `matcher`๋ฅผ ์๋ตํ๊ฑฐ๋ `"*"`๋ก ์ค์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ
์ด ์ง์ ๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง ํ์
ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด `git status --porcelain`์ ์คํํ๋ฉด `git diff`๊ฐ ๋์น๋ ์ถ์ ๋์ง ์์ ํ์ผ๋ ๋์ด๋ฉ๋๋ค. ์คํจํ ๋๊ตฌ ํธ์ถ์ ๊ฒฝ์ฐ ๋์ผํ ํ
์ [PostToolUseFailure](#posttoolusefailure)์ ์ถ๊ฐํฉ๋๋ค.2308* ๋ชจ๋ ๋๊ตฌ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํ ํ
์ ์คํํ๋ ค๋ฉด `matcher`๋ฅผ ์๋ตํ๊ฑฐ๋ `"*"`๋ก ์ค์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ
์ด ์ง์ ๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง ํ์
ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด `git status --porcelain`์ ์คํํ๋ฉด `git diff`๊ฐ ๋์น๋ ์ถ์ ๋์ง ์๋ ํ์ผ๋ ๋์ด๋ฉ๋๋ค. ์คํจํ ๋๊ตฌ ํธ์ถ์ ๊ฒฝ์ฐ ๋์ผํ ํ
์ [PostToolUseFailure](#posttoolusefailure) ์๋์ ์ถ๊ฐํ์ญ์์ค.
2283* ๋ฌด์์ด ํ์ผ์ ๊ธฐ๋กํ๋ ๊ด๊ณ์์ด ํน์ ํ์ผ์ด ๋์คํฌ์์ ๋ณ๊ฒฝ๋ ๋ ํ
์ ์คํํ๋ ค๋ฉด [FileChanged](#filechanged)๋ฅผ ์ฌ์ฉํฉ๋๋ค. `Bash` ๋ช
๋ น์ด๋ Claude Code ์ธ๋ถ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ํ์ผ์ ๋ค์ ๊ธฐ๋กํ๋ ๊ฒฝ์ฐ, Claude Code๋ `Edit|Write`์ ์ผ์นํ๋ `PostToolUse` ํ
์ ์คํํ์ง ์์ต๋๋ค.2309* ๋ฌด์์ด ๊ธฐ๋กํ๋์ง์ ๊ด๊ณ์์ด ํน์ ํ์ผ์ด ๋์คํฌ์์ ๋ณ๊ฒฝ๋ ๋ ํ
์ ์คํํ๋ ค๋ฉด [FileChanged](#filechanged)๋ฅผ ์ฌ์ฉํ์ญ์์ค. `Bash` ๋ช
๋ น์ด๋ Claude Code ์ธ๋ถ์ ํ๋ก์ธ์ค๊ฐ ๋์ผํ ํ์ผ์ ๋ค์ ์ฐ๋ ๊ฒฝ์ฐ Claude Code๋ `Edit|Write`์ ์ผ์นํ๋ `PostToolUse` ํ
์ ์คํํ์ง ์์ต๋๋ค.
2284 2310
2285<h4 id="posttooluse-input">2311<h4 id="posttooluse-input">
2286 PostToolUse ์
๋ ฅ2312 PostToolUse ์
๋ ฅ
2287</h4>2313</h4>
2288 2314
2289`PostToolUse` ํ
์ ๋๊ตฌ๊ฐ ์ด๋ฏธ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋ ํ์ ๋ฐ์ํฉ๋๋ค. ์
๋ ฅ์๋ ๋๊ตฌ์ ์ ์ก๋ ์ธ์์ธ `tool_input`๊ณผ ๋๊ตฌ๊ฐ ๋ฐํํ ๊ฒฐ๊ณผ์ธ `tool_response`๊ฐ ๋ชจ๋ ํฌํจ๋ฉ๋๋ค. ๋ ํ๋์ ์ ํํ ์คํค๋ง๋ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ํ์ผ ๋๊ตฌ์ `tool_input` ๊ฒฝ๋ก๋ [PreToolUse](#pretooluse-input)์ ๋์ผํ ํ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ฆ, ํญ์ ์ ๋ ๊ฒฝ๋ก์ด๋ฉฐ ํ๋ซํผ์ ๊ธฐ๋ณธ ๊ตฌ๋ถ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก Windows์์๋ ๋ฐฑ์ฌ๋์์
๋๋ค. MCP ๋๊ตฌ์ ๊ฒฝ์ฐ ์
๋ ฅ์ [`mcp_server`](#pretooluse-input) ๊ฐ์ฒด๋ ํฌํจ๋ฉ๋๋ค.2315`PostToolUse` ํ
์ ๋๊ตฌ๊ฐ ์ด๋ฏธ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋ ํ์ ๋ฐ์ํฉ๋๋ค. ์
๋ ฅ์๋ ๋๊ตฌ์ ์ ์ก๋ ์ธ์์ธ `tool_input`๊ณผ ๋๊ตฌ๊ฐ ๋ฐํํ ๊ฒฐ๊ณผ์ธ `tool_response`๊ฐ ๋ชจ๋ ํฌํจ๋ฉ๋๋ค. ๋ ํญ๋ชฉ์ ์ ํํ ์คํค๋ง๋ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ํ์ผ ๋๊ตฌ์ `tool_input` ๊ฒฝ๋ก๋ [PreToolUse](#pretooluse-input)์ ๋์ผํ ํ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ฆ ํญ์ ์ ๋ ๊ฒฝ๋ก์ด๋ฉฐ ํ๋ซํผ ๊ณ ์ ์ ๊ตฌ๋ถ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก Windows์์๋ ๋ฐฑ์ฌ๋์์
๋๋ค. MCP ๋๊ตฌ์ ๊ฒฝ์ฐ ์
๋ ฅ์ [`mcp_server`](#pretooluse-input) ๊ฐ์ฒด๋ ํฌํจ๋ฉ๋๋ค.
2290 2316
2291```json theme={null}2317```json theme={null}
2292{2318{
2311 2337
2312| ํ๋ | ์ค๋ช
|2338| ํ๋ | ์ค๋ช
|
2313| :- | :- |2339| :- | :- |
2314| `duration_ms` | ์ ํ ์ฌํญ. ๋๊ตฌ ์คํ ์๊ฐ(๋ฐ๋ฆฌ์ด)์
๋๋ค. ๊ถํ ํ๋กฌํํธ์ PreToolUse ํ
์์ ์์๋ ์๊ฐ์ ์ ์ธ๋ฉ๋๋ค |2340| `duration_ms` | ์ ํ ์ฌํญ. ๋ฐ๋ฆฌ์ด ๋จ์์ ๋๊ตฌ ์คํ ์๊ฐ์
๋๋ค. ๊ถํ ํ๋กฌํํธ์ PreToolUse ํ
์ ์์๋ ์๊ฐ์ ์ ์ธ๋ฉ๋๋ค |
2315 2341
2316<h4 id="posttooluse-decision-control">2342<h4 id="posttooluse-decision-control">
2317 PostToolUse ๊ฒฐ์ ์ ์ด2343 PostToolUse ๊ฒฐ์ ์ ์ด
2318</h4>2344</h4>
2319 2345
2320`PostToolUse` ํ
์ ๋๊ตฌ ์คํ ํ Claude์๊ฒ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.2346`PostToolUse` ํ
์ ๋๊ตฌ ์คํ ํ Claude์๊ฒ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
2321 2347
2322| ํ๋ | ์ค๋ช
|2348| ํ๋ | ์ค๋ช
|
2323| :- | :- |2349| :- | :- |
2324| `decision` | `"block"`์ ๋๊ตฌ ๊ฒฐ๊ณผ ์์ `reason`์ ์ถ๊ฐํฉ๋๋ค. Claude๋ ์ฌ์ ํ ์๋ ์ถ๋ ฅ์ ๋ด
๋๋ค. ์ถ๋ ฅ์ ๋์ฒดํ๋ ค๋ฉด `updatedToolOutput`์ ์ฌ์ฉํฉ๋๋ค |2350| `decision` | `"block"`์ ๋๊ตฌ ๊ฒฐ๊ณผ ์์ `reason`์ ์ถ๊ฐํฉ๋๋ค. Claude๋ ์ฌ์ ํ ์๋ ์ถ๋ ฅ์ ๋ด
๋๋ค. ์ถ๋ ฅ์ ๋์ฒดํ๋ ค๋ฉด `updatedToolOutput`์ ์ฌ์ฉํ์ญ์์ค |
2325| `reason` | `decision`์ด `"block"`์ผ ๋ Claude์๊ฒ ํ์๋๋ ์ค๋ช
|2351| `reason` | `decision`์ด `"block"`์ผ ๋ Claude์๊ฒ ํ์๋๋ ์ค๋ช
์
๋๋ค |
2326| `additionalContext` | ๋๊ตฌ ๊ฒฐ๊ณผ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |2352| `additionalContext` | ๋๊ตฌ ๊ฒฐ๊ณผ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
2327| `classifierContext` | Claude๊ฐ ์๋ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) ๋ถ๋ฅ๊ธฐ๋ฅผ ์ํ, ์ด ํธ์ถ์ ๊ฒฐ๊ณผ์ ๊ดํ ์งง์ ๋ฉ๋ชจ. [์๋ ๋ชจ๋ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ํ ๊ฒฐ๊ณผ ์ฃผ์ ๋ฌ๊ธฐ](#annotate-a-result-for-the-auto-mode-classifier)๋ฅผ ์ฐธ์กฐํ์ธ์. Claude Code v2.1.236 ์ด์์ด ํ์ํฉ๋๋ค |2353| `classifierContext` | Claude๊ฐ ์๋ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) ๋ถ๋ฅ๊ธฐ๋ฅผ ์ํ, ์ด ํธ์ถ ๊ฒฐ๊ณผ์ ๋ํ ์งง์ ๋ฉ๋ชจ์
๋๋ค. [์๋ ๋ชจ๋ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ํ ๊ฒฐ๊ณผ ์ฃผ์ ๋ฌ๊ธฐ](#annotate-a-result-for-the-auto-mode-classifier)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. Claude Code v2.1.236 ์ด์์ด ํ์ํฉ๋๋ค |
2328| `updatedToolOutput` | Claude์๊ฒ ์ ์ก๋๊ธฐ ์ ์ ๋๊ตฌ์ ์ถ๋ ฅ์ ์ ๊ณต๋ ๊ฐ์ผ๋ก ๋์ฒดํฉ๋๋ค. ๊ฐ์ ๋๊ตฌ์ ์ถ๋ ฅ ํํ์ ์ผ์นํด์ผ ํฉ๋๋ค |2354| `updatedToolOutput` | Claude์๊ฒ ์ ์ก๋๊ธฐ ์ ์ ๋๊ตฌ์ ์ถ๋ ฅ์ ์ ๊ณต๋ ๊ฐ์ผ๋ก ๋์ฒดํฉ๋๋ค. ๊ฐ์ ๋๊ตฌ์ ์ถ๋ ฅ ํํ์ ์ผ์นํด์ผ ํฉ๋๋ค |
2329| `updatedMCPToolOutput` | [MCP ๋๊ตฌ](#match-mcp-tools)์ ๋ํด์๋ง ์ถ๋ ฅ์ ๋์ฒดํฉ๋๋ค. ๋ชจ๋ ๋๊ตฌ์์ ์๋ํ๋ `updatedToolOutput`์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค |2355| `updatedMCPToolOutput` | [MCP ๋๊ตฌ](#match-mcp-tools)์ ๋ํด์๋ง ์ถ๋ ฅ์ ๋์ฒดํฉ๋๋ค. ๋ชจ๋ ๋๊ตฌ์์ ์๋ํ๋ `updatedToolOutput`์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค |
2330 2356
2346```2372```
2347 2373
2348<Warning>2374<Warning>
2349 `updatedToolOutput`์ Claude๊ฐ ๋ณด๋ ๋ด์ฉ๋ง ๋ณ๊ฒฝํฉ๋๋ค. ํ
์ด ๋ฐ์ํ ๋๋ ๋๊ตฌ๊ฐ ์ด๋ฏธ ์คํ๋ ์ํ์ด๋ฏ๋ก, ๊ธฐ๋ก๋ ํ์ผ, ์คํ๋ ๋ช
๋ น, ์ ์ก๋ ๋คํธ์ํฌ ์์ฒญ์ ์ด๋ฏธ ์ ์ฉ๋์์ต๋๋ค. OpenTelemetry ๋๊ตฌ ์คํฌ ๋ฐ ๋ถ์ ์ด๋ฒคํธ์ ๊ฐ์ ํ
๋ ๋ฉํธ๋ฆฌ๋ ํ
์ด ์คํ๋๊ธฐ ์ ์ ์๋ ์ถ๋ ฅ์ ์บก์ฒํฉ๋๋ค. ๋๊ตฌ ํธ์ถ์ด ์คํ๋๊ธฐ ์ ์ ์ด๋ฅผ ๋ฐฉ์งํ๊ฑฐ๋ ์์ ํ๋ ค๋ฉด ๋์ [PreToolUse](#pretooluse) ํ
์ ์ฌ์ฉํ์ธ์.2375 `updatedToolOutput`์ Claude๊ฐ ๋ณด๋ ๋ด์ฉ๋ง ๋ณ๊ฒฝํฉ๋๋ค. ํ
์ด ๋ฐ์ํ ๋๋ ๋๊ตฌ๊ฐ ์ด๋ฏธ ์คํ๋ ์ํ์ด๋ฏ๋ก, ๊ธฐ๋ก๋ ํ์ผ, ์คํ๋ ๋ช
๋ น, ์ ์ก๋ ๋คํธ์ํฌ ์์ฒญ์ ์ด๋ฏธ ์ ์ฉ๋์์ต๋๋ค. OpenTelemetry ๋๊ตฌ ์คํฌ ๋ฐ ๋ถ์ ์ด๋ฒคํธ์ ๊ฐ์ ํ
๋ ๋ฉํธ๋ฆฌ๋ ํ
์ด ์คํ๋๊ธฐ ์ ์ ์๋ ์ถ๋ ฅ์ ์บก์ฒํฉ๋๋ค. ๋๊ตฌ ํธ์ถ์ด ์คํ๋๊ธฐ ์ ์ ์ด๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์์ ํ๋ ค๋ฉด ๋์ [PreToolUse](#pretooluse) ํ
์ ์ฌ์ฉํ์ญ์์ค.
2350 2376
2351 ๋์ฒด ๊ฐ์ ๋๊ตฌ์ ์ถ๋ ฅ ํํ์ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ๋ ์ผ๋ฐ ๋ฌธ์์ด์ด ์๋ ๊ตฌ์กฐํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. ์๋ฅผ ๋ค์ด `Bash`๋ `stdout`, `stderr`, `interrupted`, `isImage` ํ๋๊ฐ ์๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ์ ๊ฒฝ์ฐ ๋๊ตฌ์ ์ถ๋ ฅ ์คํค๋ง์ ์ผ์นํ์ง ์๋ ๊ฐ์ ๋ฌด์๋๊ณ ์๋ ์ถ๋ ฅ์ด ์ฌ์ฉ๋ฉ๋๋ค. MCP ๋๊ตฌ ์ถ๋ ฅ์ ์คํค๋ง ๊ฒ์ฆ ์์ด ๊ทธ๋๋ก ์ ๋ฌ๋ฉ๋๋ค. Claude์๊ฒ ํ์ํ ์ค๋ฅ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ฉด Claude๊ฐ ์๋ชป๋ ๊ฐ์ ์ ๋ฐ๋ผ ์์
์ ์งํํ ์ ์์ต๋๋ค.2377 ๋์ฒด ๊ฐ์ ๋๊ตฌ์ ์ถ๋ ฅ ํํ์ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ๋ ์ผ๋ฐ ๋ฌธ์์ด์ด ์๋ ๊ตฌ์กฐํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. ์๋ฅผ ๋ค์ด `Bash`๋ `stdout`, `stderr`, `interrupted`, `isImage` ํ๋๊ฐ ์๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ์ ๊ฒฝ์ฐ ๋๊ตฌ์ ์ถ๋ ฅ ์คํค๋ง์ ์ผ์นํ์ง ์๋ ๊ฐ์ ๋ฌด์๋๊ณ ์๋ ์ถ๋ ฅ์ด ์ฌ์ฉ๋ฉ๋๋ค. MCP ๋๊ตฌ ์ถ๋ ฅ์ ์คํค๋ง ๊ฒ์ฆ ์์ด ๊ทธ๋๋ก ์ ๋ฌ๋ฉ๋๋ค. Claude์๊ฒ ํ์ํ ์ค๋ฅ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ฉด Claude๊ฐ ์๋ชป๋ ๊ฐ์ ์ ๋ฐํ์ผ๋ก ์งํํ ์ ์์ต๋๋ค.
2352</Warning>2378</Warning>
2353 2379
2354<h4 id="annotate-a-result-for-the-auto-mode-classifier">2380<h4 id="annotate-a-result-for-the-auto-mode-classifier">
2355 ์๋ ๋ชจ๋ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ํ ๊ฒฐ๊ณผ ์ฃผ์ ๋ฌ๊ธฐ2381 ์๋ ๋ชจ๋ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ํ ๊ฒฐ๊ณผ ์ฃผ์ ๋ฌ๊ธฐ
2356</h4>2382</h4>
2357 2383
2358`classifierContext`๋ฅผ ๋ฐํํ๋ฉด ๋๊ตฌ ํธ์ถ ๊ฒฐ๊ณผ์ ๊ดํ ์งง์ ๋ฉ๋ชจ๋ฅผ Claude๊ฐ ์๋ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) ๋ถ๋ฅ๊ธฐ์ ๋ณด๋ผ ์ ์์ต๋๋ค. ๋ถ๋ฅ๊ธฐ๋ [๋๊ตฌ ๊ฒฐ๊ณผ ์์ฒด๋ฅผ ๋ฐ์ง ์์ผ๋ฏ๋ก](/docs/ko/permission-modes#how-the-classifier-evaluates-actions), ์ด ํ๋๋ ๋ถ๋ฅ๊ธฐ๊ฐ ์ดํ ์์
์ ๊ฒํ ํ๊ธฐ ์ ์ ํธ์ถ์ด ๋ฐํํ ๋ด์ฉ์ ๊ดํด ์๋ ค ์ค ์ ์๋ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์
๋๋ค. ์ด ํ๋๋ Claude Code v2.1.236 ์ด์์ด ํ์ํฉ๋๋ค.2384`classifierContext`๋ฅผ ๋ฐํํ๋ฉด ๋๊ตฌ ํธ์ถ ๊ฒฐ๊ณผ์ ๋ํ ์งง์ ๋ฉ๋ชจ๋ฅผ Claude๊ฐ ์๋ [์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) ๋ถ๋ฅ๊ธฐ์ ์ ์กํ ์ ์์ต๋๋ค. ๋ถ๋ฅ๊ธฐ๋ [๋๊ตฌ ๊ฒฐ๊ณผ ์์ฒด๋ฅผ ๋ฐ์ง ์์ผ๋ฏ๋ก](/docs/ko/permission-modes#how-the-classifier-evaluates-actions), ์ด ํ๋๋ ๋ถ๋ฅ๊ธฐ๊ฐ ์ดํ ์์
์ ๊ฒํ ํ๊ธฐ ์ ์ ํธ์ถ์ด ๋ฐํํ ๋ด์ฉ์ ๋ํด ์๋ ค ์ค ์ ์๋ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์
๋๋ค. ์ด ํ๋๋ Claude Code v2.1.236 ์ด์์ด ํ์ํฉ๋๋ค.
2359 2385
2360์๋ ์์๋ ์ฟผ๋ฆฌ ์ถ๋ ฅ์ ์ถ์ฒ๋ฅผ ๋ถ๋ฅ๊ธฐ์ ์๋ ค ์ค๋๋ค.2386์๋ ์์๋ ์ฟผ๋ฆฌ ์ถ๋ ฅ์ ์ถ์ฒ๋ฅผ ๋ถ๋ฅ๊ธฐ์ ์๋ ค ์ค๋๋ค.
2361 2387
2368}2394}
2369```2395```
2370 2396
2371๋ถ๋ฅ๊ธฐ๊ฐ ๋ฉ๋ชจ์ ๋ถ์ฌํ๋ ๊ฐ์ค์น๋ ํ
์ ๊ตฌ์ฑํ ์์น์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.2397๋ถ๋ฅ๊ธฐ๊ฐ ๋ฉ๋ชจ์ ๋ถ์ฌํ๋ ๋น์ค์ ํ
์ ๊ตฌ์ฑํ ์์น์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
2372 2398
2373* **Claude Code์์ ๊ตฌ์ฑํ ํ
**: ์ค์ ํ์ผ, ํ๋ฌ๊ทธ์ธ, ์คํฌ, ์์ด์ ํธ frontmatter์ ํ
์ ๊ฒฝ์ฐ ๋ถ๋ฅ๊ธฐ๋ ๋ฉ๋ชจ๋ฅผ ๊ฒ์ฆ๋์ง ์์, ์ ํ๋ฆฌ์ผ์ด์
์ด ์ ๊ณตํ ์ปจํ
์คํธ๋ก ์ทจ๊ธํฉ๋๋ค. ๋ฉ๋ชจ๋ ์ฌ์ฉ์ ์๋๋ฅผ ํ๋ฆฝํ์ง ์์ผ๋ฉฐ, ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์น์ธํ๊ฑฐ๋ ์์ฒญํ๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒฝ์ฐ ๋ถ๋ฅ๊ธฐ๋ ๊ทธ ์ฃผ์ฅ์ ๋ํ ๋ด ์ฌ์ฉ์ ๋ณธ์ธ์ ๋ฉ์์ง์ ๋์กฐํ์ฌ ํ์ธํฉ๋๋ค2399* **Claude Code์์ ๊ตฌ์ฑ๋ ํ
**: ์ค์ ํ์ผ, ํ๋ฌ๊ทธ์ธ, ์คํฌ, ์์ด์ ํธ frontmatter์ ํ
์ ๋ํด ๋ถ๋ฅ๊ธฐ๋ ๋ฉ๋ชจ๋ฅผ ๊ฒ์ฆ๋์ง ์์, ์ ํ๋ฆฌ์ผ์ด์
์ด ์ ๊ณตํ ์ปจํ
์คํธ๋ก ์ทจ๊ธํฉ๋๋ค. ๋ฉ๋ชจ๋ ์ฌ์ฉ์ ์๋๋ฅผ ํ๋ฆฝํ์ง ์์ผ๋ฉฐ, ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์น์ธํ๊ฑฐ๋ ์์ฒญํ๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒฝ์ฐ ๋ถ๋ฅ๊ธฐ๋ ํด๋น ์ฃผ์ฅ์ ๋ํ ๋ด ์ฌ์ฉ์ ๋ณธ์ธ์ ๋ฉ์์ง์ ๋์กฐํ์ฌ ํ์ธํฉ๋๋ค
2374* **์ธํ๋ก์ธ์ค Agent SDK ์ฝ๋ฐฑ**: Claude Code๋ฅผ ๋ด์ฅํ ์ ํ๋ฆฌ์ผ์ด์
์ด ํ
์ [TypeScript SDK ์ฝ๋ฐฑ](/docs/ko/agent-sdk/hooks)์ผ๋ก ๋ฑ๋กํ๊ณ ๋ผ์ด๋ธ ์ธ์
์ค์ ๋ฉ๋ชจ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ, ๋ถ๋ฅ๊ธฐ๋ ๋ฉ๋ชจ์ ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ์ ์ฌ์ฉ์ ์๋๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ง์ ์ ์ฌ์ฉ์๊ฐ ๋ณด๋ธ ๋ฉ์์ง๋ก ๋ถ๋ฅ๊ธฐ๊ฐ ์ธ์ ํ๋ ๋์ ์๊ฑด์ ์ถฉ์กฑํ ์ ์์ง๋ง, ์ฌ์ฉ์ ๋ณธ์ธ์ ๋ฉ์์ง๋ก๋ ํด์ ํ ์ ์๋ ์ฐจ๋จ์ ํด์ ํ์ง ๋ชปํฉ๋๋ค. ์ธ์
์ด ์ฌ๊ฐ๋ ํ์๋ Claude Code๊ฐ ๋ณต์๋ ๋ฉ๋ชจ๋ฅผ ๊ฒ์ฆ๋์ง ์์ ์ปจํ
์คํธ๋ก ์ทจ๊ธํฉ๋๋ค. ๋ ๊ทธ๋ฃน์ ํ
์ด ๋ชจ๋ ๊ฐ์ ํธ์ถ์ ์ฃผ์์ ๋ค๋ ๊ฒฝ์ฐ ๋ถ๋ฅ๊ธฐ๋ ๊ฒฐํฉ๋ ๋ฉ๋ชจ๋ฅผ ๊ฒ์ฆ๋์ง ์์ ๊ฒ์ผ๋ก ์ทจ๊ธํฉ๋๋ค2400* **ํ๋ก์ธ์ค ๋ด Agent SDK ์ฝ๋ฐฑ**: Claude Code๋ฅผ ๋ด์ฅํ ์ ํ๋ฆฌ์ผ์ด์
์ด ํ
์ [TypeScript SDK ์ฝ๋ฐฑ](/docs/ko/agent-sdk/hooks)์ผ๋ก ๋ฑ๋กํ๊ณ ๋ผ์ด๋ธ ์ธ์
์ค์ ๋ฉ๋ชจ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ, ๋ถ๋ฅ๊ธฐ๋ ๋ฉ๋ชจ์ ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ์ ์ฌ์ฉ์ ์๋๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ง์ ์ ๋ถ๋ฅ๊ธฐ๊ฐ ์ฌ์ฉ์๊ฐ ๋ณด๋ธ ๋ฉ์์ง๋ก๋ถํฐ ๋ฐ์๋ค์ผ ๋์ ์๊ฑด์ ์ถฉ์กฑํ ์ ์์ง๋ง, ์ฌ์ฉ์ ๋ณธ์ธ์ ๋ฉ์์ง๋ก๋ ํด์ ํ ์ ์๋ ์ฐจ๋จ์ ํด์ ํ์ง๋ ์์ต๋๋ค. ์ธ์
์ด ์ฌ๊ฐ๋ ํ์๋ Claude Code๊ฐ ๋ณต์๋ ๋ฉ๋ชจ๋ฅผ ๊ฒ์ฆ๋์ง ์์ ์ปจํ
์คํธ๋ก ์ทจ๊ธํฉ๋๋ค. ๋ ๊ทธ๋ฃน์ ํ
์ด ๋ชจ๋ ๊ฐ์ ํธ์ถ์ ์ฃผ์์ ๋ค๋ ๊ฒฝ์ฐ ๋ถ๋ฅ๊ธฐ๋ ๊ฒฐํฉ๋ ๋ฉ๋ชจ๋ฅผ ๊ฒ์ฆ๋์ง ์์ ๊ฒ์ผ๋ก ์ทจ๊ธํฉ๋๋ค
2375 2401
2376Claude Code๋ ๋ฉ๋ชจ๋ฅผ ์ ๋ฌํ ๋ ๋ค์ ์ ํ์ ์ ์ฉํฉ๋๋ค.2402Claude Code๋ ๋ฉ๋ชจ๋ฅผ ์ ๋ฌํ ๋ ๋ค์ ์ ํ์ ์ ์ฉํฉ๋๋ค.
2377 2403
2378* **๊ธธ์ด**: Claude Code๋ ํ๋์ ๋๊ตฌ ํธ์ถ์ ๋ํ ๋ฉ๋ชจ๋ฅผ 2,000์๋ก ์ ํํ๊ณ ๋๋จธ์ง๋ ์๋ผ๋
๋๋ค. ์ด ์ ํ์ ํด๋น ํธ์ถ์ ์๋ตํ๋ ๋ชจ๋ ํ
์ด ๊ณต์ ํฉ๋๋ค2404* **๊ธธ์ด**: Claude Code๋ ํ๋์ ๋๊ตฌ ํธ์ถ์ ๋ํ ๋ฉ๋ชจ๋ฅผ 2,000์๋ก ์ ํํ๊ณ ๋๋จธ์ง๋ ์๋ผ๋
๋๋ค. ์ด ์ ํ์ ํด๋น ํธ์ถ์ ์๋ตํ๋ ๋ชจ๋ ํ
์ด ๊ณต์ ํฉ๋๋ค
2379* **๋๊ธฐ ์๋ต๋ง ํด๋น**: [๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋](#run-hooks-in-the-background) ํ
์ ์๋ต์ Claude Code๊ฐ ๋๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ ํ์ ๋์ฐฉํ๋ฏ๋ก, Claude Code๋ ํด๋น ์๋ต์ ์ด ํ๋๋ฅผ ๋ฌด์ํฉ๋๋ค2405* **๋๊ธฐ ์๋ต๋ง ํด๋น**: Claude Code๋ [๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋](#run-hooks-in-the-background) ํ
์ ์๋ต์ ํฌํจ๋ ์ด ํ๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ํด๋น ์๋ต์ Claude Code๊ฐ ๋๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ ํ์ ๋์ฐฉํ๊ธฐ ๋๋ฌธ์
๋๋ค
2380* **๋ถ๋ฅ๊ธฐ๊ฐ ๊ธฐ๋กํ์ง ์๋ ํธ์ถ**: ๋ถ๋ฅ๊ธฐ์ ํธ๋์คํฌ๋ฆฝํธ๋ ํ์ผ ์ฝ๊ธฐ ๋ฐ ๊ฒ์๊ณผ ๊ฐ์ ์ฝ๊ธฐ ์ ์ฉ ์กฐํ๋ฅผ ์๋ตํฉ๋๋ค. Claude Code๋ ์ด๋ฌํ ํธ์ถ์ ์ฒจ๋ถ๋ ๋ฉ๋ชจ๋ฅผ ํ๊ธฐํฉ๋๋ค2406* **๋ถ๋ฅ๊ธฐ๊ฐ ๊ธฐ๋กํ์ง ์๋ ํธ์ถ**: ๋ถ๋ฅ๊ธฐ์ ํธ๋์คํฌ๋ฆฝํธ๋ ํ์ผ ์ฝ๊ธฐ ๋ฐ ๊ฒ์๊ณผ ๊ฐ์ ์ฝ๊ธฐ ์ ์ฉ ์กฐํ๋ฅผ ์๋ตํฉ๋๋ค. Claude Code๋ ์ด๋ฌํ ํธ์ถ์ ์ฒจ๋ถ๋ ๋ฉ๋ชจ๋ฅผ ๋ฒ๋ฆฝ๋๋ค
2381* **์ฌ์์ฑ๊ณผ์ ์ํธ ์์ฉ**: ๋ฉ๋ชจ๊ฐ `updatedToolOutput`์ผ๋ก ๋์ฒดํ๋ ์ถ๋ ฅ์ ์ค๋ช
ํ๋ ๊ฒฝ์ฐ, ๊ฐ์ ํ
์๋ต์์ ๋ ํ๋๋ฅผ ๋ชจ๋ ๋ฐํํฉ๋๋ค. ํด๋น ์ฌ์์ฑ์ด ๊ฑฐ๋ถ๋๊ฑฐ๋ ๋ค๋ฅธ ํ
์ ์ฌ์์ฑ์ด ์ด๋ฅผ ๋์ฒดํ๋ฉด Claude Code๋ ๋ฉ๋ชจ๋ฅผ ์ญ์ ํฉ๋๋ค. ์ฌ์์ฑ ์์ด ๋ฐํํ ๋ฉ๋ชจ๋ ๋ค๋ฅธ ํ
์ด ์ถ๋ ฅ์ ์ฌ์์ฑํ๋๋ผ๋ Claude Code๊ฐ ์ ๋ฌํฉ๋๋ค2407* **์ฌ์์ฑ๊ณผ์ ์ํธ ์์ฉ**: ๋ฉ๋ชจ๊ฐ `updatedToolOutput`์ผ๋ก ๋์ฒดํ๋ ์ถ๋ ฅ์ ๋ํด ์ค๋ช
ํ๋ ๊ฒฝ์ฐ, ๊ฐ์ ํ
์๋ต์์ ๋ ํ๋๋ฅผ ๋ชจ๋ ๋ฐํํ์ญ์์ค. ํด๋น ์ฌ์์ฑ์ด ๊ฑฐ๋ถ๋๊ฑฐ๋ ๋ค๋ฅธ ํ
์ ์ฌ์์ฑ์ด ์ด๋ฅผ ๋์ฒดํ๋ฉด Claude Code๋ ๋ฉ๋ชจ๋ฅผ ์ญ์ ํฉ๋๋ค. ์ฌ์์ฑ ์์ด ๋ฐํํ ๋ฉ๋ชจ๋ ๋ค๋ฅธ ํ
์ด ์ถ๋ ฅ์ ์ฌ์์ฑํ๋๋ผ๋ Claude Code๊ฐ ์ ๋ฌํฉ๋๋ค
2382 2408
2383<Warning>2409<Warning>
2384 ๋ถ๋ฅ๊ธฐ๋ `classifierContext`์ ๋ฃ์ ๋ด์ฉ์ ์ธ์
์ ํธ์คํ
ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ณด๋ก ์ฝ์ผ๋ฏ๋ก, ์ ๋ขฐํ ์ ์๋ ๋๊ตฌ ์ถ๋ ฅ์ด๋ ์ 3์ ํ
์คํธ๋ฅผ ๋ณต์ฌํด ๋ฃ์ง ๋ง์ธ์. ๋ฉ๋ชจ๋ ์ถ์ฒ์ ๊ดํ ์ฌ์ค์ด๋ ํด๋น ํธ์ถ์ ๊ดํ ์ฌ์ฉ์ ์ง์ ์ฒ๋ผ ์ด ํธ์ถ ํ๋์ ๋ํ ์งง์ ์ฃผ์ฅ์ผ๋ก ์ ์งํ์ธ์. ์ด ํ๋๋ฅผ ๊ด๋ จ ์๋ ๋ฉ์์ง๋ ์ด๋ฒคํธ ์คํธ๋ฆผ์ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉํ์ง ๋ง์ธ์.2410 ๋ถ๋ฅ๊ธฐ๋ `classifierContext`์ ๋ฃ์ ๋ด์ฉ์ ์ธ์
์ ํธ์คํ
ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ณด๋ก ์ฝ์ผ๋ฏ๋ก, ์ ๋ขฐํ ์ ์๋ ๋๊ตฌ ์ถ๋ ฅ์ด๋ ์๋ํํฐ ํ
์คํธ๋ฅผ ์ด ํ๋์ ๋ณต์ฌํ์ง ๋ง์ญ์์ค. ๋ฉ๋ชจ๋ ์ถ์ฒ์ ๋ํ ์ฌ์ค์ด๋ ์ด์ ๋ํ ์ฌ์ฉ์ ์ง์ ๋ฑ ์ด ํ ํธ์ถ์ ๋ํ ์งง์ ์ฃผ์ฅ์ผ๋ก ์ ์งํ๊ณ , ๊ด๋ จ ์๋ ๋ฉ์์ง๋ ์ผ๋ จ์ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
2385</Warning>2411</Warning>
2386 2412
2387<h3 id="posttoolusefailure">2413<h3 id="posttoolusefailure">
2388 PostToolUseFailure2414 PostToolUseFailure
2389</h3>2415</h3>
2390 2416
2391์คํ์ ์์ํ ๋๊ตฌ๊ฐ ์คํจํ ๋ ์คํ๋ฉ๋๋ค. ์ฆ, ๋๊ตฌ๊ฐ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผฐ๊ฑฐ๋ MCP ๋๊ตฌ๊ฐ ์ค๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ์
๋๋ค. ์คํจ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋, ์๋ฆผ์ ๋ณด๋ด๊ฑฐ๋, Claude์๊ฒ ์์ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.2417์คํ์ ์์ํ ๋๊ตฌ๊ฐ ์คํจํ ๋ ์คํ๋ฉ๋๋ค. ์ฆ ๋๊ตฌ๊ฐ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผฐ๊ฑฐ๋ MCP ๋๊ตฌ๊ฐ ์ค๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ์
๋๋ค. ์คํจ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋, ์๋ฆผ์ ๋ณด๋ด๊ฑฐ๋, Claude์๊ฒ ๊ต์ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
2392 2418
2393๋๊ตฌ ์ด๋ฆ๊ณผ ์ผ์นํ๋ฉฐ, ๊ฐ์ PreToolUse์ ๋์ผํฉ๋๋ค.2419PreToolUse์ ๋์ผํ ๊ฐ์ผ๋ก ๋๊ตฌ ์ด๋ฆ์ ๋ํด ์ผ์น์ํต๋๋ค.
2394 2420
2395<Note>2421<Note>
2396 ์ด ์ด๋ฒคํธ๋ ์คํ ์ ์ ๊ฑฐ๋ถ๋ ๋๊ตฌ ํธ์ถ์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ์ ์๋ ๋๊ตฌ ์ด๋ฆ, ์คํค๋ง ๋๋ ๋๊ตฌ๋ณ ๊ฒ์ฆ์ ์คํจํ ์
๋ ฅ, ๊ถํ ๊ฑฐ๋ถ๊ฐ ํด๋นํฉ๋๋ค. ๊ฒ์ฆ ๊ฑฐ๋ถ๋ `tool_use_error` ๊ฒฐ๊ณผ๋ก ๋ฐํ๋๋ฉฐ ํ
์ด ์คํ๋๊ธฐ ์ ์ ๋ฐ์ํ๋ฏ๋ก `PreToolUse`์ `PostToolUseFailure` ๋ชจ๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ถํ ๊ฑฐ๋ถ๋ `PreToolUse`๋ ๋ฐ์์ํค์ง๋ง ์ด ์ด๋ฒคํธ๋ ๋ฐ์์ํค์ง ์์ต๋๋ค. [PermissionDenied](#permissiondenied)๋ฅผ ์ฐธ์กฐํ์ธ์.2422 ์ด ์ด๋ฒคํธ๋ ์คํ ์ ์ ๊ฑฐ๋ถ๋ ๋๊ตฌ ํธ์ถ์ ๋ํด์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ ์ ์๋ ๋๊ตฌ ์ด๋ฆ, ์คํค๋ง ๋๋ ๋๊ตฌ๋ณ ๊ฒ์ฆ์ ์คํจํ ์
๋ ฅ, ๊ถํ ๊ฑฐ๋ถ๊ฐ ํด๋นํฉ๋๋ค. ๊ฒ์ฆ ๊ฑฐ๋ถ๋ `tool_use_error` ๊ฒฐ๊ณผ๋ก ๋ฐํ๋๋ฉฐ ํ
์ด ์คํ๋๊ธฐ ์ ์ ๋ฐ์ํ๋ฏ๋ก `PreToolUse`์ `PostToolUseFailure` ๋ชจ๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ถํ ๊ฑฐ๋ถ๋ `PreToolUse`๋ฅผ ๋ฐ์์ํค์ง๋ง ์ด ์ด๋ฒคํธ๋ ๋ฐ์์ํค์ง ์์ต๋๋ค. [PermissionDenied](#permissiondenied)๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
2397</Note>2423</Note>
2398 2424
2399<h4 id="posttoolusefailure-input">2425<h4 id="posttoolusefailure-input">
2423 2449
2424| ํ๋ | ์ค๋ช
|2450| ํ๋ | ์ค๋ช
|
2425| :- | :- |2451| :- | :- |
2426| `error` | ๋ฌด์์ด ์๋ชป๋์๋์ง ์ค๋ช
ํ๋ ๋ฌธ์์ด. ํ์์ ์คํจํ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค |2452| `error` | ๋ฌด์์ด ์๋ชป๋์๋์ง ์ค๋ช
ํ๋ ๋ฌธ์์ด์
๋๋ค. ํ์์ ์คํจํ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค |
2427| `is_interrupt` | ์ ํ์ boolean. ์คํจ๊ฐ ๋๊ตฌ๊ฐ ๋ณด๊ณ ํ ์ค๋ฅ๊ฐ ์๋๋ผ ์ค๋จ(abort)์ผ๋ก Claude Code์ ๋๋ฌํ ๊ฒฝ์ฐ true์
๋๋ค. ์คํ ์ค์ธ ๋๊ตฌ๋ฅผ ์ทจ์ํ๋ฉด ์ด ํ
์ด ๋ฐ์ํ์ง ์์ผ๋ฉฐ, ๋์ ๋๊ตฌ ๊ฒฐ๊ณผ์ ์ค๋จ ๋ฉ์์ง๊ฐ ํฌํจ๋ฉ๋๋ค |2453| `is_interrupt` | ์ ํ์ ๋ถ์ธ ๊ฐ์
๋๋ค. ์คํจ๊ฐ ๋๊ตฌ๊ฐ ๋ณด๊ณ ํ ์ค๋ฅ๊ฐ ์๋๋ผ ์ค๋จ(abort)์ผ๋ก Claude Code์ ๋๋ฌํ ๊ฒฝ์ฐ true์
๋๋ค. ์คํ ์ค์ธ ๋๊ตฌ๋ฅผ ์ทจ์ํด๋ ์ด ํ
์ ๋ฐ์ํ์ง ์์ผ๋ฉฐ, ๋์ ๋๊ตฌ ๊ฒฐ๊ณผ์ ์ค๋จ ๋ฉ์์ง๊ฐ ํฌํจ๋ฉ๋๋ค |
2428| `duration_ms` | ์ ํ ์ฌํญ. ๋๊ตฌ ์คํ ์๊ฐ(๋ฐ๋ฆฌ์ด)์
๋๋ค. ๊ถํ ํ๋กฌํํธ์ PreToolUse ํ
์์ ์์๋ ์๊ฐ์ ์ ์ธ๋ฉ๋๋ค |2454| `duration_ms` | ์ ํ ์ฌํญ. ๋ฐ๋ฆฌ์ด ๋จ์์ ๋๊ตฌ ์คํ ์๊ฐ์
๋๋ค. ๊ถํ ํ๋กฌํํธ์ PreToolUse ํ
์ ์์๋ ์๊ฐ์ ์ ์ธ๋ฉ๋๋ค |
2429 2455
2430`error` ๋ฌธ์์ด์ ์ผ๋ฐ์ ์ผ๋ก Claude๊ฐ ์คํจํ ๋๊ตฌ์ ๊ฒฐ๊ณผ๋ก ๋ฐ๋ ํ
์คํธ์ ๋์ผํฉ๋๋ค. ํ์์ ๋๊ตฌ์ ์คํจ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ํ
์ ํ๋จ ๊ธฐ์ค์ `tool_name`, `is_interrupt`, ๊ทธ๋ฆฌ๊ณ ์ฒซ ์ค์ `Exit code N`์ผ๋ก ์ผ๊ณ , ๋ฌธ์์ด์ ๋๋จธ์ง ๋ถ๋ถ์ ์์ ์ ์ธ ํ์์ด ์๋ ํ์์ฉ ํ
์คํธ๋ก ์ทจ๊ธํ์ธ์.2456`error` ๋ฌธ์์ด์ ์ผ๋ฐ์ ์ผ๋ก Claude๊ฐ ์คํจํ ๋๊ตฌ์ ๊ฒฐ๊ณผ๋ก ๋ฐ๋ ํ
์คํธ์ ๊ฐ์ต๋๋ค. ํ์์ ๋๊ตฌ์ ์คํจ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ํ
์ `tool_name`, `is_interrupt`, ๊ทธ๋ฆฌ๊ณ ์ฒซ ์ค์ `Exit code N`์ ๊ธฐ์ค์ผ๋ก ๋์ํ๋๋ก ์์ฑํ๊ณ , ๋ฌธ์์ด์ ๋๋จธ์ง ๋ถ๋ถ์ ์์ ์ ์ธ ํ์์ด ์๋ ํ์์ฉ ํ
์คํธ๋ก ์ทจ๊ธํ์ญ์์ค.
2431 2457
2432* Bash์ PowerShell์ ๊ฒฝ์ฐ, ์คํ๋์ด ์ข
๋ฃ๋ ๋ช
๋ น์ ์ฒซ ์ค์ `Exit code N`์ ์์ฑํ๊ณ , ๊ทธ๋ค์์ ๋ช
๋ น์ด ์์ฑํ ์ถ๋ ฅ์ด stdout๊ณผ stderr๊ฐ ์์ธ ํ๋์ ๋ธ๋ก์ผ๋ก ์ด์ด์ง๋๋ค2458* Bash์ PowerShell์ ๊ฒฝ์ฐ, ์คํ ํ ์ข
๋ฃ๋ ๋ช
๋ น์ ์ฒซ ์ค์ `Exit code N`์ ์์ฑํ๊ณ , ๊ทธ ๋ค์ ๋ช
๋ น์ด ์์ฑํ ์ถ๋ ฅ์ stdout๊ณผ stderr๊ฐ ์์ธ ํ๋์ ๋ธ๋ก์ผ๋ก ์ถ๋ ฅํฉ๋๋ค
2433* Claude Code๊ฐ ์
ธ ํ๋ก์ธ์ค ์์ฒด๋ฅผ ์์ํ ์ ์์๋ ๊ฒฝ์ฐ, ํ์ด๋ก๋์ ์ข
๋ฃ ์ฝ๋ ์ค ์์ด ์คํจ ๋ฉ์์ง๋ง ํฌํจ๋ ์๋ ์์ต๋๋ค2459* Claude Code๊ฐ ์
ธ ํ๋ก์ธ์ค ์์ฒด๋ฅผ ์์ํ ์ ์์๋ ๊ฒฝ์ฐ, ํ์ด๋ก๋์๋ ์ข
๋ฃ ์ฝ๋ ์ค ์์ด ์คํจ ๋ฉ์์ง๋ง ํฌํจ๋ ์๋ ์์ต๋๋ค
2434* Claude Code๋ ๊ธด ๋ฌธ์์ด์ ์ค๊ฐ์ `... [N characters truncated] ...` ๋ง์ปค๋ฅผ ์ค์ฌ์ผ๋ก ์๋ผ๋ด๋ฉฐ, `Command timed out after 2m 0s`์ ๊ฐ์ ์์ฒด ์ค์ ์ฝ์
ํ ์ ์์ต๋๋ค2460* Claude Code๋ ๊ธด ๋ฌธ์์ด์ ์ค๊ฐ ๋ถ๋ถ์ `... [N characters truncated] ...` ํ์๋ฅผ ์ค์ฌ์ผ๋ก ์๋ผ๋ด๋ฉฐ, `Command timed out after 2m 0s`์ ๊ฐ์ ์์ฒด ์ค์ ์ฝ์
ํ ์ ์์ต๋๋ค
2435 2461
2436<h4 id="posttoolusefailure-decision-control">2462<h4 id="posttoolusefailure-decision-control">
2437 PostToolUseFailure ๊ฒฐ์ ์ ์ด2463 PostToolUseFailure ๊ฒฐ์ ์ ์ด
2438</h4>2464</h4>
2439 2465
2440`PostToolUseFailure` ํ
์ ๋๊ตฌ ์คํจ ํ Claude์๊ฒ ์ปจํ
์คํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.2466`PostToolUseFailure` ํ
์ ๋๊ตฌ ์คํจ ํ Claude์๊ฒ ์ปจํ
์คํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
2441 2467
2442| ํ๋ | ์ค๋ช
|2468| ํ๋ | ์ค๋ช
|
2443| :- | :- |2469| :- | :- |
2444| `additionalContext` | ์ค๋ฅ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |2470| `additionalContext` | ์ค๋ฅ์ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
2445 2471
2446```json theme={null}2472```json theme={null}
2447{2473{
2456 PostToolBatch2482 PostToolBatch
2457</h3>2483</h3>
2458 2484
2459๋ฐฐ์น์ ๋ชจ๋ ๋๊ตฌ ํธ์ถ์ด ์ฒ๋ฆฌ๋ ํ, Claude Code๊ฐ ๋ชจ๋ธ์ ๋ค์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ ์ ํ ๋ฒ ์คํ๋ฉ๋๋ค. `PostToolUse`๋ ๋๊ตฌ๋ง๋ค ํ ๋ฒ์ฉ ๋ฐ์ํ๋ฏ๋ก, Claude๊ฐ ๋ณ๋ ฌ ๋๊ตฌ ํธ์ถ์ ํ๋ฉด ๋์์ ๋ฐ์ํฉ๋๋ค. `PostToolBatch`๋ ์ ์ฒด ๋ฐฐ์น์ ๋ํด ์ ํํ ํ ๋ฒ ๋ฐ์ํ๋ฏ๋ก, ๋จ์ผ ๋๊ตฌ๊ฐ ์๋ ์คํ๋ ๋๊ตฌ ์งํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ๊ธฐ์ ์ ํฉํ ์์น์
๋๋ค. ์ด ์ด๋ฒคํธ์๋ matcher๊ฐ ์์ต๋๋ค.2485๋ฐฐ์น์ ๋ชจ๋ ๋๊ตฌ ํธ์ถ์ด ์ฒ๋ฆฌ๋ ํ, Claude Code๊ฐ ๋ชจ๋ธ์ ๋ค์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ ์ ํ ๋ฒ ์คํ๋ฉ๋๋ค. `PostToolUse`๋ ๋๊ตฌ๋ง๋ค ํ ๋ฒ์ฉ ๋ฐ์ํ๋ฏ๋ก Claude๊ฐ ๋ณ๋ ฌ ๋๊ตฌ ํธ์ถ์ ํ๋ฉด ๋์์ ๋ฐ์ํฉ๋๋ค. `PostToolBatch`๋ ์ ์ฒด ๋ฐฐ์น์ ๋ํด ์ ํํ ํ ๋ฒ ๋ฐ์ํ๋ฏ๋ก, ๋จ์ผ ๋๊ตฌ๊ฐ ์๋๋ผ ์คํ๋ ๋๊ตฌ ์งํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ๊ธฐ์ ์ ํฉํ ๊ณณ์
๋๋ค. ์ด ์ด๋ฒคํธ์๋ matcher๊ฐ ์์ต๋๋ค.
2460 2486
2461<h4 id="posttoolbatch-input">2487<h4 id="posttoolbatch-input">
2462 PostToolBatch ์
๋ ฅ2488 PostToolBatch ์
๋ ฅ
2463</h4>2489</h4>
2464 2490
2465[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PostToolBatch ํ
์ ๋ฐฐ์น์ ๋ชจ๋ ๋๊ตฌ ํธ์ถ์ ์ค๋ช
ํ๋ ๋ฐฐ์ด์ธ `tool_calls`๋ฅผ ๋ฐ์ต๋๋ค.2491[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, PostToolBatch ํ
์ ๋ฐฐ์น์ ๋ชจ๋ ๋๊ตฌ ํธ์ถ์ ์ค๋ช
ํ๋ ๋ฐฐ์ด์ธ `tool_calls`๋ฅผ ๋ฐ์ต๋๋ค.
2466 2492
2467```json theme={null}2493```json theme={null}
2468{2494{
2488}2514}
2489```2515```
2490 2516
2491`tool_response`์๋ ๋ชจ๋ธ์ด ํด๋น `tool_result` ๋ธ๋ก์์ ๋ฐ๋ ๊ฒ๊ณผ ๋์ผํ ๋ด์ฉ์ด ํฌํจ๋ฉ๋๋ค. ๊ฐ์ ๋๊ตฌ๊ฐ ๋ด๋ณด๋ธ ๊ทธ๋๋ก์ ์ง๋ ฌํ๋ ๋ฌธ์์ด ๋๋ ์ฝํ
์ธ ๋ธ๋ก ๋ฐฐ์ด์
๋๋ค. `Read`์ ๊ฒฝ์ฐ ์์ ํ์ผ ๋ด์ฉ์ด ์๋๋ผ ์ค ๋ฒํธ๊ฐ ์์ ๋ถ์ ํ
์คํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ต์ด ํด ์ ์์ผ๋ฏ๋ก ํ์ํ ํ๋๋ง ํ์ฑํ์ธ์.2517`tool_response`์๋ ๋ชจ๋ธ์ด ํด๋น `tool_result` ๋ธ๋ก์์ ๋ฐ๋ ๊ฒ๊ณผ ๋์ผํ ๋ด์ฉ์ด ํฌํจ๋ฉ๋๋ค. ๊ฐ์ ๋๊ตฌ๊ฐ ๋ด๋ณด๋ธ ๊ทธ๋๋ก์ ์ง๋ ฌํ๋ ๋ฌธ์์ด ๋๋ ์ฝํ
์ธ ๋ธ๋ก ๋ฐฐ์ด์
๋๋ค. `Read`์ ๊ฒฝ์ฐ ์์ ํ์ผ ๋ด์ฉ์ด ์๋๋ผ ์ค ๋ฒํธ๊ฐ ์์ ๋ถ์ ํ
์คํธ์
๋๋ค. ์๋ต์ด ํด ์ ์์ผ๋ฏ๋ก ํ์ํ ํ๋๋ง ํ์ฑํ์ญ์์ค.
2492 2518
2493<Note>2519<Note>
2494 `tool_response`์ ํํ๋ `PostToolUse`์ ๊ฒ๊ณผ ๋ค๋ฆ
๋๋ค. `PostToolUse`๋ `Write`์ ๊ฒฝ์ฐ `{filePath: "...", type: "create"}`์ ๊ฐ์ ๋๊ตฌ์ ๊ตฌ์กฐํ๋ `Output` ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๊ณ , `PostToolBatch`๋ ๋ชจ๋ธ์ด ๋ณด๋ ์ง๋ ฌํ๋ `tool_result` ์ฝํ
์ธ ๋ฅผ ์ ๋ฌํฉ๋๋ค.2520 `tool_response`์ ํํ๋ `PostToolUse`์ ๊ฒ๊ณผ ๋ค๋ฆ
๋๋ค. `PostToolUse`๋ `Write`์ `{filePath: "...", type: "create"}`์ฒ๋ผ ๋๊ตฌ์ ๊ตฌ์กฐํ๋ `Output` ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๊ณ , `PostToolBatch`๋ ๋ชจ๋ธ์ด ๋ณด๋ ์ง๋ ฌํ๋ `tool_result` ์ฝํ
์ธ ๋ฅผ ์ ๋ฌํฉ๋๋ค.
2495</Note>2521</Note>
2496 2522
2497<h4 id="posttoolbatch-decision-control">2523<h4 id="posttoolbatch-decision-control">
2498 PostToolBatch ๊ฒฐ์ ์ ์ด2524 PostToolBatch ๊ฒฐ์ ์ ์ด
2499</h4>2525</h4>
2500 2526
2501`PostToolBatch` ํ
์ Claude๋ฅผ ์ํ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.2527`PostToolBatch` ํ
์ Claude๋ฅผ ์ํ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
2502 2528
2503| ํ๋ | ์ค๋ช
|2529| ํ๋ | ์ค๋ช
|
2504| :- | :- |2530| :- | :- |
2505| `additionalContext` | ๋ค์ ๋ชจ๋ธ ํธ์ถ ์ ์ ํ ๋ฒ ์ฃผ์
๋๋ ์ปจํ
์คํธ ๋ฌธ์์ด. ์ ๋ฌ ๋ฐฉ์, ๋ฃ์ ๋ด์ฉ, ์ฌ๊ฐ๋ ์ธ์
์ด ์ด์ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |2531| `additionalContext` | ๋ค์ ๋ชจ๋ธ ํธ์ถ ์ ์ ํ ๋ฒ ์ฃผ์
๋๋ ์ปจํ
์คํธ ๋ฌธ์์ด์
๋๋ค. ์ ๋ฌ ์ธ๋ถ ์ฌํญ, ํฌํจํ ๋ด์ฉ, ์ฌ๊ฐ๋ ์ธ์
์ด ๊ณผ๊ฑฐ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
2506 2532
2507```json theme={null}2533```json theme={null}
2508{2534{
2513}2539}
2514```2540```
2515 2541
2516`decision: "block"` ๋๋ `continue: false`๋ฅผ ๋ฐํํ๋ฉด ๋ค์ ๋ชจ๋ธ ํธ์ถ ์ ์ ์์ด์ ํฑ ๋ฃจํ๊ฐ ์ค์ง๋ฉ๋๋ค. ์ฐจ๋จ ๋ฉ์์ง๋ JSON์ `reason` ๋๋ `stopReason`, ๋๋ ์ข
๋ฃ ์ฝ๋ 2์ผ ๋์ stderr์์ ๊ฐ์ ธ์ต๋๋ค. ์ด ๋ฉ์์ง๋ ํธ๋์คํฌ๋ฆฝํธ์ ๊ฒฝ๊ณ ๋ก ํ์๋๋ฉฐ ๋ํ์ ๋จ์ผ๋ฏ๋ก, ๋ํ๊ฐ ๊ณ์๋ ๋ Claude๊ฐ ์ด๋ฅผ ๋ณด๊ฒ ๋ฉ๋๋ค.2542`decision: "block"` ๋๋ `continue: false`๋ฅผ ๋ฐํํ๋ฉด ๋ค์ ๋ชจ๋ธ ํธ์ถ ์ ์ ์์ด์ ํฑ ๋ฃจํ๊ฐ ์ค์ง๋ฉ๋๋ค. ์ฐจ๋จ ๋ฉ์์ง๋ JSON์ `reason` ๋๋ `stopReason`์์, ๋๋ ์ข
๋ฃ ์ฝ๋ 2์ ๊ฒฝ์ฐ stderr์์ ๊ฐ์ ธ์ต๋๋ค. ์ด ๋ฉ์์ง๋ ํธ๋์คํฌ๋ฆฝํธ์ ๊ฒฝ๊ณ ๋ก ํ์๋๋ฉฐ ๋ํ์ ๋จ์ ์์ผ๋ฏ๋ก ๋ํ๊ฐ ๊ณ์๋ ๋ Claude๊ฐ ๋ณผ ์ ์์ต๋๋ค.
2517 2543
2518<h3 id="permissiondenied">2544<h3 id="permissiondenied">
2519 PermissionDenied2545 PermissionDenied
2520</h3>2546</h3>
2521 2547
2522[์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)๊ฐ ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํ ๋ ์คํ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ [์๋ ๋ชจ๋์ ๋ณ๊ฐ์ธ ์์ ๊ฒ์ฌ๊ฐ ๋ถ๋ฅ๊ธฐ ์์ฒด์ ์์ฒญ์ ๊ฑฐ๋ถ](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)ํ๊ฑฐ๋ ๋ถ๋ฅ๊ธฐ ์๋ต์ ํ์ฑํ ์ ์์ด์ ๋ถ๋ฅ๊ธฐ ํ์ ์์ด ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ๋ ํฌํจ๋ฉ๋๋ค. ์ด ํ
์ ์๋ ๋ชจ๋์์๋ง ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ถํ ๋ํ ์์์์ ์ง์ ๊ฑฐ๋ถํ๊ฑฐ๋, `PreToolUse` ํ
์ด ํธ์ถ์ ์ฐจ๋จํ๊ฑฐ๋, `deny` ๊ท์น์ด ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ ์คํ๋์ง ์์ต๋๋ค. ๊ฑฐ๋ถ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋, ๊ตฌ์ฑ์ ์กฐ์ ํ๊ฑฐ๋, ๋ชจ๋ธ์๊ฒ ๋๊ตฌ ํธ์ถ์ ์ฌ์๋ํด๋ ๋๋ค๊ณ ์๋ฆฌ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.2548[์๋ ๋ชจ๋](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)๊ฐ ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํ ๋ ์คํ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ [์๋ ๋ชจ๋์ ๋ณ๊ฐ์ธ ์์ ๊ฒ์ฌ๊ฐ ๋ถ๋ฅ๊ธฐ ์์ฒด์ ์์ฒญ์ ๊ฑฐ๋ถํ๊ฑฐ๋](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) ๋ถ๋ฅ๊ธฐ์ ์๋ต์ ํ์ฑํ ์ ์์ด ๋ถ๋ฅ๊ธฐ ํ์ ์์ด ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ๋ ํฌํจ๋ฉ๋๋ค. ์ด ํ
์ ์๋ ๋ชจ๋์์๋ง ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ถํ ๋ํ ์์๋ฅผ ์๋์ผ๋ก ๊ฑฐ๋ถํ๊ฑฐ๋, `PreToolUse` ํ
์ด ํธ์ถ์ ์ฐจ๋จํ๊ฑฐ๋, `deny` ๊ท์น์ด ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ ์คํ๋์ง ์์ต๋๋ค. ๊ฑฐ๋ถ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋, ๊ตฌ์ฑ์ ์กฐ์ ํ๊ฑฐ๋, ๋ชจ๋ธ์ ๋๊ตฌ ํธ์ถ์ ์ฌ์๋ํ ์ ์๋ค๊ณ ์๋ฆฌ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
2523 2549
2524๋๊ตฌ ์ด๋ฆ๊ณผ ์ผ์นํ๋ฉฐ, ๊ฐ์ PreToolUse์ ๋์ผํฉ๋๋ค.2550PreToolUse์ ๋์ผํ ๊ฐ์ผ๋ก ๋๊ตฌ ์ด๋ฆ์ ๋ํด ์ผ์น์ํต๋๋ค.
2525 2551
2526<h4 id="permissiondenied-input">2552<h4 id="permissiondenied-input">
2527 PermissionDenied ์
๋ ฅ2553 PermissionDenied ์
๋ ฅ
2528</h4>2554</h4>
2529 2555
2530[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PermissionDenied ํ
์ `tool_name`, `tool_input`, `tool_use_id`, `reason`์ ๋ฐ์ต๋๋ค. MCP ๋๊ตฌ์ ๊ฒฝ์ฐ [`mcp_server`](#pretooluse-input) ๊ฐ์ฒด๋ ๋ฐ์ต๋๋ค.2556[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, PermissionDenied ํ
์ `tool_name`, `tool_input`, `tool_use_id`, `reason`์ ๋ฐ์ต๋๋ค. MCP ๋๊ตฌ์ ๊ฒฝ์ฐ [`mcp_server`](#pretooluse-input) ๊ฐ์ฒด๋ ๋ฐ์ต๋๋ค.
2531 2557
2532```json theme={null}2558```json theme={null}
2533{2559{
2548 2574
2549| ํ๋ | ์ค๋ช
|2575| ํ๋ | ์ค๋ช
|
2550| :- | :- |2576| :- | :- |
2551| `reason` | ๊ฑฐ๋ถ ์ฌ์ . ๋ถ๋ฅ๊ธฐ ํ์ ์ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ์ธ์
์์ `[Data Exfiltration]`๊ณผ ๊ฐ์ด ์ผ์นํ ๊ท์น ์ด๋ฆ์ ๋๊ดํธ๋ก ํ์ํฉ๋๋ค. ๋ค๋ฅธ ํ์์ [๊ฑฐ๋ถ ๊ฒํ ](/docs/ko/auto-mode-config#review-denials)๋ฅผ ์ฐธ์กฐํ์ธ์. [ํ์ ์๋ ๊ฑฐ๋ถ](#permissiondenied-decision-control)์ ๊ฒฝ์ฐ `Auto mode could not evaluate this action and is blocking it for safety`๋ก ์์ํฉ๋๋ค. ๋ถ๋ฅ๊ธฐ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ด์ ๊ฑฐ๋ถ๋ ๊ฒฝ์ฐ ๊ณ ์ ํ
์คํธ `Classifier unavailable`์
๋๋ค |2577| `reason` | ๊ฑฐ๋ถ ์ด์ ์
๋๋ค. ๋ถ๋ฅ๊ธฐ ํ์ ์ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ์ธ์
์์ `[Data Exfiltration]`์ฒ๋ผ ์ผ์นํ ๊ท์น์ ์ด๋ฆ์ ๋๊ดํธ๋ก ํ์ํฉ๋๋ค. ๋ค๋ฅธ ํ์์ [๊ฑฐ๋ถ ๊ฒํ ](/docs/ko/auto-mode-config#review-denials)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. [ํ์ ์๋ ๊ฑฐ๋ถ](#permissiondenied-decision-control)์ ๊ฒฝ์ฐ `Auto mode could not evaluate this action and is blocking it for safety`๋ก ์์ํฉ๋๋ค. ๋ถ๋ฅ๊ธฐ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ด ๊ฑฐ๋ถ๋ ๊ฒฝ์ฐ ๊ณ ์ ํ
์คํธ `Classifier unavailable`์
๋๋ค |
2552 2578
2553<h4 id="permissiondenied-decision-control">2579<h4 id="permissiondenied-decision-control">
2554 PermissionDenied ๊ฒฐ์ ์ ์ด2580 PermissionDenied ๊ฒฐ์ ์ ์ด
2555</h4>2581</h4>
2556 2582
2557PermissionDenied ํ
์ ๋ชจ๋ธ์๊ฒ ๊ฑฐ๋ถ๋ ๋๊ตฌ ํธ์ถ์ ์ฌ์๋ํด๋ ๋๋ค๊ณ ์๋ฆด ์ ์์ต๋๋ค. `hookSpecificOutput.retry`๋ฅผ `true`๋ก ์ค์ ํ JSON ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.2583PermissionDenied ํ
์ ๊ฑฐ๋ถ๋ ๋๊ตฌ ํธ์ถ์ ์ฌ์๋ํ ์ ์๋ค๊ณ ๋ชจ๋ธ์ ์๋ฆด ์ ์์ต๋๋ค. `hookSpecificOutput.retry`๋ฅผ `true`๋ก ์ค์ ํ JSON ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ญ์์ค.
2558 2584
2559```json theme={null}2585```json theme={null}
2560{2586{
2565}2591}
2566```2592```
2567 2593
2568`retry`๊ฐ `true`์ด๋ฉด Claude Code๋ ๋ชจ๋ธ์๊ฒ ๋๊ตฌ ํธ์ถ์ ์ฌ์๋ํด๋ ๋๋ค๊ณ ์๋ฆฌ๋ ๋ฉ์์ง๋ฅผ ๋ํ์ ์ถ๊ฐํฉ๋๋ค. Claude Code๊ฐ ๊ฑฐ๋ถ ์์ฒด๋ฅผ ๋ฒ๋ณตํ์ง๋ ์์ต๋๋ค. ํ
์ด JSON์ ๋ฐํํ์ง ์๊ฑฐ๋ `retry: false`๋ฅผ ๋ฐํํ๋ฉด ๊ฑฐ๋ถ๊ฐ ์ ์ง๋๊ณ ๋ชจ๋ธ์ ์๋ ๊ฑฐ๋ถ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค.2594`retry`๊ฐ `true`์ด๋ฉด Claude Code๋ ๋ชจ๋ธ์ ๋๊ตฌ ํธ์ถ์ ์ฌ์๋ํ ์ ์๋ค๊ณ ์๋ฆฌ๋ ๋ฉ์์ง๋ฅผ ๋ํ์ ์ถ๊ฐํฉ๋๋ค. Claude Code๊ฐ ๊ฑฐ๋ถ ์์ฒด๋ฅผ ๋๋๋ฆฌ์ง๋ ์์ต๋๋ค. ํ
์ด JSON์ ๋ฐํํ์ง ์๊ฑฐ๋ `retry: false`๋ฅผ ๋ฐํํ๋ฉด ๊ฑฐ๋ถ๊ฐ ์ ์ง๋๊ณ ๋ชจ๋ธ์ ์๋์ ๊ฑฐ๋ถ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค.
2569 2595
2570๋ถ๋ฅ๊ธฐ๊ฐ [์์
์ ๋ํ ํ์ ์ ๋ด๋ฆฌ์ง ๋ชปํ](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) ๊ฒฝ์ฐ, ์ฆ ๋ถ๋ฅ๊ธฐ ์๋ต์ ํ์ฑํ ์ ์๊ฑฐ๋ ์๋ ๋ชจ๋์ ๋ณ๊ฐ์ธ ์์ ๊ฒ์ฌ๊ฐ ๋ถ๋ฅ๊ธฐ ์์ฒด์ ์์ฒญ์ ๊ฑฐ๋ถํ ๊ฒฝ์ฐ, Claude Code๋ `retry: true`๋ฅผ ๋ฌด์ํฉ๋๋ค. ์ด๋ฌํ ๊ฑฐ๋ถ์ ๊ฒฝ์ฐ Claude Code๊ฐ ์ด๋ฏธ ๊ฑฐ๋ถ ๋ฉ์์ง์์ ๋์ค์ ์ฌ์๋ํ ์ง ๋ค์์ผ๋ก ๋์ด๊ฐ์ง๋ฅผ ๋ชจ๋ธ์๊ฒ ์๋ ค ์ค๋๋ค.2596๋ถ๋ฅ๊ธฐ๊ฐ [์์
์ ๋ํ ํ์ ์ ๋ด๋ฆฌ์ง ๋ชปํ](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) ๊ฒฝ์ฐ, ์ฆ ๋ถ๋ฅ๊ธฐ์ ์๋ต์ ํ์ฑํ ์ ์์๊ฑฐ๋ ์๋ ๋ชจ๋์ ๋ณ๊ฐ์ธ ์์ ๊ฒ์ฌ๊ฐ ๋ถ๋ฅ๊ธฐ ์์ฒด์ ์์ฒญ์ ๊ฑฐ๋ถํ ๊ฒฝ์ฐ์๋ Claude Code๊ฐ `retry: true`๋ฅผ ๋ฌด์ํฉ๋๋ค. ์ด๋ฌํ ๊ฑฐ๋ถ์ ๊ฒฝ์ฐ Claude Code๋ ์ด๋ฏธ ๊ฑฐ๋ถ ๋ฉ์์ง์์ ๋์ค์ ์ฌ์๋ํ ์ง ์๋๋ฉด ๋ค์์ผ๋ก ๋์ด๊ฐ์ง ๋ชจ๋ธ์ ์๋ ค ์ค๋๋ค.
2571 2597
2572<h3 id="notification">2598<h3 id="notification">
2573 Notification2599 Notification
2574</h3>2600</h3>
2575 2601
2576Claude Code๊ฐ ์๋ฆผ์ ๋ณด๋ผ ๋ ์คํ๋ฉ๋๋ค. ์๋ฆผ ์ ํ๊ณผ ์ผ์นํฉ๋๋ค. ๋ชจ๋ ์๋ฆผ ์ ํ์ ๋ํด ํ
์ ์คํํ๋ ค๋ฉด matcher๋ฅผ ์๋ตํฉ๋๋ค.2602Claude Code๊ฐ ์๋ฆผ์ ๋ณด๋ผ ๋ ์คํ๋ฉ๋๋ค. ์๋ฆผ ์ ํ์ ๋ํด ์ผ์น์ํต๋๋ค. ๋ชจ๋ ์๋ฆผ ์ ํ์ ๋ํด ํ
์ ์คํํ๋ ค๋ฉด matcher๋ฅผ ์๋ตํ์ญ์์ค.
2577 2603
2578๋ฐ์คํฌํฑ ์๋ฆผ์ ๊บผ ๋์ด๋ ์ด ํ
์ด๋ฒคํธ๋ ์์ ๋ฉ๋๋ค. `notifications_disabled`๋ฅผ ํฌํจํ `preferredNotifChannel` ์ค์ ์ ์๋ฆผ์ ๋ฐ๋ ๋ฐฉ์๋ง ๋ณ๊ฒฝํ ๋ฟ, ํ
์ ์คํ ์ฌ๋ถ์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.2604๋ฐ์คํฌํฑ ์๋ฆผ์ ๊บผ ๋์ด๋ ์ด๋ฌํ ํ
์ด๋ฒคํธ๋ ์์ ๋ฉ๋๋ค. `notifications_disabled`๋ฅผ ํฌํจํ `preferredNotifChannel` ์ค์ ์ ์๋ฆผ์ ๋ฐ๋ ๋ฐฉ์๋ง ๋ณ๊ฒฝํ ๋ฟ, ํ
์คํ ์ฌ๋ถ์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
2579 2605
2580| Matcher | ๋ฐ์ ์์ |2606| Matcher | ๋ฐ์ ์์ |
2581| :- | :- |2607| :- | :- |
2582| `permission_prompt` | Claude๊ฐ ๋๊ตฌ ์ฌ์ฉ ๋๋ ์๋๋ฐ์ค ์ฒ๋ฆฌ๋ ๋ช
๋ น์ [๋คํธ์ํฌ ์์ฒญ](/docs/ko/sandboxing#network-isolation)์ ๋ํ ์น์ธ์ ํ์๋ก ํ๊ณ , ํ๋กฌํํธ๊ฐ ์ฝ 6์ด ๋์ ๋๊ธฐํ ๊ฒฝ์ฐ |2608| `permission_prompt` | Claude๊ฐ ๋๊ตฌ ์ฌ์ฉ ๋๋ ์๋๋ฐ์ค ์ฒ๋ฆฌ๋ ๋ช
๋ น์ [๋คํธ์ํฌ ์์ฒญ](/docs/ko/sandboxing#network-isolation)์ ๋ํ ์ฌ์ฉ์ ์น์ธ์ด ํ์ํ๋ฉฐ, ํ๋กฌํํธ๊ฐ ์ฝ 6์ด๊ฐ ๋๊ธฐํ ๊ฒฝ์ฐ |
2583| `idle_prompt` | Claude๊ฐ ์ฝ 60์ด ์ ์ ์๋ต์ ๋ง์ณค๊ณ ๊ทธ ์ดํ๋ก ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ |2609| `idle_prompt` | Claude๊ฐ ์ฝ 60์ด ์ ์ ์๋ต์ ๋ง์ณค๊ณ ๊ทธ ์ดํ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ |
2584| `auth_success` | ์ธ์ฆ์ด ์๋ฃ๋ ๊ฒฝ์ฐ |2610| `auth_success` | ์ธ์ฆ์ด ์๋ฃ๋ ๊ฒฝ์ฐ |
2585| `elicitation_dialog` | MCP ์๋ฒ๊ฐ elicitation ์์์ ์ด์๊ณ ์ฝ 6์ด ๋์ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ |2611| `elicitation_dialog` | MCP ์๋ฒ๊ฐ elicitation ์์์ ์ด๊ณ ์ฌ์ฉ์๊ฐ ์ฝ 6์ด๊ฐ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ |
2586| `elicitation_url_dialog` | MCP ์๋ฒ๊ฐ ๋ธ๋ผ์ฐ์ URL์ ์ด๋๋ก ์์ฒญํ๊ณ ์ฝ 6์ด ๋์ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ |2612| `elicitation_url_dialog` | MCP ์๋ฒ๊ฐ ๋ธ๋ผ์ฐ์ URL์ ์ด๋๋ก ์์ฒญํ๊ณ ์ฌ์ฉ์๊ฐ ์ฝ 6์ด๊ฐ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ |
2587| `elicitation_complete` | MCP ์๋ฒ๊ฐ [URL ๋ชจ๋ elicitation](#elicitation-input)์ด ์๋ฃ๋์๋ค๊ณ ๋ณด๊ณ ํ ๊ฒฝ์ฐ |2613| `elicitation_complete` | MCP ์๋ฒ๊ฐ [URL ๋ชจ๋ elicitation](#elicitation-input)์ด ์๋ฃ๋์๋ค๊ณ ๋ณด๊ณ ํ ๊ฒฝ์ฐ |
2588| `elicitation_response` | MCP elicitation ์๋ต์ด ์๋ฒ๋ก ๋ค์ ์ ์ก๋ ๊ฒฝ์ฐ |2614| `elicitation_response` | MCP elicitation ์๋ต์ด ์๋ฒ๋ก ๋ค์ ์ ์ก๋ ๊ฒฝ์ฐ |
2589| `agent_needs_input` | ํฐ๋ฏธ๋์์ [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view)๊ฐ ์ด๋ ค ์๋ ๋์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ด ์ฌ์ฉ์ ์
๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์์ํ ๊ฒฝ์ฐ. ํฐ๋ฏธ๋ ์ธ์
์์ [์์ด์ ํธ ํ ํ์์ ํฐ๋ฏธ๋ ์ค์ ์ง๋ฌธ](/docs/ko/agent-teams#choose-a-display-mode)์ด๋ [๋ถ๋ฅ๊ธฐ ์์ฒญ ์๊ธ](/docs/ko/auto-mode-classifier-billing)์ ๊ดํ ์๋ ๋ชจ๋ ์๋ด๊ฐ ํ์๋๊ณ ์ฝ 6์ด ๋์ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฐ์ํฉ๋๋ค |2615| `agent_needs_input` | ํฐ๋ฏธ๋์์ [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view)๊ฐ ์ด๋ ค ์๋ ๋์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ด ์ฌ์ฉ์ ์
๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์์ํ ๊ฒฝ์ฐ. ํฐ๋ฏธ๋ ์ธ์
์ [์์ด์ ํธ ํ ํ์์ ํฐ๋ฏธ๋ ์ค์ ์ง๋ฌธ](/docs/ko/agent-teams#choose-a-display-mode)์ด๋ [๋ถ๋ฅ๊ธฐ ์์ฒญ ์๊ธ](/docs/ko/auto-mode-classifier-billing)์ ๋ํ ์๋ ๋ชจ๋ ์๋ด๊ฐ ํ์๋๊ณ ์ฌ์ฉ์๊ฐ ์ฝ 6์ด๊ฐ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฐ์ํฉ๋๋ค |
2590| `agent_completed` | ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ด ์๋ฃ๋๊ฑฐ๋ ์คํจํ ๊ฒฝ์ฐ. ํฐ๋ฏธ๋์์ [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view)๊ฐ ์ด๋ ค ์๋ ๋์์๋ง ๋ฐ์ํฉ๋๋ค |2616| `agent_completed` | ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ด ์๋ฃ๋๊ฑฐ๋ ์คํจํ ๊ฒฝ์ฐ. ํฐ๋ฏธ๋์์ [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view)๊ฐ ์ด๋ ค ์๋ ๋์์๋ง ๋ฐ์ํฉ๋๋ค |
2591| `quota_auto_resume_fired` | claude.ai ์ฌ์ฉ ํ๋๋ก ์ผ์ ์ค์ง๋์๋ ์์
์ Claude Code๊ฐ ๊ณ์ํ๋ ๊ฒฝ์ฐ: ํ๋๊ฐ ์ฌ์ค์ ๋ ๋, ๋๋ ๋๊ธฐ ์ค์ Claude Code์์ ์ฌ์ฉ๋ ํฌ๋ ๋ง ์ถ๊ฐ, ํ๋ ์
๊ทธ๋ ์ด๋, ๋ชจ๋ธ ์ ํ ๋ฑ ์ฌ์ฉ๋์ ๋ค์ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ์์
์ ํ ๊ฒฝ์ฐ ๋ ์ผ์ฐ ๊ณ์๋๋ฉฐ, [๋ชจ๋ธ ์ค์ ์์ธ](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)๊ฐ ์ ์ฉ๋ฉ๋๋ค |2617| `quota_auto_resume_fired` | claude.ai ์ฌ์ฉ ํ๋๋ก ์ผ์ ์ค์ง๋ ์์
์ Claude Code๊ฐ ๊ณ์ํ๋ ๊ฒฝ์ฐ: ์ฌ์ค์ ์์ ์, ๋๋ ๋๊ธฐ ์ค์ ์ฌ์ฉ๋ ํฌ๋ ๋ง ์ถ๊ฐ, ํ๋ ์
๊ทธ๋ ์ด๋, ๋ชจ๋ธ ์ ํ ๋ฑ Claude Code์์ ์ฌ์ฉ์๊ฐ ํ ์์
์ผ๋ก ๋ค์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ๋ ์ผ์ฐ ๊ณ์ํฉ๋๋ค. ๋จ, [๋ชจ๋ธ ์ค์ ์์ธ](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)๊ฐ ์ ์ฉ๋ฉ๋๋ค |
2592| `quota_auto_resume_stale` | ์ปดํจํฐ๊ฐ ์ฝ 30๋ถ ์ด์ ์ ์ ์ํ์ธ ๋์ claude.ai ์ฌ์ฉ ํ๋๊ฐ ์ฌ์ค์ ๋ ๊ฒฝ์ฐ. Claude Code๋ ๊ณ์ํ๋ ๋์ `Enter`๋ฅผ ๋๋ฅผ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ ์งง์ ์ ์ ํ์๋ ๊ณ์ ์งํํ๋ฉฐ ๋์ `quota_auto_resume_fired`๋ฅผ ๋ฐ์์ํต๋๋ค |2618| `quota_auto_resume_stale` | ์ปดํจํฐ๊ฐ ์ฝ 30๋ถ ์ด์ ์ ์ ์ํ์ธ ๋์ claude.ai ์ฌ์ฉ ํ๋๊ฐ ์ฌ์ค์ ๋ ๊ฒฝ์ฐ. Claude Code๋ ๊ณ์ํ์ง ์๊ณ ์ฌ์ฉ์๊ฐ `Enter`๋ฅผ ๋๋ฅผ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ ์งง์ ์ ์ ํ์๋ ๊ณ์ ์งํํ๋ฉฐ ๋์ `quota_auto_resume_fired`๋ฅผ ๋ฐ์์ํต๋๋ค |
2593| `quota_auto_resume_disabled` | Claude Code๊ฐ ์์
์ ๊ณ์ํ์ง ์๊ณ claude.ai ์ฌ์ฉ ํ๋ ๋๊ธฐ๋ฅผ ์ข
๋ฃํ๋ ๊ฒฝ์ฐ: [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)์ด ๊บผ์ก๊ฑฐ๋ Claude Code๊ฐ ์ค์ค๋ก ์์ํ ๋๊ธฐ ์ค์ ์ฌ์ค์ ์์ ์ด 24์๊ฐ ์ด์ ๋ค๋ก ๋ฐ๋ฆฐ ๊ฒฝ์ฐ, ๊ณ์๋ ์์
์ด ๊ณ์ ํ๋์ ๋๋ฌํ ๊ฒฝ์ฐ, ๋๋ ๊ณ์ ์งํ์ด ๋ชจ๋ธ์ ๋๋ฌํ๊ธฐ ์ ์ ์ฐจ๋จ๋ ๊ฒฝ์ฐ์
๋๋ค. `Esc` ๋๋ `Ctrl+C`๋ฅผ ๋๋ฅด๊ฑฐ๋ **Don't continue automatically**๋ฅผ ์ ํํ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ์ง ์์ต๋๋ค |2619| `quota_auto_resume_disabled` | Claude Code๊ฐ ์์
์ ๊ณ์ํ์ง ์๊ณ claude.ai ์ฌ์ฉ ํ๋ ๋๊ธฐ๋ฅผ ์ข
๋ฃํ ๊ฒฝ์ฐ: Claude Code๊ฐ ์ค์ค๋ก ์์ํ ๋๊ธฐ ์ค์ [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)์ด ๊บผ์ก๊ฑฐ๋ ์ฌ์ค์ ์์ ์ด 24์๊ฐ ์ด์ ๋ค๋ก ๋ฐ๋ฆฐ ๊ฒฝ์ฐ, ๊ณ์ํ ์์
์ด ๊ณ์ ํ๋์ ๋๋ฌํ ๊ฒฝ์ฐ, ๋๋ ๊ณ์ ์งํ์ด ๋ชจ๋ธ์ ๋๋ฌํ๊ธฐ ์ ์ ์ฐจ๋จ๋ ๊ฒฝ์ฐ์
๋๋ค. ์ฌ์ฉ์๊ฐ `Esc` ๋๋ `Ctrl+C`๋ฅผ ๋๋ฅด๊ฑฐ๋ **Don't continue automatically**๋ฅผ ์ ํํ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ์ง ์์ต๋๋ค |
2594 2620
2595`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` ์ ํ์ Claude Code v2.1.234 ์ด์์ด ํ์ํฉ๋๋ค.2621`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` ์ ํ์ Claude Code v2.1.234 ์ด์์ด ํ์ํฉ๋๋ค.
2596 2622
2599ํ์์ ํฐ๋ฏธ๋ ์ค์ ์ง๋ฌธ์ ๋ํ `agent_needs_input`์ Claude Code v2.1.248 ์ด์์ด ํ์ํฉ๋๋ค.2625ํ์์ ํฐ๋ฏธ๋ ์ค์ ์ง๋ฌธ์ ๋ํ `agent_needs_input`์ Claude Code v2.1.248 ์ด์์ด ํ์ํฉ๋๋ค.
2600 2626
2601<Note>2627<Note>
2602 `permission_prompt`, `idle_prompt`, `elicitation_dialog`, `elicitation_url_dialog` ์ ํ์ ๋ฐ์คํฌํฑ ์๋ฆผ๊ณผ ํ์ด๋ฐ์ ๊ณต์ ํ๋ฏ๋ก, ํฐ๋ฏธ๋ ์ธ์
์์๋ ์ฌ์ฉ์๊ฐ ํฐ๋ฏธ๋์ ๋ ๋ ์๋ ๊ฒ์ผ๋ก ๋ณด์ผ ๋๋ง ํ์๋ฉ๋๋ค.2628 `permission_prompt`, `idle_prompt`, `elicitation_dialog`, `elicitation_url_dialog` ์ ํ์ ๋ฐ์คํฌํฑ ์๋ฆผ๊ณผ ํ์ด๋ฐ์ ๊ณต์ ํ๋ฏ๋ก, ํฐ๋ฏธ๋ ์ธ์
์์๋ ์ฌ์ฉ์๊ฐ ํฐ๋ฏธ๋์์ ์๋ฆฌ๋ฅผ ๋น์ด ๊ฒ์ผ๋ก ๋ณด์ผ ๋๋ง ํ์๋ฉ๋๋ค.
2603 2629
2604 * `permission_prompt`๋ ์ฝ 6์ด ๋์ ์
๋ ฅํ์ง ์์ผ๋ฉด ๋ฐ์ํฉ๋๋ค. ํ์ด๋จธ๋ ๊ถํ ํ๋กฌํํธ๊ฐ ๋ํ๋ ๋ ์์๋๋ฉฐ, ํค๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์ฐ๊ธฐ๋ฉ๋๋ค. Claude๊ฐ ๋๊ตฌ ์ฌ์ฉ ๊ถํ์ ์์ฒญํ ๋ ์ฆ์ ํ
์ ์คํํ๋ ค๋ฉด ๋์ [PermissionRequest](#permissionrequest)๋ฅผ ์ฌ์ฉํ์ธ์.2630 * `permission_prompt`๋ ์ฌ์ฉ์๊ฐ ์ฝ 6์ด๊ฐ ์
๋ ฅํ์ง ์์ผ๋ฉด ๋ฐ์ํฉ๋๋ค. ํ์ด๋จธ๋ ๊ถํ ํ๋กฌํํธ๊ฐ ๋ํ๋ ๋ ์์๋๋ฉฐ, ํค๋ฅผ ์
๋ ฅํ ๋๋ง๋ค ์ฐ๊ธฐ๋ฉ๋๋ค. Claude๊ฐ ๋๊ตฌ ์ฌ์ฉ ๊ถํ์ ์์ฒญํ ๋ ์ฆ์ ํ
์ ์คํํ๋ ค๋ฉด ๋์ [PermissionRequest](#permissionrequest)๋ฅผ ์ฌ์ฉํ์ญ์์ค.
2605 * `idle_prompt`๋ Claude๊ฐ ์๋ต์ ๋ง์น ํ ์ฝ 60์ด ๋ค์ ๋ฐ์ํ๋ฉฐ, ๊ทธ ์ดํ๋ก ์
๋ ฅํ์ง ์์๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋ [์๋ธ์์ด์ ํธ](/docs/ko/sub-agents) ๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ด์ ํธ๊ฐ ์คํ ์ค์ด์ง ์์ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค. Claude Code๋ claude.ai ์ฌ์ฉ ํ๋๊ฐ ์ฌ์ค์ ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์์๋ `idle_prompt`๋ฅผ ๋ณด๋ด์ง ์์ต๋๋ค. ๋๊ธฐ๊ฐ ์ค์ค๋ก ์ข
๋ฃ๋๋ฉด ๋์ `quota_auto_resume_*` ์ ํ ์ค ํ๋๊ฐ ๋ฐ์ํฉ๋๋ค.2631 * `idle_prompt`๋ Claude๊ฐ ์๋ต์ ๋ง์น ํ ์ฝ 60์ด ๋ค์ ๋ฐ์ํ๋ฉฐ, ๊ทธ ์ดํ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ์ง ์์๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋ [์๋ธ์์ด์ ํธ](/docs/ko/sub-agents)์ ๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ด์ ํธ๊ฐ ์คํ ์ค์ด์ง ์์ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค. Claude Code๋ claude.ai ์ฌ์ฉ ํ๋ ์ฌ์ค์ ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์์๋ `idle_prompt`๋ฅผ ๋ณด๋ด์ง ์์ต๋๋ค. ๋๊ธฐ๊ฐ ์์ฒด์ ์ผ๋ก ์ข
๋ฃ๋๋ฉด ๋์ `quota_auto_resume_*` ์ ํ ์ค ํ๋๊ฐ ๋ฐ์ํฉ๋๋ค.
2606 * elicitation ์์์ ๊ฒฝ์ฐ `elicitation_dialog`, ๋ธ๋ผ์ฐ์ URL ์์ฒญ์ ๊ฒฝ์ฐ `elicitation_url_dialog`๋ ์ฝ 6์ด ๋์ ์
๋ ฅํ์ง ์์ผ๋ฉด ๋ฐ์ํฉ๋๋ค. ๋ ์ ํ ๋ชจ๋ `permission_prompt`์ ๋์ผํ 6์ด ๊ธฐ์ค์ ๊ณต์ ํฉ๋๋ค. ํ์ด๋จธ๋ ๋ํ ์์๊ฐ ๋ํ๋ ๋ ์์๋๋ฉฐ, ํค๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์ฐ๊ธฐ๋ฉ๋๋ค.2632 * elicitation ์์์ ๋ํ `elicitation_dialog` ๋๋ ๋ธ๋ผ์ฐ์ URL ์์ฒญ์ ๋ํ `elicitation_url_dialog`๋ ์ฌ์ฉ์๊ฐ ์ฝ 6์ด๊ฐ ์
๋ ฅํ์ง ์์ผ๋ฉด ๋ฐ์ํฉ๋๋ค. ๋ ๋ค `permission_prompt`์ ๋์ผํ 6์ด ๊ธฐ์ค์ ๊ณต์ ํฉ๋๋ค. ํ์ด๋จธ๋ ๋ํ ์์๊ฐ ๋ํ๋ ๋ ์์๋๋ฉฐ, ํค๋ฅผ ์
๋ ฅํ ๋๋ง๋ค ์ฐ๊ธฐ๋ฉ๋๋ค.
2607 2633
2608 ๋ค๋ฅธ ๋ํ ์์๊ฐ ํ๋ฉด์ ์๋ ๋์ ๋์ฐฉํ ๊ถํ ์์ฒญ์ด๋ elicitation๋ ์์ฒญ์ด ๋์ฐฉํ ์์ ๋ถํฐ ๊ณ์ฐ๋๋ ๋์ผํ 6์ด ๊ธฐ์ค์ด ์ ์ฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์์ฒญ์ด ์ด๋ฆฐ ๋ํ ์์ ๋ค์์ ์ฌ์ ํ ๋๊ธฐ ์ค์ธ ๋์์๋ ํด๋น ์๋ฆผ์ด ๋์ฐฉํ ์ ์์ต๋๋ค.2634 ๋ค๋ฅธ ๋ํ ์์๊ฐ ํ๋ฉด์ ํ์๋์ด ์๋ ๋์ ๋์ฐฉํ ๊ถํ ์์ฒญ์ด๋ elicitation๋ ๋์ผํ 6์ด ๊ธฐ์ค์ ์ ์งํ๋ฉฐ, ์์ฒญ์ด ๋์ฐฉํ ์์ ๋ถํฐ ์๊ฐ์ ์ฝ๋๋ค. ์์ฒญ์ด ์ด๋ฆฐ ๋ํ ์์ ๋ค์์ ์์ง ๋๊ธฐ ์ค์ธ ๋์์๋ ์๋ฆผ์ด ์ ๋ฌ๋ ์ ์์ต๋๋ค.
2609</Note>2635</Note>
2610 2636
2611Claude Code๊ฐ ๊ถํ ์์ฒญ์ Agent SDK์ [`canUseTool` ์ฝ๋ฐฑ](/docs/ko/agent-sdk/user-input)์ผ๋ก ๋ณด๋ด๋ ์ธ์
์์๋ `permission_prompt`์ ํ์ด๋ฐ์ด ๋ค๋ฆ
๋๋ค. Claude Desktop๊ณผ VS Code ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์ด ๋ฐฉ์์ผ๋ก Claude Code๋ฅผ ํธ์คํ
ํฉ๋๋ค.2637Claude Code๊ฐ ๊ถํ ์์ฒญ์ Agent SDK์ [`canUseTool` ์ฝ๋ฐฑ](/docs/ko/agent-sdk/user-input)์ผ๋ก ๋ณด๋ด๋ ์ธ์
์์๋ `permission_prompt`์ ํ์ด๋ฐ์ด ๋ค๋ฆ
๋๋ค. Claude Desktop๊ณผ VS Code ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์ด ๋ฐฉ์์ผ๋ก Claude Code๋ฅผ ํธ์คํ
ํฉ๋๋ค.
2612 2638
2613* `permission_prompt`๋ Claude๊ฐ ๊ถํ์ ์์ฒญํ ํ ์ฝ 6์ด ๋ค์ ๋ฐ์ํฉ๋๋ค. ์
๋ ฅ ์ค์ด์ด๋ Claude Code๋ ์ด๋ฅผ ์ฐ๊ธฐํ์ง ์์ต๋๋ค.2639* `permission_prompt`๋ Claude๊ฐ ๊ถํ์ ์์ฒญํ ํ ์ฝ 6์ด ๋ค์ ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์
๋ ฅํ๋ ๋์์๋ Claude Code๋ ์ด๋ฅผ ์ฐ๊ธฐํ์ง ์์ต๋๋ค.
2614* ์ฌ์ฉ์๋ [PermissionRequest](#permissionrequest) ํ
์ด ๊ทธ๋ณด๋ค ๋จผ์ ์๋ตํ๋ฉด Claude Code๋ `permission_prompt`๋ฅผ ์คํํ์ง ์์ต๋๋ค.2640* ์ฌ์ฉ์ ๋๋ [PermissionRequest](#permissionrequest) ํ
์ด ๊ทธ๋ณด๋ค ๋จผ์ ์๋ตํ๋ฉด Claude Code๋ `permission_prompt`๋ฅผ ์คํํ์ง ์์ต๋๋ค.
2615* ์ด๋ฌํ ์ธ์
์์ `permission_prompt`๋ฅผ ๋๋ ค๋ฉด [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ko/env-vars)๋ฅผ `1`๋ก ์ค์ ํฉ๋๋ค.2641* ์ด๋ฌํ ์ธ์
์์ `permission_prompt`๋ฅผ ๋๋ ค๋ฉด [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ko/env-vars)๋ฅผ `1`๋ก ์ค์ ํ์ญ์์ค.
2616 2642
2617v2.1.233 ์ด์ ์๋ ์ด๋ฌํ ์ธ์
์์ `permission_prompt`๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค.2643v2.1.233 ์ด์ ์๋ ์ด๋ฌํ ์ธ์
์์ `permission_prompt`๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค.
2618 2644
2619์๋ฆผ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ํธ๋ค๋ฌ๋ฅผ ์คํํ๋ ค๋ฉด ๋ณ๋์ matcher๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๊ตฌ์ฑ์ Claude๊ฐ ๊ถํ ์น์ธ์ ํ์๋ก ํ ๋ ๊ถํ ์ ์ฉ ์๋ฆผ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ , Claude๊ฐ ์ ํด ์ํ์ผ ๋ ๋ค๋ฅธ ์๋ฆผ์ ์คํํฉ๋๋ค.2645์๋ฆผ ์ ํ์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ํธ๋ค๋ฌ๋ฅผ ์คํํ๋ ค๋ฉด ๋ณ๋์ matcher๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ด ๊ตฌ์ฑ์ Claude์๊ฒ ๊ถํ ์น์ธ์ด ํ์ํ ๋ ๊ถํ ์ ์ฉ ์๋ฆผ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ , Claude๊ฐ ์ ํด ์ํ์ผ ๋ ๋ค๋ฅธ ์๋ฆผ์ ์คํํฉ๋๋ค.
2620 2646
2621```json theme={null}2647```json theme={null}
2622{2648{
2649 Notification ์
๋ ฅ2675 Notification ์
๋ ฅ
2650</h4>2676</h4>
2651 2677
2652[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ Notification ํ
์ ์๋ฆผ ํ
์คํธ๊ฐ ๋ด๊ธด `message`, ์ ํ์ `title`, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ ํ์ด ๋ฐ์ํ๋์ง ๋ํ๋ด๋ `notification_type`์ ๋ฐ์ต๋๋ค.2678[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, Notification ํ
์ ์๋ฆผ ํ
์คํธ๊ฐ ๋ด๊ธด `message`, ์ ํ์ `title`, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ํ ์ ํ์ ๋ํ๋ด๋ `notification_type`์ ๋ฐ์ต๋๋ค.
2653 2679
2654```json theme={null}2680```json theme={null}
2655{2681{
2663}2689}
2664```2690```
2665 2691
2666Notification ํ
์ ์๋ฆผ์ ์ฐจ๋จํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. Claude Code๋ `systemMessage` ๋ฐ `continue` ํ๋๋ฅผ ํ๊ธฐํ์ง๋ง [`terminalSequence`](#emit-terminal-notifications)๋ ์ฌ์ ํ ๋ด๋ณด๋ด๋ฉฐ, ๋ฐ์คํฌํฑ ์๋ฆผ ์์๊ฐ ๋ฐ๋ก ์ด๋ฅผ ํ์ฉํฉ๋๋ค. Notification ํ
์ ์ธ๋ถ ์๋น์ค๋ก ์๋ฆผ์ ์ ๋ฌํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ถ์ ํจ๊ณผ๋ฅผ ์ํ ๊ฒ์
๋๋ค.2692Notification ํ
์ ์๋ฆผ์ ์ฐจ๋จํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. Claude Code๋ `systemMessage` ๋ฐ `continue` ํ๋๋ฅผ ๋ฒ๋ฆฌ์ง๋ง [`terminalSequence`](#emit-terminal-notifications)๋ ๊ณ์ ๋ด๋ณด๋ด๋ฉฐ, ๋ฐ์คํฌํฑ ์๋ฆผ ์์๊ฐ ์ด๋ฅผ ํ์ฉํฉ๋๋ค. Notification ํ
์ ์๋ฆผ์ ์ธ๋ถ ์๋น์ค๋ก ์ ๋ฌํ๋ ๋ฑ์ ๋ถ์ ํจ๊ณผ๋ฅผ ์ํ ๊ฒ์
๋๋ค.
2667 2693
2668<h3 id="subagentstart">2694<h3 id="subagentstart">
2669 SubagentStart2695 SubagentStart
2670</h3>2696</h3>
2671 2697
2672Claude๊ฐ Agent ๋๊ตฌ๋ก ์๋ธ์์ด์ ํธ๋ฅผ ์์ฑํ ๋, Claude๊ฐ [์๋ธ์์ด์ ํธ๋ฅผ ์ฌ๊ฐํ ๋](/docs/ko/sub-agents#resume-subagents), ๊ทธ๋ฆฌ๊ณ ์ธํ๋ก์ธ์ค [์์ด์ ํธ ํ](/docs/ko/agent-teams) ํ์์ด ์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ๋๋ง๋ค ์คํ๋ฉ๋๋ค. ์์ด์ ํธ ์ ํ ์ด๋ฆ์ผ๋ก ํํฐ๋งํ๋ matcher๋ฅผ ์ง์ํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ์์ด์ ํธ์ ๊ฒฝ์ฐ `general-purpose`, `Explore`, `Plan`๊ณผ ๊ฐ์ ์์ด์ ํธ ์ด๋ฆ์
๋๋ค. [์ฌ์ฉ์ ์ง์ ์๋ธ์์ด์ ํธ](/docs/ko/sub-agents)์ ๊ฒฝ์ฐ ํ์ผ ์ด๋ฆ์ด ์๋ ์์ด์ ํธ frontmatter์ `name` ํ๋์
๋๋ค.2698Claude๊ฐ Agent ๋๊ตฌ๋ก ์๋ธ์์ด์ ํธ๋ฅผ ์์ฑํ ๋, Claude๊ฐ [์๋ธ์์ด์ ํธ๋ฅผ ์ฌ๊ฐํ ](/docs/ko/sub-agents#resume-subagents) ๋, ๊ทธ๋ฆฌ๊ณ ํ๋ก์ธ์ค ๋ด [์์ด์ ํธ ํ](/docs/ko/agent-teams) ํ์์ด ์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ๋๋ง๋ค ์คํ๋ฉ๋๋ค. ์์ด์ ํธ ์ ํ ์ด๋ฆ์ผ๋ก ํํฐ๋งํ๋ matcher๋ฅผ ์ง์ํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต ์์ด์ ํธ์ ๊ฒฝ์ฐ `general-purpose`, `Explore`, `Plan`๊ณผ ๊ฐ์ ์์ด์ ํธ ์ด๋ฆ์
๋๋ค. [์ฌ์ฉ์ ์ ์ ์๋ธ์์ด์ ํธ](/docs/ko/sub-agents)์ ๊ฒฝ์ฐ ํ์ผ ์ด๋ฆ์ด ์๋๋ผ ์์ด์ ํธ frontmatter์ `name` ํ๋์
๋๋ค.
2673 2699
2674[ํ๋ฌ๊ทธ์ธ](/docs/ko/plugins/overview)์ด ์ ๊ณตํ๋ ์๋ธ์์ด์ ํธ์ ๊ฒฝ์ฐ, ์์ด์ ํธ ์ ํ์ frontmatter์ ์ด๋ฆ๋ง์ด ์๋๋ผ `my-plugin:reviewer`์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์๋ณ์์
๋๋ค. ์ฝ๋ก ์ผ๋ก ์ธํด ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์ด๋ฆ์ ์ ๊ท ํํ์ ๊ฒฝ๋ก๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก, ์ ํํ ์ผ์น์ํค๋ ค๋ฉด matcher๋ฅผ `^`์ `$`๋ก ๊ณ ์ ํฉ๋๋ค: `^my-plugin:reviewer$`.2700[ํ๋ฌ๊ทธ์ธ](/docs/ko/plugins/overview)์ผ๋ก ์ ๊ณต๋๋ ์๋ธ์์ด์ ํธ์ ๊ฒฝ์ฐ, ์์ด์ ํธ ์ ํ์ frontmatter์ ์ด๋ฆ ์์ฒด๊ฐ ์๋๋ผ `my-plugin:reviewer`์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์๋ณ์์
๋๋ค. ์ฝ๋ก ๋๋ฌธ์ ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์ด๋ฆ์ ์ ๊ท์ ๊ฒฝ๋ก๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก, ์ ํํ ์ผ์น์ํค๋ ค๋ฉด matcher๋ฅผ `^`์ `$`๋ก ๊ณ ์ ํ์ญ์์ค: `^my-plugin:reviewer$`.
2675 2701
2676<h4 id="subagentstart-input">2702<h4 id="subagentstart-input">
2677 SubagentStart ์
๋ ฅ2703 SubagentStart ์
๋ ฅ
2678</h4>2704</h4>
2679 2705
2680[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ SubagentStart ํ
์ ์๋ธ์์ด์ ํธ์ ๊ณ ์ ์๋ณ์๊ฐ ๋ด๊ธด `agent_id`์ matcher๊ฐ ํํฐ๋งํ๋ ์์ด์ ํธ ์ด๋ฆ์ด ๋ด๊ธด `agent_type`์ ๋ฐ์ต๋๋ค.2706[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, SubagentStart ํ
์ ์๋ธ์์ด์ ํธ์ ๊ณ ์ ์๋ณ์๊ฐ ๋ด๊ธด `agent_id`์ matcher๊ฐ ํํฐ๋งํ๋ ์์ด์ ํธ ์ด๋ฆ์ด ๋ด๊ธด `agent_type`์ ๋ฐ์ต๋๋ค.
2681 2707
2682```json theme={null}2708```json theme={null}
2683{2709{
2690}2716}
2691```2717```
2692 2718
2693SubagentStart ํ
์ ์๋ธ์์ด์ ํธ ์์ฑ์ ์ฐจ๋จํ ์ ์์ง๋ง ์๋ธ์์ด์ ํธ์ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ๋ค์์ ๋ฐํํ ์ ์์ต๋๋ค.2719SubagentStart ํ
์ ์๋ธ์์ด์ ํธ ์์ฑ์ ์ฐจ๋จํ ์ ์์ง๋ง, ์๋ธ์์ด์ ํธ์ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ๋ค์์ ๋ฐํํ ์ ์์ต๋๋ค.
2694 2720
2695| ํ๋ | ์ค๋ช
|2721| ํ๋ | ์ค๋ช
|
2696| :- | :- |2722| :- | :- |
2697| `additionalContext` | ์๋ธ์์ด์ ํธ์ ๋ํ ์์ ์์ , ์ฒซ ํ๋กฌํํธ ์ ์ ์๋ธ์์ด์ ํธ์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |2723| `additionalContext` | ์๋ธ์์ด์ ํธ ๋ํ ์์ ์ ์ฒซ ํ๋กฌํํธ ์ ์ ์๋ธ์์ด์ ํธ์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |
2698 2724
2699```json theme={null}2725```json theme={null}
2700{2726{
2705}2731}
2706```2732```
2707 2733
2708๊ฐ์ ์๋ธ์์ด์ ํธ์ ๋ํด ํ
์ด ๋ค์ ์คํ๋๋ฉด, Claude Code๋ ์๋ธ์์ด์ ํธ์ ์ปจํ
์คํธ์ ์ด์ ์คํ์ ์ฌ๋ณธ์ด ์์ง ์๋ ๊ฒฝ์ฐ์๋ง ๋ฐํ๋ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํฉ๋๋ค. ์์ ์ ์ฃผ์
๋ ์ฌ๋ณธ์ ๊ทธ๋๋ก ์ ์ง๋๋ฏ๋ก ์๋ธ์์ด์ ํธ์ [ํ๋กฌํํธ ์บ์](/docs/ko/prompt-caching#subagents-and-the-cache)๊ฐ ์์๋์ง ์์ต๋๋ค. [์๋ ์์ถ](/docs/ko/sub-agents#auto-compaction)์ด ํด๋น ์ฌ๋ณธ์ ํ๊ธฐํ ํ์๋ Claude Code๊ฐ ๋ค์ ์คํ์ ์ปจํ
์คํธ๋ฅผ ๋ค์ ์ฃผ์
ํฉ๋๋ค.2734๊ฐ์ ์๋ธ์์ด์ ํธ์ ๋ํด ํ
์ด ๋ค์ ์คํ๋๋ฉด, Claude Code๋ ์๋ธ์์ด์ ํธ์ ์ปจํ
์คํธ์ ์ด์ ์คํ์ ์ฌ๋ณธ์ด ์์ง ์๋ ๊ฒฝ์ฐ์๋ง ๋ฐํ๋ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํฉ๋๋ค. ์์ ์ ์ฃผ์
๋ ์ฌ๋ณธ์ ๊ทธ๋๋ก ์ ์ง๋๋ฏ๋ก ์๋ธ์์ด์ ํธ์ [ํ๋กฌํํธ ์บ์](/docs/ko/prompt-caching#subagents-and-the-cache)๊ฐ ์์๋์ง ์์ต๋๋ค. [์๋ ์์ถ](/docs/ko/sub-agents#auto-compaction)์ด ํด๋น ์ฌ๋ณธ์ ๋ฒ๋ฆฐ ํ์๋ Claude Code๊ฐ ๋ค์ ์คํ์ ์ปจํ
์คํธ๋ฅผ ๋ค์ ์ฃผ์
ํฉ๋๋ค.
2709 2735
2710<h3 id="subagentstop">2736<h3 id="subagentstop">
2711 SubagentStop2737 SubagentStop
2712</h3>2738</h3>
2713 2739
2714Claude Code ์๋ธ์์ด์ ํธ๊ฐ ์๋ต์ ๋ง์ณค์ ๋ ์คํ๋ฉ๋๋ค. ์์ด์ ํธ ์ ํ๊ณผ ์ผ์นํ๋ฉฐ, ๊ฐ์ SubagentStart์ ๋์ผํฉ๋๋ค.2740Claude Code ์๋ธ์์ด์ ํธ๊ฐ ์๋ต์ ๋ง์ณค์ ๋ ์คํ๋ฉ๋๋ค. SubagentStart์ ๋์ผํ ๊ฐ์ผ๋ก ์์ด์ ํธ ์ ํ์ ๋ํด ์ผ์น์ํต๋๋ค.
2715 2741
2716<h4 id="subagentstop-input">2742<h4 id="subagentstop-input">
2717 SubagentStop ์
๋ ฅ2743 SubagentStop ์
๋ ฅ
2718</h4>2744</h4>
2719 2745
2720[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ SubagentStop ํ
์ `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, `last_assistant_message`๋ฅผ ๋ฐ์ต๋๋ค. `agent_type` ํ๋๋ matcher ํํฐ๋ง์ ์ฌ์ฉ๋๋ ๊ฐ์
๋๋ค. `transcript_path`๋ ๋ฉ์ธ ์ธ์
์ ํธ๋์คํฌ๋ฆฝํธ์ด๊ณ , `agent_transcript_path`๋ ์ค์ฒฉ๋ `subagents/` ํด๋์ ์ ์ฅ๋ ์๋ธ์์ด์ ํธ ์์ฒด์ ํธ๋์คํฌ๋ฆฝํธ์
๋๋ค. `last_assistant_message` ํ๋์๋ ์๋ธ์์ด์ ํธ ์ต์ข
์๋ต์ ํ
์คํธ ๋ด์ฉ์ด ํฌํจ๋๋ฏ๋ก, ํ
์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ฑํ์ง ์๊ณ ๋ ์ด์ ์ ๊ทผํ ์ ์์ต๋๋ค.2746[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, SubagentStop ํ
์ `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, `last_assistant_message`๋ฅผ ๋ฐ์ต๋๋ค. `agent_type` ํ๋๋ matcher ํํฐ๋ง์ ์ฌ์ฉ๋๋ ๊ฐ์
๋๋ค. `transcript_path`๋ ๋ฉ์ธ ์ธ์
์ ํธ๋์คํฌ๋ฆฝํธ์ด๊ณ , `agent_transcript_path`๋ ์ค์ฒฉ๋ `subagents/` ํด๋์ ์ ์ฅ๋ ์๋ธ์์ด์ ํธ ์์ฒด์ ํธ๋์คํฌ๋ฆฝํธ์
๋๋ค. `last_assistant_message` ํ๋์๋ ์๋ธ์์ด์ ํธ ์ต์ข
์๋ต์ ํ
์คํธ ๋ด์ฉ์ด ํฌํจ๋๋ฏ๋ก, ํ
์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ฑํ์ง ์๊ณ ๋ ์ด์ ์ ๊ทผํ ์ ์์ต๋๋ค.
2721 2747
2722๋ชจ๋ SubagentStop ์ด๋ฒคํธ๊ฐ Claude๊ฐ ์์ฑํ ์๋ธ์์ด์ ํธ์์ ์ค๋ ๊ฒ์ ์๋๋๋ค. Claude Code๋ [ํ๋กฌํํธ ์ ์](/docs/ko/interactive-mode#prompt-suggestions)๊ณผ [`/btw` ๊ณ๊ฐ์ง ์ง๋ฌธ](/docs/ko/interactive-mode#side-questions-with-%2Fbtw) ๊ฐ์ ์ผ๋ถ ์์ฒด ๊ธฐ๋ฅ์ ์ํด ๋ด๋ถ ์์ด์ ํธ๋ ์คํํ๋ฉฐ, ์ด๋ฌํ ์์ด์ ํธ๊ฐ ์๋ฃ๋ ๋๋ SubagentStop์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์ด๋ฒคํธ์ ๊ฒฝ์ฐ `agent_type`์ [`--agent`](/docs/ko/cli-reference#cli-flags) ๋๋ [`agent` ์ค์ ](/docs/ko/settings-reference#agent)์ผ๋ก ์ง์ ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ธ์
์์ฒด๊ฐ ์คํ๋๋ ์์ด์ ํธ ์ด๋ฆ์ด๋ฉฐ, ์ธ์
์ด ์์ด์ ํธ ์์ด ์คํ๋๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด์
๋๋ค.2748๋ชจ๋ SubagentStop ์ด๋ฒคํธ๊ฐ Claude๊ฐ ์์ฑํ ์๋ธ์์ด์ ํธ์์ ์ค๋ ๊ฒ์ ์๋๋๋ค. Claude Code๋ [ํ๋กฌํํธ ์ ์](/docs/ko/interactive-mode#prompt-suggestions) ๋ฐ [`/btw` ๊ณ๊ฐ์ง ์ง๋ฌธ](/docs/ko/interactive-mode#side-questions-with-%2Fbtw)๊ณผ ๊ฐ์ ์ผ๋ถ ์์ฒด ๊ธฐ๋ฅ์ ์ํด ๋ด๋ถ ์์ด์ ํธ๋ ์คํํ๋ฉฐ, ์ด๋ฌํ ์์ด์ ํธ๊ฐ ์๋ฃ๋ ๋๋ SubagentStop์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์ด๋ฒคํธ์ ๊ฒฝ์ฐ `agent_type`์ [`--agent`](/docs/ko/cli-reference#cli-flags) ๋๋ [`agent` ์ค์ ](/docs/ko/settings-reference#agent)์ผ๋ก ์ง์ ๋ ๊ฒ์ฒ๋ผ ์ธ์
์์ฒด๊ฐ ์คํ๋๋ ์์ด์ ํธ ์ด๋ฆ์ด๋ฉฐ, ์ธ์
์ด ์์ด์ ํธ ์์ด ์คํ๋๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด์
๋๋ค.
2723 2749
2724์์ด์ ํธ ์ ํ์ ์ง์ ํ๋ `matcher`๋ ๋น `agent_type`๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. matcher๊ฐ ์๋ต๋์๊ฑฐ๋, `""` ๋๋ `"*"`์ด๊ฑฐ๋, ๋น ๋ฌธ์์ด๊ณผ ์ผ์นํ๋ ์ ๊ท ํํ์์ธ ํ
์ ๋น `agent_type`์ ๊ฐ์ง ์ด๋ฒคํธ์๋ ์คํ๋ฉ๋๋ค.2750์์ด์ ํธ ์ ํ์ ์ง์ ํ `matcher`๋ ๋น `agent_type`๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. matcher๊ฐ ์๋ต๋์๊ฑฐ๋, `""` ๋๋ `"*"`์ด๊ฑฐ๋, ๋น ๋ฌธ์์ด๊ณผ ์ผ์นํ๋ ์ ๊ท์์ธ ํ
์ ๋น `agent_type`์ ์ด๋ฒคํธ์ ๋ํด์๋ ์คํ๋ฉ๋๋ค.
2725 2751
2726Claude Code v2.1.271 ์ด์์์๋ [`SubagentHandback`](/docs/ko/tools-reference) ๋๊ตฌ์ ํจ๊ป ์คํ๋๋ ์๋ธ์์ด์ ํธ๊ฐ ์ค์งํ๊ธฐ ์ ์ ํด๋น ๋๊ตฌ๋ฅผ ํตํด ๋ณด๊ณ ์๋ฅผ ์ ๋ฌํฉ๋๋ค. ์ด๋ `last_assistant_message` ํ๋์๋ ์๋ธ์์ด์ ํธ์ ๋ง๋ฌด๋ฆฌ ํ
์คํธ(์๋ ๊ฒฝ์ฐ)๊ฐ ๋ด๊ธฐ๋ฉฐ, ์ด๋ ์ ๋ฌ๋ ๋ณด๊ณ ์๊ฐ ์๋๋๋ค. ๋ณด๊ณ ์๋ ํด๋น ํธ์ถ์ `message` ์
๋ ฅ์ด๋ฉฐ, `SubagentHandback`๊ณผ ์ผ์นํ๋ `PreToolUse` ๋๋ `PostToolUse` ํ
์ด ์ด๋ฅผ `tool_input.message`๋ก ๋ฐ์ต๋๋ค.2752Claude Code v2.1.271 ์ด์์์๋ [`SubagentHandback`](/docs/ko/tools-reference) ๋๊ตฌ์ ํจ๊ป ์คํ๋๋ ์๋ธ์์ด์ ํธ๊ฐ ์ค์งํ๊ธฐ ์ ์ ํด๋น ๋๊ตฌ๋ฅผ ํตํด ๋ณด๊ณ ์๋ฅผ ์ ๋ฌํฉ๋๋ค. ์ด ๊ฒฝ์ฐ `last_assistant_message` ํ๋์๋ ์๋ธ์์ด์ ํธ์ ๋ง๋ฌด๋ฆฌ ํ
์คํธ(์๋ ๊ฒฝ์ฐ)๊ฐ ๋ด๊ธฐ๋ฉฐ, ์ด๋ ์ ๋ฌ๋ ๋ณด๊ณ ์๊ฐ ์๋๋๋ค. ๋ณด๊ณ ์๋ ํด๋น ํธ์ถ์ `message` ์
๋ ฅ์ด๋ฉฐ, `SubagentHandback`์ ์ผ์น์ํจ `PreToolUse` ๋๋ `PostToolUse` ํ
์ ์ด๋ฅผ `tool_input.message`๋ก ๋ฐ์ต๋๋ค.
2727 2753
2728SubagentStop ํ
์ [Stop ์
๋ ฅ](#stop-input)์์ ์ค๋ช
ํ๋ `background_tasks` ๋ฐ `session_crons` ๋ฐฐ์ด๋ ๋ฐ์ต๋๋ค. ๋ ๋ฐฐ์ด ๋ชจ๋ ์๋ธ์์ด์ ํธ๊ฐ ์๋ ์์ ์ธ์
๋ฒ์์
๋๋ค.2754SubagentStop ํ
์ [Stop ์
๋ ฅ](#stop-input)์ ์ค๋ช
๋ `background_tasks` ๋ฐ `session_crons` ๋ฐฐ์ด๋ ๋ฐ์ต๋๋ค. ๋ ๋ฐฐ์ด ๋ชจ๋ ์๋ธ์์ด์ ํธ๊ฐ ์๋ ์์ ์ธ์
๋ฒ์์
๋๋ค.
2729 2755
2730```json theme={null}2756```json theme={null}
2731{2757{
2744}2770}
2745```2771```
2746 2772
2747SubagentStop ํ
์ ์๋ธ์์ด์ ํธ๋ฅผ ๊ณ์ ์คํ์ํค๋ ์ค๋ฅ๊ฐ ์๋ ํผ๋๋ฐฑ์ ์ํด `hookEventName`์ด `"SubagentStop"`์ผ๋ก ์ค์ ๋ `hookSpecificOutput.additionalContext`๋ฅผ ํฌํจํ์ฌ [Stop ํ
](#stop-decision-control)๊ณผ ๋์ผํ ๊ฒฐ์ ์ ์ด ํ์์ ์ฌ์ฉํฉ๋๋ค. `reason`๊ณผ ํจ๊ป `decision: "block"`์ ๋ฐํํ๋ฉด ์๋ธ์์ด์ ํธ๊ฐ ๊ณ์ ์คํ๋๋ฉฐ `reason`์ด ์๋ธ์์ด์ ํธ์ ๋ค์ ์ง์๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ stderr ๋ฉ์์ง๋ฅผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌํฉ๋๋ค. ์๋ธ์์ด์ ํธ๊ฐ ๋ฐํ๋ ํ ์์ ์ธ์
์ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ๋ ค๋ฉด ๋์ `Agent` ๋๊ตฌ์ ๋ํ [`PostToolUse`](#posttooluse) ํ
์ ์ฌ์ฉํ์ธ์.2773SubagentStop ํ
์ [Stop ํ
](#stop-decision-control)๊ณผ ๋์ผํ ๊ฒฐ์ ์ ์ด ํ์์ ์ฌ์ฉํ๋ฉฐ, ์๋ธ์์ด์ ํธ๋ฅผ ๊ณ์ ์คํ์ํค๋ ์ค๋ฅ๊ฐ ์๋ ํผ๋๋ฐฑ์ ์ํด `hookEventName`์ `"SubagentStop"`์ผ๋ก ์ค์ ํ `hookSpecificOutput.additionalContext`๋ ํฌํจ๋ฉ๋๋ค. `reason`๊ณผ ํจ๊ป `decision: "block"`์ ๋ฐํํ๋ฉด ์๋ธ์์ด์ ํธ๊ฐ ๊ณ์ ์คํ๋๋ฉฐ `reason`์ด ์๋ธ์์ด์ ํธ์ ๋ค์ ์ง์๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ stderr ๋ฉ์์ง๋ฅผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌํฉ๋๋ค. ์๋ธ์์ด์ ํธ๊ฐ ๋ฐํ๋ ํ ์์ ์ธ์
์ ์ปจํ
์คํธ๋ฅผ ์ฃผ์
ํ๋ ค๋ฉด ๋์ `Agent` ๋๊ตฌ์ [`PostToolUse`](#posttooluse) ํ
์ ์ฌ์ฉํ์ญ์์ค.
2748 2774
2749<h3 id="taskcreated">2775<h3 id="taskcreated">
2750 TaskCreated2776 TaskCreated
2751</h3>2777</h3>
2752 2778
2753`TaskCreate` ๋๊ตฌ๋ฅผ ํตํด ์์
์ด ์์ฑ๋ ๋ ์คํ๋ฉ๋๋ค. ๋ช
๋ช
๊ท์น์ ๊ฐ์ ํ๊ฑฐ๋, ์์
์ค๋ช
์ ํ์๋ก ํ๊ฑฐ๋, ํน์ ์์
์ ์์ฑ์ ๋ฐฉ์งํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. [Task ๋๊ตฌ๊ฐ ์๋ ์ธ์
](/docs/ko/tools-reference#task-tool-availability)์์๋ ์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.2779`TaskCreate` ๋๊ตฌ๋ฅผ ํตํด ์์
์ด ์์ฑ๋ ๋ ์คํ๋ฉ๋๋ค. ๋ช
๋ช
๊ท์น์ ๊ฐ์ ํ๊ฑฐ๋, ์์
์ค๋ช
์ ํ์๋ก ํ๊ฑฐ๋, ํน์ ์์
์ ์์ฑ์ ๋ฐฉ์งํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค. [Task ๋๊ตฌ๊ฐ ์๋ ์ธ์
](/docs/ko/tools-reference#task-tool-availability)์์๋ ์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
2754 2780
2755TaskCreated ํ
์ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.2781TaskCreated ํ
์ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋งค๋ฒ ๋ฐ์ํฉ๋๋ค.
2756 2782
2757<h4 id="taskcreated-input">2783<h4 id="taskcreated-input">
2758 TaskCreated ์
๋ ฅ2784 TaskCreated ์
๋ ฅ
2759</h4>2785</h4>
2760 2786
2761[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ TaskCreated ํ
์ `task_id`, `task_subject`, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ์ผ๋ก `task_description`, `teammate_name`, `team_name`์ ๋ฐ์ต๋๋ค.2787[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, TaskCreated ํ
์ `task_id`, `task_subject`, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ์ผ๋ก `task_description`, `teammate_name`, `team_name`์ ๋ฐ์ต๋๋ค.
2762 2788
2763```json theme={null}2789```json theme={null}
2764{2790{
2777| ํ๋ | ์ค๋ช
|2803| ํ๋ | ์ค๋ช
|
2778| :- | :- |2804| :- | :- |
2779| `task_id` | ์์ฑ ์ค์ธ ์์
์ ์๋ณ์ |2805| `task_id` | ์์ฑ ์ค์ธ ์์
์ ์๋ณ์ |
2780| `task_subject` | ์์
์ ์ ๋ชฉ |2806| `task_subject` | ์์
์ ๋ชฉ |
2781| `task_description` | ์์
์ ์์ธ ์ค๋ช
. ์์ ์ ์์ต๋๋ค |2807| `task_description` | ์์
์ ๋ํ ์์ธํ ์ค๋ช
. ์์ ์ ์์ต๋๋ค |
2782| `teammate_name` | ์์
์ ์์ฑํ๋ ํ์์ ์ด๋ฆ. ์์ ์ ์์ต๋๋ค |2808| `teammate_name` | ์์
์ ์์ฑํ๋ ํ์์ ์ด๋ฆ. ์์ ์ ์์ต๋๋ค |
2783| `team_name` | Deprecated. ์ธ์
์์ ํ์๋ ํ ์ด๋ฆ์ด๋ฉฐ, ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์
๋๋ค |2809| `team_name` | Deprecated. ์ธ์
์์ ํ์๋ ํ ์ด๋ฆ์ด๋ฉฐ, ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์
๋๋ค |
2784| `agent_id` | ์ด ์ด๋ฒคํธ์์ [๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)๋ ์์
์ ์์ฑํ๋ ์๋ธ์์ด์ ํธ ๋๋ [์ธํ๋ก์ธ์ค ํ์](/docs/ko/agent-teams#choose-a-display-mode)์ ์๋ณํฉ๋๋ค. ์์ ์ ์์ต๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |2810| `agent_id` | ์ด ์ด๋ฒคํธ์์ [๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)๋ ์์
์ ์์ฑํ๋ ์๋ธ์์ด์ ํธ ๋๋ [ํ๋ก์ธ์ค ๋ด ํ์](/docs/ko/agent-teams#choose-a-display-mode)์ ์๋ณํฉ๋๋ค. ์์ ์ ์์ต๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |
2785 2811
2786<h4 id="taskcreated-decision-control">2812<h4 id="taskcreated-decision-control">
2787 TaskCreated ๊ฒฐ์ ์ ์ด2813 TaskCreated ๊ฒฐ์ ์ ์ด
2788</h4>2814</h4>
2789 2815
2790TaskCreated ํ
์ ์ข
๋ฃ ์ฝ๋ 2 ๋๋ JSON ๊ฒฐ์ ์ผ๋ก ์์ฑ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒฝ์ฐ๋ Claude Code๋ ์์
์ ์ญ์ ํ๊ณ ๋ฉ์์ง๋ฅผ ๋๊ตฌ์ ์ค๋ฅ๋ก Claude์ ๋ฐํํฉ๋๋ค. Claude Code๋ ์ด ์ด๋ฒคํธ์ `continue: false`๋ฅผ ๋ฌด์ํ๋ฉฐ Claude๋ ๊ณ์ ์์
ํฉ๋๋ค.2816TaskCreated ํ
์ ์ข
๋ฃ ์ฝ๋ 2 ๋๋ JSON ๊ฒฐ์ ์ผ๋ก ์์ฑ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐฉ์์ด๋ Claude Code๋ ์์
์ ์ญ์ ํ๊ณ ๋ฉ์์ง๋ฅผ ๋๊ตฌ ์ค๋ฅ๋ก Claude์๊ฒ ๋ฐํํฉ๋๋ค. Claude Code๋ ์ด ์ด๋ฒคํธ์ `continue: false`๋ฅผ ๋ฌด์ํ๋ฉฐ Claude๋ ๊ณ์ ์์
ํฉ๋๋ค.
2791 2817
2792* **์ข
๋ฃ ์ฝ๋ 2**: Claude Code๊ฐ stderr ํ
์คํธ๋ฅผ ๋ฉ์์ง๋ก ๋ฐํํฉ๋๋ค.2818* **์ข
๋ฃ ์ฝ๋ 2**: Claude Code๊ฐ stderr ํ
์คํธ๋ฅผ ๋ฉ์์ง๋ก ๋ฐํํฉ๋๋ค.
2793* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code๊ฐ `reason`์ ๋ฉ์์ง๋ก ๋ฐํํฉ๋๋ค.2819* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code๊ฐ `reason`์ ๋ฉ์์ง๋ก ๋ฐํํฉ๋๋ค.
2811 TaskCompleted2837 TaskCompleted
2812</h3>2838</h3>
2813 2839
2814์์
์ด ์๋ฃ๋ก ํ์๋ ๋ ์คํ๋ฉ๋๋ค. ์ด๋ ๋ ๊ฐ์ง ์ํฉ์์ ๋ฐ์ํฉ๋๋ค. ์์ด์ ํธ๊ฐ TaskUpdate ๋๊ตฌ๋ฅผ ํตํด ์์
์ ๋ช
์์ ์ผ๋ก ์๋ฃ๋ก ํ์ํ๋ ๊ฒฝ์ฐ, ๋๋ [์์ด์ ํธ ํ](/docs/ko/agent-teams) ํ์์ด ์งํ ์ค์ธ ์์
์ด ์๋ ์ํ๋ก ํด์ ๋ง์น๋ ๊ฒฝ์ฐ์
๋๋ค. ์์
์ ์ข
๋ฃํ๊ธฐ ์ ์ ํ
์คํธ ํต๊ณผ๋ lint ๊ฒ์ฌ ๊ฐ์ ์๋ฃ ๊ธฐ์ค์ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.2840์์
์ด ์๋ฃ๋ก ํ์๋ ๋ ์คํ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ ๋ ๊ฐ์ง ์ํฉ์์ ๋ฐ์ํฉ๋๋ค. ์์ด์ ํธ๊ฐ TaskUpdate ๋๊ตฌ๋ฅผ ํตํด ์์
์ ๋ช
์์ ์ผ๋ก ์๋ฃ๋ก ํ์ํ๋ ๊ฒฝ์ฐ, ๋๋ [์์ด์ ํธ ํ](/docs/ko/agent-teams) ํ์์ด ์งํ ์ค์ธ ์์
์ด ์๋ ์ํ๋ก ํด์ ๋ง์น๋ ๊ฒฝ์ฐ์
๋๋ค. ์์
์ ๋ซ๊ธฐ ์ ์ ํ
์คํธ ํต๊ณผ๋ ๋ฆฐํธ ๊ฒ์ฌ์ ๊ฐ์ ์๋ฃ ๊ธฐ์ค์ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
2815 2841
2816TaskCompleted ํ
์ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.2842TaskCompleted ํ
์ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋งค๋ฒ ๋ฐ์ํฉ๋๋ค.
2817 2843
2818<h4 id="taskcompleted-input">2844<h4 id="taskcompleted-input">
2819 TaskCompleted ์
๋ ฅ2845 TaskCompleted ์
๋ ฅ
2820</h4>2846</h4>
2821 2847
2822[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ TaskCompleted ํ
์ `task_id`, `task_subject`, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ์ผ๋ก `task_description`, `teammate_name`, `team_name`์ ๋ฐ์ต๋๋ค.2848[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, TaskCompleted ํ
์ `task_id`, `task_subject`, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ์ผ๋ก `task_description`, `teammate_name`, `team_name`์ ๋ฐ์ต๋๋ค.
2823 2849
2824```json theme={null}2850```json theme={null}
2825{2851{
2839| ํ๋ | ์ค๋ช
|2865| ํ๋ | ์ค๋ช
|
2840| :- | :- |2866| :- | :- |
2841| `task_id` | ์๋ฃ ์ค์ธ ์์
์ ์๋ณ์ |2867| `task_id` | ์๋ฃ ์ค์ธ ์์
์ ์๋ณ์ |
2842| `task_subject` | ์์
์ ์ ๋ชฉ |2868| `task_subject` | ์์
์ ๋ชฉ |
2843| `task_description` | ์์
์ ์์ธ ์ค๋ช
. ์์ ์ ์์ต๋๋ค |2869| `task_description` | ์์
์ ๋ํ ์์ธํ ์ค๋ช
. ์์ ์ ์์ต๋๋ค |
2844| `teammate_name` | ์์
์ ์๋ฃํ๋ ํ์์ ์ด๋ฆ. ์์ ์ ์์ต๋๋ค |2870| `teammate_name` | ์์
์ ์๋ฃํ๋ ํ์์ ์ด๋ฆ. ์์ ์ ์์ต๋๋ค |
2845| `team_name` | Deprecated. ์ธ์
์์ ํ์๋ ํ ์ด๋ฆ์ด๋ฉฐ, ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์
๋๋ค |2871| `team_name` | Deprecated. ์ธ์
์์ ํ์๋ ํ ์ด๋ฆ์ด๋ฉฐ, ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์
๋๋ค |
2846| `agent_id` | ์ด ์ด๋ฒคํธ์์ [๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)๋ ์์
์ ์๋ฃํ๋ ์๋ธ์์ด์ ํธ ๋๋ [์ธํ๋ก์ธ์ค ํ์](/docs/ko/agent-teams#choose-a-display-mode)์ ์๋ณํฉ๋๋ค. ์์ ์ ์์ต๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |2872| `agent_id` | ์ด ์ด๋ฒคํธ์์ [๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)๋ ์์
์ ์๋ฃํ๋ ์๋ธ์์ด์ ํธ ๋๋ [ํ๋ก์ธ์ค ๋ด ํ์](/docs/ko/agent-teams#choose-a-display-mode)์ ์๋ณํฉ๋๋ค. ์์ ์ ์์ต๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |
2847 2873
2848<h4 id="taskcompleted-decision-control">2874<h4 id="taskcompleted-decision-control">
2849 TaskCompleted ๊ฒฐ์ ์ ์ด2875 TaskCompleted ๊ฒฐ์ ์ ์ด
2851 2877
2852TaskCompleted ํ
์ ์์
์๋ฃ๋ฅผ ์ ์ดํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.2878TaskCompleted ํ
์ ์์
์๋ฃ๋ฅผ ์ ์ดํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.
2853 2879
2854* **์ข
๋ฃ ์ฝ๋ 2**: ์์
์ด ์๋ฃ๋ก ํ์๋์ง ์์ผ๋ฉฐ stderr ๋ฉ์์ง๊ฐ ํผ๋๋ฐฑ์ผ๋ก ๋ชจ๋ธ์ ๋ค์ ์ ๋ฌ๋ฉ๋๋ค.2880* **์ข
๋ฃ ์ฝ๋ 2**: ์์
์ด ์๋ฃ๋ก ํ์๋์ง ์์ผ๋ฉฐ stderr ๋ฉ์์ง๊ฐ ํผ๋๋ฐฑ์ผ๋ก ๋ชจ๋ธ์ ์ ๋ฌ๋ฉ๋๋ค.
2855* **JSON `{"continue": false, "stopReason": "..."}`**: ํ์์ด ํด์ ๋ง์ณ์ ์ด๋ฒคํธ๊ฐ ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ, `Stop` ํ
๋์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์์ ์์ ํ ์ค์งํฉ๋๋ค. `stopReason`์ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. `TaskUpdate` ๋๊ตฌ๊ฐ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ ๊ฒฝ์ฐ Claude Code๋ `continue: false`๋ฅผ ๋ฌด์ํ๋ฉฐ, ์ข
๋ฃ ์ฝ๋ 2๋ ์ฌ์ ํ ์๋ฃ๋ฅผ ์ฐจ๋จํฉ๋๋ค.2881* **JSON `{"continue": false, "stopReason": "..."}`**: ํ์์ด ํด์ ๋ง์ณ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, `Stop` ํ
๋์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์์ ์์ ํ ์ค์งํฉ๋๋ค. `stopReason`์ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. `TaskUpdate` ๋๊ตฌ๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๊ฒฝ์ฐ Claude Code๋ `continue: false`๋ฅผ ๋ฌด์ํ๋ฉฐ, ์ข
๋ฃ ์ฝ๋ 2๋ ์ฌ์ ํ ์๋ฃ๋ฅผ ์ฐจ๋จํฉ๋๋ค.
2856 2882
2857์ด ์์๋ ํ
์คํธ๋ฅผ ์คํํ๊ณ ์คํจํ๋ฉด ์์
์๋ฃ๋ฅผ ์ฐจ๋จํฉ๋๋ค.2883์ด ์์๋ ํ
์คํธ๋ฅผ ์คํํ๊ณ ํ
์คํธ๊ฐ ์คํจํ๋ฉด ์์
์๋ฃ๋ฅผ ์ฐจ๋จํฉ๋๋ค.
2858 2884
2859```bash theme={null}2885```bash theme={null}
2860#!/bin/bash2886#!/bin/bash
2874 Stop2900 Stop
2875</h3>2901</h3>
2876 2902
2877๋ฉ์ธ Claude Code ์์ด์ ํธ๊ฐ ์๋ต์ ๋ง์ณค์ ๋ ์คํ๋ฉ๋๋ค. ์ฌ์ฉ์ ์ค๋จ์ผ๋ก ์ธํด2903๋ฉ์ธ Claude Code ์์ด์ ํธ๊ฐ ์๋ต์ ๋ง์ณค์ ๋ ์คํ๋ฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐ๋ฝํธ๋ก
2878์ค์ง๋ ๊ฒฝ์ฐ์๋ ์คํ๋์ง ์์ต๋๋ค. API ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋์ 2904์ค์ง๋ ๊ฒฝ์ฐ์๋ ์คํ๋์ง ์์ต๋๋ค. API ์ค๋ฅ์ ๊ฒฝ์ฐ ๋์
2879[StopFailure](#stopfailure)๊ฐ ๋ฐ์ํฉ๋๋ค.2905[StopFailure](#stopfailure)๊ฐ ๋ฐ์ํฉ๋๋ค.
2880 2906
2881<Tip>2907<Tip>
2882 [`/goal`](/docs/ko/goal) ๋ช
๋ น์ ์ธ์
๋ฒ์์ ํ๋กฌํํธ ๊ธฐ๋ฐ Stop ํ
์ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๋ฐ๋ก ๊ฐ๊ธฐ์
๋๋ค. ํ
๊ตฌ์ฑ์ ์์ฑํ์ง ์๊ณ Claude๊ฐ ํน์ ์กฐ๊ฑด์ ํฅํด ๊ณ์ ์์
ํ๋๋ก ํ๋ ค๋ฉด ์ด ๋ช
๋ น์ ์ฌ์ฉํ์ธ์.2908 [`/goal`](/docs/ko/goal) ๋ช
๋ น์ ์ธ์
๋ฒ์์ ํ๋กฌํํธ ๊ธฐ๋ฐ Stop ํ
์ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๋ฐ๋ก ๊ฐ๊ธฐ์
๋๋ค. ํ
๊ตฌ์ฑ์ ์์ฑํ์ง ์๊ณ Claude๊ฐ ํน์ ์กฐ๊ฑด์ ํฅํด ๊ณ์ ์์
ํ๋๋ก ํ๋ ค๋ฉด ์ด ๋ช
๋ น์ ์ฌ์ฉํ์ญ์์ค.
2883</Tip>2909</Tip>
2884 2910
2885<h4 id="stop-input">2911<h4 id="stop-input">
2886 Stop ์
๋ ฅ2912 Stop ์
๋ ฅ
2887</h4>2913</h4>
2888 2914
2889[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ Stop ํ
์ `stop_hook_active`, `last_assistant_message`, `background_tasks`, `session_crons`๋ฅผ ๋ฐ์ต๋๋ค. `stop_hook_active` ํ๋๋ Claude Code๊ฐ ์ด๋ฏธ stop ํ
์ ๊ฒฐ๊ณผ๋ก ๊ณ์ ์งํ ์ค์ผ ๋ `true`์
๋๋ค. ๊ฒฐ์ฝ ํด๊ฒฐ๋์ง ์์ ์กฐ๊ฑด์์ ์ฐจ๋จํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด ์ด ๊ฐ์ ํ์ธํ๊ฑฐ๋ ํธ๋์คํฌ๋ฆฝํธ๋ฅผ ์ฒ๋ฆฌํ์ธ์.2915[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, Stop ํ
์ `stop_hook_active`, `last_assistant_message`, `background_tasks`, `session_crons`๋ฅผ ๋ฐ์ต๋๋ค. `stop_hook_active` ํ๋๋ Claude Code๊ฐ ์ด๋ฏธ stop ํ
์ ๊ฒฐ๊ณผ๋ก ๊ณ์ ์งํ ์ค์ผ ๋ `true`์
๋๋ค. ์ ๋ ํด๊ฒฐ๋์ง ์์ ์กฐ๊ฑด์ผ๋ก ์ฐจ๋จํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด ์ด ๊ฐ์ ํ์ธํ๊ฑฐ๋ ํธ๋์คํฌ๋ฆฝํธ๋ฅผ ์ฒ๋ฆฌํ์ญ์์ค.
2890 2916
2891Claude Code๋ ์ฐ์ 8ํ ๊ณ์ ์งํ ์ ํ์ ์ ์ฉํฉ๋๋ค. stop ํ
์ด ํด์ ์ฐ์์ผ๋ก 8๋ฒ ๊ณ์ ์งํ์ํจ ํ์๋ Claude Code๊ฐ ๋ค์ ์ฐจ๋จ์ ์ฌ์ ์ํ๊ณ ํด์ ์ข
๋ฃํฉ๋๋ค. ์ฐ์ ๊ณ์ ์งํ ํ์๋ Claude๊ฐ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง๋ค ์ฌ์ค์ ๋ฉ๋๋ค. ์ ํ์ ๋๋ฆฌ๋ ค๋ฉด [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ko/env-vars)์ ์ค์ ํฉ๋๋ค.2917Claude Code๋ ์ฐ์ 8ํ ๊ณ์ ์งํ ์ ํ์ ์ ์ฉํฉ๋๋ค. stop ํ
์ด ํด์ ์ฐ์์ผ๋ก 8๋ฒ ๊ณ์ ์งํ์ํจ ํ์๋ Claude Code๊ฐ ๋ค์ ์ฐจ๋จ์ ์ฌ์ ์ํ๊ณ ํด์ ์ข
๋ฃํฉ๋๋ค. ์ฐ์ ๊ณ์ ์งํ ํ์๋ Claude๊ฐ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง๋ค ์ด๊ธฐํ๋ฉ๋๋ค. ์ ํ์ ๋์ด๋ ค๋ฉด [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ko/env-vars)์ ์ค์ ํ์ญ์์ค.
2892 2918
2893`last_assistant_message` ํ๋์๋ Claude ์ต์ข
์๋ต์ ํ
์คํธ ๋ด์ฉ์ด ํฌํจ๋๋ฏ๋ก, ํ
์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ฑํ์ง ์๊ณ ๋ ์ด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์๋ฆฌ ๋ด์ด ์ฝ๊ธฐ๋ ์๋ฆผ ํ
์ฒ๋ผ ๋ฐฉ๊ธ ์๋ฃ๋ ํด์ ๋ํด ๋์ํ๋ ํ
์ ๊ฒฝ์ฐ `transcript_path`๋ฅผ ์ฝ๋ ๋์ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ธ์. ๋ชจ๋ ๋ฒ์ ์์ Stop ์์ ์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ์ต์ข
๋ฉ์์ง๊ฐ ํฌํจ๋๋ค๊ณ ๋ณด์ฅ๋์ง๋ ์์ต๋๋ค.2919`last_assistant_message` ํ๋์๋ Claude ์ต์ข
์๋ต์ ํ
์คํธ ๋ด์ฉ์ด ํฌํจ๋๋ฏ๋ก, ํ
์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ฑํ์ง ์๊ณ ๋ ์ด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์๋ฆฌ ๋ด์ด ์ฝ๊ธฐ๋ ์๋ฆผ ํ
์ฒ๋ผ ๋ฐฉ๊ธ ์๋ฃ๋ ํด์ ๋ํด ๋์ํ๋ ํ
์ ๊ฒฝ์ฐ `transcript_path`๋ฅผ ์ฝ๋ ๋์ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋ชจ๋ ๋ฒ์ ์์ Stop ์์ ์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ์ต์ข
๋ฉ์์ง๊ฐ ํฌํจ๋๋ค๊ณ ๋ณด์ฅ๋์ง ์์ต๋๋ค.
2894 2920
2895`background_tasks` ๋ฐ `session_crons` ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ํ
์ด "์ธ์
์ด ์๋ฃ๋จ"๊ณผ "์ธ์
์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
์ด ๋ค์ ๊นจ์ ์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์ผ์ ์ค์ง๋จ"์ ๊ตฌ๋ณํ ์ ์์ต๋๋ค. ๋ ๋ฐฐ์ด ๋ชจ๋ ์์
๋ ์ง์คํธ๋ฆฌ์ ์ ๊ทผํ ์ ์์ ๋ ์กด์ฌํ๋ฉฐ, ์งํ ์ค์ด๊ฑฐ๋ ์์ฝ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ๋น์ด ์์ต๋๋ค.2921`background_tasks` ๋ฐ `session_crons` ๋ฐฐ์ด์ ํตํด ํ
์ "์ธ์
์ด ์๋ฃ๋จ"๊ณผ "๋ฐฑ๊ทธ๋ผ์ด๋ ์์
์ด ์ธ์
์ ๋ค์ ๊นจ์ฐ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์ผ์ ์ค์ง๋จ"์ ๊ตฌ๋ณํ ์ ์์ต๋๋ค. ๋ ๋ฐฐ์ด์ ์์
๋ ์ง์คํธ๋ฆฌ์ ์ ๊ทผํ ์ ์์ ๋ ์กด์ฌํ๋ฉฐ, ์งํ ์ค์ด๊ฑฐ๋ ์์ฝ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ๋น์ด ์์ต๋๋ค.
2896 2922
2897`background_tasks`์ ๊ฐ ํญ๋ชฉ์ ์งํ ์ค์ธ ์์
ํ๋๋ฅผ ์ค๋ช
ํ๋ฉฐ ๋ค์ ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.2923`background_tasks`์ ๊ฐ ํญ๋ชฉ์ ํ๋์ ์งํ ์ค์ธ ์์
์ ์ค๋ช
ํ๋ฉฐ ๋ค์ ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
2898 2924
2899| ํ๋ | ์ค๋ช
|2925| ํ๋ | ์ค๋ช
|
2900| :- | :- |2926| :- | :- |
2901| `id` | ์์
์๋ณ์ |2927| `id` | ์์
์๋ณ์ |
2902| `type` | `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, `MCP task`์ ๊ฐ์ ์ฌ์ฉ์ ์นํ์ ์ธ ์์
์ ํ ๋ ์ด๋ธ. ๊ฐ ๋ ์ด๋ธ์ ์ด๋ค Claude Code ๊ธฐ๋ฅ์ด ์์
์ ์์ฑํ๋์ง ๋ํ๋
๋๋ค. ์ธ์๋์ง ์๋ ์ ํ์ ๊ฒฝ์ฐ ์์ ํ๋ณ ๊ฐ์ผ๋ก ๋์ฒด๋ฉ๋๋ค |2928| `type` | `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, `MCP task`์ ๊ฐ์ ์น์ํ ์์
์ ํ ๋ ์ด๋ธ์
๋๋ค. ๊ฐ ๋ ์ด๋ธ์ ์์
์ ์์ฑํ Claude Code ๊ธฐ๋ฅ์ ๋ํ๋
๋๋ค. ์ธ์๋์ง ์๋ ์ ํ์ ๊ฒฝ์ฐ ์์ ํ๋ณ ๊ฐ์ผ๋ก ๋์ฒด๋ฉ๋๋ค |
2903| `status` | ํ์ฌ ์์
์ํ |2929| `status` | ํ์ฌ ์์
์ํ |
2904| `description` | ์์ ํ์ ์ค๋ช
. 1000์๋ก ์ ํ๋๋ฉฐ, ์๋ฆฐ ๊ฒฝ์ฐ ๋ฌธ์์ด ์์ `โฆ [+N chars]` ๋ง์ปค๊ฐ ํฌํจ๋ฉ๋๋ค |2930| `description` | ์์ ํ
์คํธ ์ค๋ช
์ผ๋ก, 1000์๋ก ์ ํ๋๋ฉฐ ์๋ฆฐ ๊ฒฝ์ฐ ๋ฌธ์์ด ๋ด์ `โฆ [+N chars]` ํ์๊ฐ ํฌํจ๋ฉ๋๋ค |
2905| `command` | ์
ธ ๋ช
๋ น์ค. 1000์๋ก ์ ํ๋ฉ๋๋ค. `shell` ์์
์๋ง ์กด์ฌํฉ๋๋ค |2931| `command` | 1000์๋ก ์ ํ๋ ์
ธ ๋ช
๋ น์ค์
๋๋ค. `shell` ์์
์๋ง ์กด์ฌํฉ๋๋ค |
2906| `agent_type` | ์๋ธ์์ด์ ํธ ์ ํ ์ด๋ฆ. `subagent` ์์
์๋ง ์กด์ฌํฉ๋๋ค |2932| `agent_type` | ์๋ธ์์ด์ ํธ ์ ํ ์ด๋ฆ์
๋๋ค. `subagent` ์์
์๋ง ์กด์ฌํฉ๋๋ค |
2907| `server` | MCP ์๋ฒ ์ด๋ฆ. `monitor` ๋ฐ `MCP task` ์์
์๋ง ์กด์ฌํฉ๋๋ค |2933| `server` | MCP ์๋ฒ ์ด๋ฆ์
๋๋ค. `monitor` ๋ฐ `MCP task` ์์
์๋ง ์กด์ฌํฉ๋๋ค |
2908| `tool` | MCP ๋๊ตฌ ์ด๋ฆ. `monitor` ๋ฐ `MCP task` ์์
์๋ง ์กด์ฌํฉ๋๋ค |2934| `tool` | MCP ๋๊ตฌ ์ด๋ฆ์
๋๋ค. `monitor` ๋ฐ `MCP task` ์์
์๋ง ์กด์ฌํฉ๋๋ค |
2909| `name` | ์ํฌํ๋ก ์ด๋ฆ. `workflow` ์์
์๋ง ์กด์ฌํฉ๋๋ค |2935| `name` | ์ํฌํ๋ก ์ด๋ฆ์
๋๋ค. `workflow` ์์
์๋ง ์กด์ฌํฉ๋๋ค |
2910 2936
2911`session_crons`์ ๊ฐ ํญ๋ชฉ์ `CronCreate`, `ScheduleWakeup`, `/loop`์์ ์์ฑ๋ ์ธ์
๋ฒ์์ ์์ฝ๋ ๊นจ์ฐ๊ธฐ ํ๋๋ฅผ ์ค๋ช
ํฉ๋๋ค.2937`session_crons`์ ๊ฐ ํญ๋ชฉ์ `CronCreate`, `ScheduleWakeup`, `/loop`์์ ๊ฐ์ ธ์จ ์ธ์
๋ฒ์์ ์์ฝ๋ ๊นจ์ฐ๊ธฐ ํ๋๋ฅผ ์ค๋ช
ํฉ๋๋ค.
2912 2938
2913| ํ๋ | ์ค๋ช
|2939| ํ๋ | ์ค๋ช
|
2914| :- | :- |2940| :- | :- |
2915| `id` | Cron ์์
์๋ณ์ |2941| `id` | Cron ์์
์๋ณ์ |
2916| `schedule` | Cron ํํ์. ์: `0 9 * * 1-5` |2942| `schedule` | Cron ํํ์์
๋๋ค. ์: `0 9 * * 1-5` |
2917| `recurring` | ์ผ์ ์ด ๋จ์ผ ์คํ ์๊ฐ์ ๋ํ๋ด๋ ์ผํ์ฑ ๊นจ์ฐ๊ธฐ๋ `false`, ์ผ์นํ ๋๋ง๋ค ๋ค์ ์คํ๋๋ ์์
์ `true` |2943| `recurring` | ์ผ์ ์ด ๋จ์ผ ์คํ ์๊ฐ์ ๋ํ๋ด๋ ์ผํ์ฑ ๊นจ์ฐ๊ธฐ๋ `false`, ์ผ์นํ ๋๋ง๋ค ๋ค์ ์คํ๋๋ ์์
์ `true`์
๋๋ค |
2918| `prompt` | cron์ด ์คํ๋ ๋ ์ ์ถ๋๋ ํ๋กฌํํธ. 1000์๋ก ์ ํ๋๋ฉฐ ๋์ผํ `โฆ [+N chars]` ๋ง์ปค๋ฅผ ์ฌ์ฉํฉ๋๋ค |2944| `prompt` | cron์ด ์คํ๋ ๋ ์ ์ถ๋๋ ํ๋กฌํํธ๋ก, 1000์๋ก ์ ํ๋๋ฉฐ ๋์ผํ `โฆ [+N chars]` ํ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค |
2919 2945
2920์ด ์์๋ ์งํ ์ค์ธ ์
ธ ์์
ํ๋์ ๋ฐ๋ณต cron ํ๋๊ฐ ์๋ Stop ์
๋ ฅ์ ๋ณด์ฌ ์ค๋๋ค.2946์ด ์์๋ ์งํ ์ค์ธ ์
ธ ์์
ํ๋์ ๋ฐ๋ณต cron ํ๋๊ฐ ์๋ Stop ์
๋ ฅ์ ๋ณด์ฌ ์ค๋๋ค.
2921 2947
2952 Stop ๊ฒฐ์ ์ ์ด2978 Stop ๊ฒฐ์ ์ ์ด
2953</h4>2979</h4>
2954 2980
2955`Stop` ๋ฐ `SubagentStop` ํ
์ Claude๊ฐ ๊ณ์ํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.2981`Stop` ๋ฐ `SubagentStop` ํ
์ Claude๊ฐ ๊ณ์ํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, ํ
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ด๋ฒคํธ๋ณ ํ๋๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
2956 2982
2957| ํ๋ | ์ค๋ช
|2983| ํ๋ | ์ค๋ช
|
2958| :- | :- |2984| :- | :- |
2959| `decision` | `"block"`์ Claude๊ฐ ์ค์งํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. Claude๊ฐ ์ค์งํ๋๋ก ํ์ฉํ๋ ค๋ฉด ์๋ตํฉ๋๋ค |2985| `decision` | `"block"`์ Claude๊ฐ ์ค์งํ๋ ๊ฒ์ ๋ง์ต๋๋ค. Claude๊ฐ ์ค์งํ๋๋ก ํ์ฉํ๋ ค๋ฉด ์๋ตํ์ญ์์ค |
2960| `reason` | `decision`์ด `"block"`์ผ ๋ ํ์์
๋๋ค. Claude์๊ฒ ๊ณ์ํด์ผ ํ๋ ์ด์ ๋ฅผ ์๋ ค ์ค๋๋ค |2986| `reason` | `decision`์ด `"block"`์ผ ๋ ํ์์
๋๋ค. Claude๊ฐ ๊ณ์ํด์ผ ํ๋ ์ด์ ๋ฅผ ์๋ ค ์ค๋๋ค |
2961| `hookSpecificOutput.additionalContext` | Claude๋ฅผ ์ํ ์ค๋ฅ๊ฐ ์๋ ํผ๋๋ฐฑ. Claude๊ฐ ์ด์ ๋ฐ๋ผ ํ๋ํ ์ ์๋๋ก ๋ํ๊ฐ ๊ณ์๋์ง๋ง, `decision: "block"`๊ณผ ๋ฌ๋ฆฌ ํธ๋์คํฌ๋ฆฝํธ์ ํ
์ค๋ฅ๊ฐ ์๋ ํ
ํผ๋๋ฐฑ์ผ๋ก ํ์๋ฉ๋๋ค |2987| `hookSpecificOutput.additionalContext` | Claude๋ฅผ ์ํ ์ค๋ฅ๊ฐ ์๋ ํผ๋๋ฐฑ์
๋๋ค. Claude๊ฐ ์ด์ ๋ฐ๋ผ ์กฐ์นํ ์ ์๋๋ก ๋ํ๊ฐ ๊ณ์๋์ง๋ง, `decision: "block"`๊ณผ ๋ฌ๋ฆฌ ํธ๋์คํฌ๋ฆฝํธ์ ํ
์ค๋ฅ๊ฐ ์๋ ํ
ํผ๋๋ฐฑ์ผ๋ก ํ์๋ฉ๋๋ค |
2962 2988
2963์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `reason`๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. Claude๋ stderr ๋ฉ์์ง๋ฅผ ๊ณ์ํด์ผ ํ๋ ์ด์ ์ ๋ํ ์ค๋ช
์ผ๋ก ๋ฐ์ต๋๋ค.2989์ข
๋ฃ ์ฝ๋ 2๋ก ์ฐจ๋จํ๋ ํ
์ `reason`๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. Claude๋ stderr ๋ฉ์์ง๋ฅผ ๊ณ์ํด์ผ ํ๋ ์ด์ ์ ๋ํ ์ค๋ช
์ผ๋ก ๋ฐ์ต๋๋ค.
2964 2990
2969}2995}
2970```2996```
2971 2997
2972ํ
์ด ์ค๊ณ๋๋ก ๋์ํ๋ฉด์ "์๋ฃํ๊ธฐ ์ ์ ํ
์คํธ ์ค์ํธ๋ฅผ ์คํํ์ธ์"์ ๊ฐ์ด Claude์๊ฒ ์ง์นจ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ์๋ `additionalContext`๋ฅผ ์ฌ์ฉํ์ธ์. ์ด๋ `decision: "block"`๊ณผ ๋์ผํ ๋ฃจํ ๋ณดํธ ์ฅ์น, ์ฆ `stop_hook_active` ์
๋ ฅ๊ณผ ์ฐ์ 8ํ ๊ณ์ ์งํ ์ ํ์ ํตํด ๋ํ๋ฅผ ๊ณ์ ์งํ์ํค์ง๋ง, ํธ๋์คํฌ๋ฆฝํธ์๋ `Stop hook feedback`์ผ๋ก ๋ ์ด๋ธ์ด ์ง์ ๋๋ฉฐ ํ
์ค๋ฅ ์๋ฆผ์ ํ์๋์ง ์์ต๋๋ค.2998ํ
์ด ์ค๊ณ๋๋ก ์๋ํ๋ฉด์ "์๋ฃํ๊ธฐ ์ ์ ํ
์คํธ ์ค์ํธ ์คํ"์ฒ๋ผ Claude์๊ฒ ์ง์นจ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ `additionalContext`๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ด๋ `decision: "block"`๊ณผ ๋์ผํ ๋ฃจํ ๋ณดํธ ์ฅ์น, ์ฆ `stop_hook_active` ์
๋ ฅ๊ณผ ์ฐ์ 8ํ ๊ณ์ ์งํ ์ ํ์ ํตํด ๋ํ๋ฅผ ๊ณ์ ์งํ์ํค์ง๋ง, ํธ๋์คํฌ๋ฆฝํธ์๋ `Stop hook feedback`์ผ๋ก ํ์๋๋ฉฐ ํ
์ค๋ฅ ์๋ฆผ์ ํ์๋์ง ์์ต๋๋ค.
2973 2999
2974```json theme={null}3000```json theme={null}
2975{3001{
2984 StopFailure3010 StopFailure
2985</h3>3011</h3>
2986 3012
2987API ์ค๋ฅ๋ก ์ธํด ํด์ด ์ข
๋ฃ๋ ๋ [Stop](#stop) ๋์ ์คํ๋ฉ๋๋ค. Claude Code๋ [`terminalSequence`](#emit-terminal-notifications)๋ฅผ ์ ์ธํ๊ณ ํ
์ ์ถ๋ ฅ๊ณผ ์ข
๋ฃ ์ฝ๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ์๋ ์ ํ, ์ธ์ฆ ๋ฌธ์ ๋๋ ๊ธฐํ API ์ค๋ฅ๋ก ์ธํด Claude๊ฐ ์๋ต์ ์๋ฃํ ์ ์์ ๋ ์คํจ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋, ์๋ฆผ์ ๋ณด๋ด๊ฑฐ๋, ๋ณต๊ตฌ ์์
์ ์ํํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.3013API ์ค๋ฅ๋ก ํด์ด ์ข
๋ฃ๋ ๋ [Stop](#stop) ๋์ ์คํ๋ฉ๋๋ค. Claude Code๋ [`terminalSequence`](#emit-terminal-notifications)๋ฅผ ์ ์ธํ ํ
์ ์ถ๋ ฅ๊ณผ ์ข
๋ฃ ์ฝ๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ์๋ ์ ํ, ์ธ์ฆ ๋ฌธ์ ๋๋ ๊ธฐํ API ์ค๋ฅ๋ก Claude๊ฐ ์๋ต์ ์๋ฃํ ์ ์์ ๋ ์คํจ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋, ์๋ฆผ์ ๋ณด๋ด๊ฑฐ๋, ๋ณต๊ตฌ ์กฐ์น๋ฅผ ์ทจํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
2988 3014
2989<h4 id="stopfailure-input">3015<h4 id="stopfailure-input">
2990 StopFailure ์
๋ ฅ3016 StopFailure ์
๋ ฅ
2991</h4>3017</h4>
2992 3018
2993[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ StopFailure ํ
์ `error`, ์ ํ์ `error_details`, ์ ํ์ `last_assistant_message`๋ฅผ ๋ฐ์ต๋๋ค. `error` ํ๋๋ ์ค๋ฅ ์ ํ์ ์๋ณํ๋ฉฐ matcher ํํฐ๋ง์ ์ฌ์ฉ๋ฉ๋๋ค.3019[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, StopFailure ํ
์ `error`, ์ ํ์ `error_details`, ์ ํ์ `last_assistant_message`๋ฅผ ๋ฐ์ต๋๋ค. `error` ํ๋๋ ์ค๋ฅ ์ ํ์ ์๋ณํ๋ฉฐ matcher ํํฐ๋ง์ ์ฌ์ฉ๋ฉ๋๋ค.
2994 3020
2995| ํ๋ | ์ค๋ช
|3021| ํ๋ | ์ค๋ช
|
2996| :- | :- |3022| :- | :- |
2997| `error` | ์ค๋ฅ ์ ํ: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ๋๋ `unknown` |3023| `error` | ์ค๋ฅ ์ ํ: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ๋๋ `unknown` |
2998| `error_details` | ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ค๋ฅ์ ๋ํ ์ถ๊ฐ ์ธ๋ถ ์ ๋ณด |3024| `error_details` | ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ค๋ฅ์ ๋ํ ์ถ๊ฐ ์ธ๋ถ ์ ๋ณด |
2999| `last_assistant_message` | ๋ํ์ ํ์๋๋ ๋ ๋๋ง๋ ์ค๋ฅ ํ
์คํธ. ์ด ํ๋์ Claude์ ๋ํ ์ถ๋ ฅ์ด ๋ด๊ธฐ๋ `Stop` ๋ฐ `SubagentStop`๊ณผ ๋ฌ๋ฆฌ, `StopFailure`์ ๊ฒฝ์ฐ `"API Error: Rate limit reached"`์ ๊ฐ์ API ์ค๋ฅ ๋ฌธ์์ด ์์ฒด๊ฐ ํฌํจ๋ฉ๋๋ค |3025| `last_assistant_message` | ๋ํ์ ํ์๋๋ ๋ ๋๋ง๋ ์ค๋ฅ ํ
์คํธ์
๋๋ค. ์ด ํ๋์ Claude์ ๋ํ ์ถ๋ ฅ์ด ๋ด๊ธฐ๋ `Stop` ๋ฐ `SubagentStop`๊ณผ ๋ฌ๋ฆฌ, `StopFailure`์์๋ `"API Error: Rate limit reached"`์ ๊ฐ์ API ์ค๋ฅ ๋ฌธ์์ด ์์ฒด๊ฐ ํฌํจ๋ฉ๋๋ค |
3000 3026
3001```json theme={null}3027```json theme={null}
3002{3028{
3016 TeammateIdle3042 TeammateIdle
3017</h3>3043</h3>
3018 3044
3019[์์ด์ ํธ ํ](/docs/ko/agent-teams) ํ์์ด ํด์ ๋ง์น ํ ์ ํด ์ํ๊ฐ ๋๋ ค๊ณ ํ ๋ ์คํ๋ฉ๋๋ค. lint ๊ฒ์ฌ ํต๊ณผ๋ฅผ ์๊ตฌํ๊ฑฐ๋ ์ถ๋ ฅ ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธํ๋ ๊ฒ์ฒ๋ผ, ํ์์ด ์์
์ ๋ฉ์ถ๊ธฐ ์ ์ ํ์ง ๊ธฐ์ค์ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.3045[์์ด์ ํธ ํ](/docs/ko/agent-teams) ํ์์ด ํด์ ๋ง์น ํ ์ ํด ์ํ๋ก ์ ํ๋๋ ค ํ ๋ ์คํ๋ฉ๋๋ค. ํ์์ด ์์
์ ๋ฉ์ถ๊ธฐ ์ ์ ๋ฆฐํธ ๊ฒ์ฌ ํต๊ณผ๋ฅผ ์๊ตฌํ๊ฑฐ๋ ์ถ๋ ฅ ํ์ผ์ ์กด์ฌ๋ฅผ ํ์ธํ๋ ๋ฑ ํ์ง ๊ฒ์ดํธ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
3020 3046
3021TeammateIdle ํ
์ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.3047TeammateIdle ํ
์ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋งค๋ฒ ๋ฐ์ํฉ๋๋ค.
3022 3048
3023<h4 id="teammateidle-input">3049<h4 id="teammateidle-input">
3024 TeammateIdle ์
๋ ฅ3050 TeammateIdle ์
๋ ฅ
3025</h4>3051</h4>
3026 3052
3027[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ TeammateIdle ํ
์ `teammate_name`๊ณผ `team_name`์ ๋ฐ์ต๋๋ค.3053[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, TeammateIdle ํ
์ `teammate_name`๊ณผ `team_name`์ ๋ฐ์ต๋๋ค.
3028 3054
3029```json theme={null}3055```json theme={null}
3030{3056{
3040 3066
3041| ํ๋ | ์ค๋ช
|3067| ํ๋ | ์ค๋ช
|
3042| :- | :- |3068| :- | :- |
3043| `teammate_name` | ์ ํด ์ํ๊ฐ ๋๋ ค๋ ํ์์ ์ด๋ฆ |3069| `teammate_name` | ์ ํด ์ํ๋ก ์ ํ๋๋ ค๋ ํ์์ ์ด๋ฆ |
3044| `team_name` | Deprecated. ์ธ์
์์ ํ์๋ ํ ์ด๋ฆ์ด๋ฉฐ, ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์
๋๋ค |3070| `team_name` | Deprecated. ์ธ์
์์ ํ์๋ ํ ์ด๋ฆ์ด๋ฉฐ, ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์
๋๋ค |
3045| `agent_id` | ์ด ์ด๋ฒคํธ์์ [๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)๋ ์ ํด ์ํ๊ฐ ๋๋ ค๋ [์ธํ๋ก์ธ์ค ํ์](/docs/ko/agent-teams#choose-a-display-mode)์ ์๋ณํฉ๋๋ค. ์์ ์ ์์ต๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |3071| `agent_id` | ์ด ์ด๋ฒคํธ์์ [๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)๋ ์ ํด ์ํ๋ก ์ ํ๋๋ ค๋ [ํ๋ก์ธ์ค ๋ด ํ์](/docs/ko/agent-teams#choose-a-display-mode)์ ์๋ณํฉ๋๋ค. ์์ ์ ์์ต๋๋ค. Claude Code v2.1.290 ์ด์์ด ํ์ํฉ๋๋ค |
3046 3072
3047<h4 id="teammateidle-decision-control">3073<h4 id="teammateidle-decision-control">
3048 TeammateIdle ๊ฒฐ์ ์ ์ด3074 TeammateIdle ๊ฒฐ์ ์ ์ด
3050 3076
3051TeammateIdle ํ
์ ํ์ ๋์์ ์ ์ดํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.3077TeammateIdle ํ
์ ํ์ ๋์์ ์ ์ดํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.
3052 3078
3053* **์ข
๋ฃ ์ฝ๋ 2**: ํ์์ด stderr ๋ฉ์์ง๋ฅผ ํผ๋๋ฐฑ์ผ๋ก ๋ฐ๊ณ ์ ํด ์ํ๊ฐ ๋๋ ๋์ ๊ณ์ ์์
ํฉ๋๋ค.3079* **์ข
๋ฃ ์ฝ๋ 2**: ํ์์ด stderr ๋ฉ์์ง๋ฅผ ํผ๋๋ฐฑ์ผ๋ก ๋ฐ๊ณ ์ ํด ์ํ๋ก ์ ํํ๋ ๋์ ๊ณ์ ์์
ํฉ๋๋ค.
3054* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` ํ
๋์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์์ ์์ ํ ์ค์งํฉ๋๋ค. `stopReason`์ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค.3080* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` ํ
๋์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์์ ์์ ํ ์ค์งํฉ๋๋ค. `stopReason`์ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค.
3055 3081
3056์ด ์์๋ ํ์์ด ์ ํด ์ํ๊ฐ ๋๋๋ก ํ์ฉํ๊ธฐ ์ ์ ๋น๋ ์ฐ์ถ๋ฌผ์ด ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค.3082์ด ์์๋ ํ์์ด ์ ํด ์ํ๋ก ์ ํ๋๋๋ก ํ์ฉํ๊ธฐ ์ ์ ๋น๋ ์ฐ์ถ๋ฌผ์ด ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค.
3057 3083
3058```bash theme={null}3084```bash theme={null}
3059#!/bin/bash3085#!/bin/bash
3070 ConfigChange3096 ConfigChange
3071</h3>3097</h3>
3072 3098
3073์ธ์
์ค์ ์ค์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ์คํ๋ฉ๋๋ค. ์ค์ ๋ณ๊ฒฝ์ ๊ฐ์ฌํ๊ฑฐ๋, ๋ณด์ ์ ์ฑ
์ ๊ฐ์ ํ๊ฑฐ๋, ์ค์ ํ์ผ์ ๋ํ ๋ฌด๋จ ์์ ์ ์ฐจ๋จํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.3099์ธ์
์ค์ ์ค์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ์คํ๋ฉ๋๋ค. ์ค์ ๋ณ๊ฒฝ์ ๊ฐ์ฌํ๊ฑฐ๋, ๋ณด์ ์ ์ฑ
์ ๊ฐ์ ํ๊ฑฐ๋, ์ค์ ํ์ผ์ ๋ฌด๋จ ์์ ์ ์ฐจ๋จํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
3074 3100
3075Claude Code๋ ์ค์ ํ์ผ, ๊ด๋ฆฌํ ์ ์ฑ
ํ์ผ ๋๋ ์คํฌ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ConfigChange ํ
์ ์คํํฉ๋๋ค. ๊ด๋ฆฌํ ์ ์ฑ
์ ๊ฒฝ์ฐ `managed-settings.json` ๋๋ `managed-settings.d/`์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋๋ง ์คํํฉ๋๋ค. [์๋ฒ ๊ด๋ฆฌํ ์ค์ ](/docs/ko/server-managed-settings)๊ณผ macOS ๊ด๋ฆฌํ ํ๊ฒฝ์ค์ ๋๋ Windows ๋ ์ง์คํธ๋ฆฌ ์ ์ฑ
์ ๋ณ๊ฒฝ ์ฌํญ์ ํ
์ ์คํํ์ง ์๊ณ ์ ์ฉํฉ๋๋ค. [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)๋ฅผ ์ฌ์ฉํ๋ WSL์์๋ ์ ์ฑ
ํด๋ง ์ ๋ณ๊ฒฝ๋ Windows ์ธก ๊ด๋ฆฌํ ์ค์ ํ์ผ์ ํ
์ ์คํํ์ง ์๊ณ ์ ์ฉํฉ๋๋ค.3101Claude Code๋ ์ค์ ํ์ผ, ๊ด๋ฆฌํ ์ ์ฑ
ํ์ผ ๋๋ ์คํฌ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ConfigChange ํ
์ ์คํํฉ๋๋ค. ๊ด๋ฆฌํ ์ ์ฑ
์ ๊ฒฝ์ฐ `managed-settings.json` ๋๋ `managed-settings.d/`์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋๋ง ์คํํฉ๋๋ค. [์๋ฒ ๊ด๋ฆฌํ ์ค์ ](/docs/ko/server-managed-settings)๊ณผ macOS ๊ด๋ฆฌํ ํ๊ฒฝ์ค์ ๋๋ Windows ๋ ์ง์คํธ๋ฆฌ ์ ์ฑ
์ ๋ณ๊ฒฝ ์ฌํญ์ ํ
์ ์คํํ์ง ์๊ณ ์ ์ฉํฉ๋๋ค. [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)๊ฐ ์ค์ ๋ WSL์์๋ ๋ณ๊ฒฝ๋ Windows ์ธก ๊ด๋ฆฌํ ์ค์ ํ์ผ๋ ์ ์ฑ
ํด๋ง ์ ํ
์ ์คํํ์ง ์๊ณ ์ ์ฉํฉ๋๋ค.
3076 3102
3077matcher๋ ๊ตฌ์ฑ ์ถ์ฒ๋ฅผ ๊ธฐ์ค์ผ๋ก ํํฐ๋งํฉ๋๋ค.3103matcher๋ ๊ตฌ์ฑ ์์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํํฐ๋งํฉ๋๋ค.
3078 3104
3079| Matcher | ๋ฐ์ ์์ |3105| Matcher | ๋ฐ์ ์์ |
3080| :- | :- |3106| :- | :- |
3108 ConfigChange ์
๋ ฅ3134 ConfigChange ์
๋ ฅ
3109</h4>3135</h4>
3110 3136
3111[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ ConfigChange ํ
์ `source`์ ์ ํ์ ์ผ๋ก `file_path`๋ฅผ ๋ฐ์ต๋๋ค. `source` ํ๋๋ ์ด๋ค ๊ตฌ์ฑ ์ ํ์ด ๋ณ๊ฒฝ๋์๋์ง ๋ํ๋ด๊ณ , `file_path`๋ ์์ ๋ ํน์ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.3137[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, ConfigChange ํ
์ `source`์ ์ ํ์ ์ผ๋ก `file_path`๋ฅผ ๋ฐ์ต๋๋ค. `source` ํ๋๋ ๋ณ๊ฒฝ๋ ๊ตฌ์ฑ ์ ํ์ ๋ํ๋ด๊ณ , `file_path`๋ ์์ ๋ ํน์ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
3112 3138
3113```json theme={null}3139```json theme={null}
3114{3140{
3125 ConfigChange ๊ฒฐ์ ์ ์ด3151 ConfigChange ๊ฒฐ์ ์ ์ด
3126</h4>3152</h4>
3127 3153
3128ConfigChange ํ
์ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ์ ์ฉ๋์ง ์๋๋ก ์ฐจ๋จํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ์ ๋ฐฉ์งํ๋ ค๋ฉด ์ข
๋ฃ ์ฝ๋ 2 ๋๋ JSON `decision`์ ์ฌ์ฉํฉ๋๋ค. ์ฐจ๋จ๋๋ฉด ์ ์ค์ ์ด ์คํ ์ค์ธ ์ธ์
์ ์ ์ฉ๋์ง ์์ต๋๋ค.3154ConfigChange ํ
์ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ์ ์ฉ๋๋ ๊ฒ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ์ ๋ง์ผ๋ ค๋ฉด ์ข
๋ฃ ์ฝ๋ 2 ๋๋ JSON `decision`์ ์ฌ์ฉํ์ญ์์ค. ์ฐจ๋จ๋๋ฉด ์ ์ค์ ์ด ์คํ ์ค์ธ ์ธ์
์ ์ ์ฉ๋์ง ์์ต๋๋ค.
3129 3155
3130| ํ๋ | ์ค๋ช
|3156| ํ๋ | ์ค๋ช
|
3131| :- | :- |3157| :- | :- |
3132| `decision` | `"block"`์ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ์ ์ฉ๋์ง ์๋๋ก ํฉ๋๋ค. ๋ณ๊ฒฝ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํฉ๋๋ค |3158| `decision` | `"block"`์ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ์ ์ฉ๋๋ ๊ฒ์ ๋ง์ต๋๋ค. ๋ณ๊ฒฝ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํ์ญ์์ค |
3133| `reason` | ํ์ฉ๋์ง๋ง ํ์๋์ง ์์ต๋๋ค |3159| `reason` | ํ์ฉ๋์ง๋ง ํ์๋์ง ์์ต๋๋ค |
3134 3160
3135```json theme={null}3161```json theme={null}
3139}3165}
3140```3166```
3141 3167
3142`policy_settings` ๋ณ๊ฒฝ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ๋จธ์ ์ ๊ด๋ฆฌํ ์ค์ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด `policy_settings` ์ถ์ฒ์ ๋ํด์๋ ํ
์ด ๋ฐ์ํ๋ฏ๋ก ์ด๋ฅผ ์ฌ์ฉํด ํด๋น ํธ์ง์ ๋ก๊ทธ์ ๊ธฐ๋กํ ์ ์์ง๋ง, ์ฐจ๋จ ๊ฒฐ์ ์ ๋ฌด์๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ํฐํ๋ผ์ด์ฆ ๊ด๋ฆฌํ ์ค์ ์ด ํญ์ ์ ์ฉ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. [์๋ฒ ๊ด๋ฆฌํ ์ค์ ](/docs/ko/server-managed-settings)์ด ๋์ฐฉํ๊ฑฐ๋ ์๋ก ๊ณ ์ณ์ง ๋ Claude Code๋ `ConfigChange` ํ
์ ์คํํ์ง ์์ต๋๋ค.3168`policy_settings` ๋ณ๊ฒฝ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ๋จธ์ ์ ๊ด๋ฆฌํ ์ค์ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด `policy_settings` ์์ค์ ๋ํด์๋ ํ
์ด ๋ฐ์ํ๋ฏ๋ก ์ด๋ฅผ ์ฌ์ฉํด ํด๋น ํธ์ง์ ๋ก๊ทธ์ ๊ธฐ๋กํ ์ ์์ง๋ง, ์ฐจ๋จ ๊ฒฐ์ ์ ๋ฌด์๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ํฐํ๋ผ์ด์ฆ ๊ด๋ฆฌํ ์ค์ ์ด ํญ์ ์ ์ฉ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. [์๋ฒ ๊ด๋ฆฌํ ์ค์ ](/docs/ko/server-managed-settings)์ด ๋์ฐฉํ๊ฑฐ๋ ์๋ก ๊ณ ์ณ์ง ๋๋ Claude Code๊ฐ `ConfigChange` ํ
์ ์คํํ์ง ์์ต๋๋ค.
3143 3169
3144Claude Code๋ ConfigChange ํ
์ JSON ์ถ๋ ฅ์์ ์ฐจ๋จ ๊ฒฐ์ ์ ๋ฐ๋ผ ๋์ํ๊ณ `systemMessage`์ `continue`๋ ํ๊ธฐํฉ๋๋ค. `reason`์ผ๋ก ์ฐจ๋จํ๋ ์ข
๋ฃ ์ฝ๋ 2์ stderr๋ก ์ฐจ๋จํ๋ , ์ฐจ๋จ๋ ๋ณ๊ฒฝ์ ์ฌ์ฉ์๋ Claude์๊ฒ ์๋ฌด ๋ฉ์์ง๋ ํ์ํ์ง ์์ต๋๋ค. Claude Code๋ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ํ ์ค๋ง ๊ธฐ๋กํฉ๋๋ค.3170Claude Code๋ ConfigChange ํ
์ JSON ์ถ๋ ฅ์์ ์ฐจ๋จ ๊ฒฐ์ ์ ๋ฐ๋ผ ๋์ํ๊ณ `systemMessage`์ `continue`๋ ๋ฒ๋ฆฝ๋๋ค. ์ฐจ๋จ๋ ๋ณ๊ฒฝ์ `reason`์ผ๋ก ์ฐจ๋จํ๋ ์ข
๋ฃ ์ฝ๋ 2์ stderr๋ก ์ฐจ๋จํ๋ ์ฌ์ฉ์๋ Claude์๊ฒ ๋ฉ์์ง๋ฅผ ํ์ํ์ง ์์ต๋๋ค. Claude Code๋ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ํ ์ค๋ง ๊ธฐ๋กํฉ๋๋ค.
3145 3171
3146<h3 id="cwdchanged">3172<h3 id="cwdchanged">
3147 CwdChanged3173 CwdChanged
3148</h3>3174</h3>
3149 3175
3150๋ฉ์ธ ๋ํ์ ์
ธ ๋ช
๋ น์ด ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ๋ ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Claude๊ฐ `cd` ๋ช
๋ น์ ์คํํ๋ ๊ฒฝ์ฐ์
๋๋ค. ๋๋ ํฐ๋ฆฌ ๋ณ๊ฒฝ์ ๋์ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ํ๊ฒฝ ๋ณ์๋ฅผ ๋ค์ ๋ก๋ํ๊ฑฐ๋, ํ๋ก์ ํธ๋ณ ํด์ฒด์ธ์ ํ์ฑํํ๊ฑฐ๋, ์ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํํ ์ ์์ต๋๋ค. ๋๋ ํฐ๋ฆฌ๋ณ ํ๊ฒฝ์ ๊ด๋ฆฌํ๋ [direnv](https://direnv.net/) ๊ฐ์ ๋๊ตฌ๋ฅผ ์ํด [FileChanged](#filechanged)์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.3176๋ฉ์ธ ๋ํ์ ์
ธ ๋ช
๋ น์ด ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ๋ ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Claude๊ฐ `cd` ๋ช
๋ น์ ์คํํ๋ ๊ฒฝ์ฐ์
๋๋ค. ๋๋ ํฐ๋ฆฌ ๋ณ๊ฒฝ์ ๋์ํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค. ํ๊ฒฝ ๋ณ์๋ฅผ ๋ค์ ๋ก๋ํ๊ฑฐ๋, ํ๋ก์ ํธ๋ณ ํด์ฒด์ธ์ ํ์ฑํํ๊ฑฐ๋, ์ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํํ ์ ์์ต๋๋ค. ๋๋ ํฐ๋ฆฌ๋ณ ํ๊ฒฝ์ ๊ด๋ฆฌํ๋ [direnv](https://direnv.net/)์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ํด [FileChanged](#filechanged)์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
3151 3177
3152CwdChanged ํ
์ [`CLAUDE_ENV_FILE`](#persist-environment-variables)์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํด๋น ํ์ผ์ ๊ธฐ๋ก๋ ๋ณ์๋ ๋ค์ CwdChanged ์ด๋ฒคํธ์์ Claude Code๊ฐ ์ง์ธ ๋๊น์ง ์ดํ์ Bash ๋ช
๋ น์ ์ ์ง๋ฉ๋๋ค.3178CwdChanged ํ
์ [`CLAUDE_ENV_FILE`](#persist-environment-variables)์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํด๋น ํ์ผ์ ๊ธฐ๋ก๋ ๋ณ์๋ ๋ค์ CwdChanged ์ด๋ฒคํธ์์ Claude Code๊ฐ ์ด๋ฅผ ์ง์ธ ๋๊น์ง ์ดํ Bash ๋ช
๋ น์ ์ ์ง๋ฉ๋๋ค.
3153 3179
3154CwdChanged๋ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.3180CwdChanged๋ matcher๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ ๋งค๋ฒ ๋ฐ์ํฉ๋๋ค.
3155 3181
3156<h4 id="cwdchanged-input">3182<h4 id="cwdchanged-input">
3157 CwdChanged ์
๋ ฅ3183 CwdChanged ์
๋ ฅ
3158</h4>3184</h4>
3159 3185
3160[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ CwdChanged ํ
์ `old_cwd`์ `new_cwd`๋ฅผ ๋ฐ์ต๋๋ค.3186[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, CwdChanged ํ
์ `old_cwd`์ `new_cwd`๋ฅผ ๋ฐ์ต๋๋ค.
3161 3187
3162```json theme={null}3188```json theme={null}
3163{3189{
3174 CwdChanged ์ถ๋ ฅ3200 CwdChanged ์ถ๋ ฅ
3175</h4>3201</h4>
3176 3202
3177๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ CwdChanged ํ
์ [FileChanged](#filechanged)๊ฐ ๊ฐ์ํ๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋์ ์ผ๋ก ์ค์ ํ๊ธฐ ์ํด `watchPaths`๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.3203๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, CwdChanged ํ
์ [FileChanged](#filechanged)๊ฐ ๊ฐ์ํ๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋์ ์ผ๋ก ์ค์ ํ๊ธฐ ์ํด `watchPaths`๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
3178 3204
3179| ํ๋ | ์ค๋ช
|3205| ํ๋ | ์ค๋ช
|
3180| :- | :- |3206| :- | :- |
3181| `watchPaths` | ์ ๋ ๊ฒฝ๋ก์ ๋ฐฐ์ด. ํ์ฌ ๋์ ๊ฐ์ ๋ชฉ๋ก์ ๋์ฒดํฉ๋๋ค. `matcher` ๊ตฌ์ฑ์ ๊ฒฝ๋ก๋ ํญ์ ๊ฐ์๋ฉ๋๋ค. ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ฉด ๋์ ๋ชฉ๋ก์ด ์ง์์ง๋ฉฐ, ์ด๋ ์ ๋๋ ํฐ๋ฆฌ์ ์ง์
ํ ๋ ์ผ๋ฐ์ ์
๋๋ค |3207| `watchPaths` | ์ ๋ ๊ฒฝ๋ก์ ๋ฐฐ์ด์
๋๋ค. ํ์ฌ ๋์ ๊ฐ์ ๋ชฉ๋ก์ ๋์ฒดํฉ๋๋ค. `matcher` ๊ตฌ์ฑ์ ๊ฒฝ๋ก๋ ํญ์ ๊ฐ์๋ฉ๋๋ค. ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ฉด ๋์ ๋ชฉ๋ก์ด ์ง์์ง๋ฉฐ, ์ด๋ ์ ๋๋ ํฐ๋ฆฌ์ ์ง์
ํ ๋ ์ผ๋ฐ์ ์
๋๋ค |
3182 3208
3183CwdChanged ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ๋๋ ํฐ๋ฆฌ ๋ณ๊ฒฝ์ ์ฐจ๋จํ ์ ์์ต๋๋ค.3209CwdChanged ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ๋๋ ํฐ๋ฆฌ ๋ณ๊ฒฝ์ ์ฐจ๋จํ ์ ์์ต๋๋ค.
3184 3210
3185Claude Code๋ JSON ์ถ๋ ฅ์์ `watchPaths`์ `systemMessage`๋ฅผ ์ฝ๊ณ `continue`๋ ํ๊ธฐํฉ๋๋ค. ๋ํํ ์ธ์
์์๋ `systemMessage`๋ฅผ ์งง์ ํฐ๋ฏธ๋ ์๋ฆผ์ผ๋ก ํ์ํฉ๋๋ค. ์ด ๋ฉ์์ง๋ SDK ๋ฉ์์ง ์คํธ๋ฆผ์ ๋๋ฌํ์ง ์์ต๋๋ค.3211Claude Code๋ JSON ์ถ๋ ฅ์์ `watchPaths`์ `systemMessage`๋ฅผ ์ฝ๊ณ `continue`๋ ๋ฒ๋ฆฝ๋๋ค. ๋ํํ ์ธ์
์์๋ `systemMessage`๋ฅผ ์งง์ ํฐ๋ฏธ๋ ์๋ฆผ์ผ๋ก ํ์ํฉ๋๋ค. ์ด ๋ฉ์์ง๋ SDK ๋ฉ์์ง ์คํธ๋ฆผ์ ๋๋ฌํ์ง ์์ต๋๋ค.
3186 3212
3187<h3 id="directoryadded">3213<h3 id="directoryadded">
3188 DirectoryAdded3214 DirectoryAdded
3189</h3>3215</h3>
3190 3216
3191์ธ์
๋์ค `/add-dir` ๋ช
๋ น์ผ๋ก ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ ํ, ๋๋ SDK ํด๋ผ์ด์ธํธ๊ฐ `register_repo_root` ์ ์ด ์์ฒญ์ผ๋ก ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ ํ์ ์คํ๋ฉ๋๋ค. ์๋ก ์ถ๊ฐ๋ ์ ์ฅ์๋ฅผ ์ค๋นํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํด๋น ์ ์ฅ์์ ์์กด์ฑ์ ์ค์นํ ์ ์์ต๋๋ค.3217์ธ์
์ค์ `/add-dir` ๋ช
๋ น์ผ๋ก ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ ํ, ๋๋ SDK ํด๋ผ์ด์ธํธ๊ฐ `register_repo_root` ์ ์ด ์์ฒญ์ผ๋ก ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ ํ์ ์คํ๋ฉ๋๋ค. ์๋ก ์ถ๊ฐ๋ ์ ์ฅ์๋ฅผ ์ค๋นํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค. ์๋ฅผ ๋ค์ด ํด๋น ์ ์ฅ์์ ์์กด์ฑ์ ์ค์นํ ์ ์์ต๋๋ค.
3192 3218
3193Claude Code๋ ๋ค์ ๊ฒฝ์ฐ์ ์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค์ง ์์ต๋๋ค.3219Claude Code๋ ๋ค์ ๊ฒฝ์ฐ์ ์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค์ง ์์ต๋๋ค.
3194 3220
3195* `--add-dir` ์์ ํ๋๊ทธ๋ก ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๋ฌํ ๊ฒฝ์ฐ. ํด๋น ๋๋ ํฐ๋ฆฌ๋ [SessionStart](#sessionstart)๊ฐ ์ฒ๋ฆฌํฉ๋๋ค3221* `--add-dir` ์์ ํ๋๊ทธ๋ก ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ. ์ด๋ฌํ ๋๋ ํฐ๋ฆฌ๋ [SessionStart](#sessionstart)๊ฐ ๋ค๋ฃน๋๋ค
3196* `/permissions` Workspace ํญ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๊ฒฝ์ฐ3222* `/permissions` Workspace ํญ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ
3197* ์ด๋ฏธ ์์
๋๋ ํฐ๋ฆฌ์ด๊ฑฐ๋ ์์
๋๋ ํฐ๋ฆฌ ๋ด๋ถ์ ์๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๊ฒฝ์ฐ3223* ์ด๋ฏธ ์์
๋๋ ํฐ๋ฆฌ์ด๊ฑฐ๋ ์์
๋๋ ํฐ๋ฆฌ ๋ด๋ถ์ ์๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ
3198 3224
3199Claude Code๋ ์๋๋ฐ์ค ๋ฐ ๊ถํ ์ํ๋ฅผ ์๋ก ๊ณ ์น ํ DirectoryAdded๋ฅผ ๋ฐ์์ํค๋ฏ๋ก, ํ
์ด ์คํ๋ ๋ ์๋๋ฐ์ค ์ฒ๋ฆฌ๋ ๋๊ตฌ๋ ์ด๋ฏธ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ธ์ํฉ๋๋ค. ํ
๋ช
๋ น ์์ฒด๋ ์๋๋ฐ์ค ์์ด ์คํ๋ฉ๋๋ค.3225Claude Code๋ ์๋๋ฐ์ค ๋ฐ ๊ถํ ์ํ๋ฅผ ์๋ก ๊ณ ์น ํ DirectoryAdded๋ฅผ ๋ฐ์์ํค๋ฏ๋ก, ํ
์ด ์คํ๋ ๋ ์๋๋ฐ์ค ์ฒ๋ฆฌ๋ ๋๊ตฌ๋ ์ด๋ฏธ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ธ์ํฉ๋๋ค. ํ
๋ช
๋ น ์์ฒด๋ ์๋๋ฐ์ค ์์ด ์คํ๋ฉ๋๋ค.
3200 3226
3201Claude Code๋ ํ
์ ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. ์ถ๊ฐ๋ ์ฆ์ ์๋ฃ๋๋ฉฐ, ํ
์ 600์ด ๊ธฐ๋ณธ ํ์์์์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋ฉ๋๋ค.3227Claude Code๋ ํ
์ ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. ์ถ๊ฐ๋ ์ฆ์ ์๋ฃ๋๋ฉฐ, ํ
์ ๊ธฐ๋ณธ ํ์์์ 600์ด๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋ฉ๋๋ค.
3202 3228
3203matcher๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์ถ๊ฐ๋ ๋ฐฉ์์ ๊ธฐ์ค์ผ๋ก ํํฐ๋งํฉ๋๋ค.3229matcher๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์ถ๊ฐ๋ ๋ฐฉ์์ ๊ธฐ์ค์ผ๋ก ํํฐ๋งํฉ๋๋ค.
3204 3230
3211 DirectoryAdded ์
๋ ฅ3237 DirectoryAdded ์
๋ ฅ
3212</h4>3238</h4>
3213 3239
3214[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ DirectoryAdded ํ
์ `directory`์ `source`๋ฅผ ๋ฐ์ต๋๋ค.3240[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋, DirectoryAdded ํ
์ `directory`์ `source`๋ฅผ ๋ฐ์ต๋๋ค.
3215 3241
3216| ํ๋ | ์ค๋ช
|3242| ํ๋ | ์ค๋ช
|
3217| :- | :- |3243| :- | :- |
3218| `directory` | ์ถ๊ฐ๋ ๋๋ ํฐ๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก |3244| `directory` | ์ถ๊ฐ๋ ๋๋ ํฐ๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก |
3219| `source` | ๋๋ ํฐ๋ฆฌ๊ฐ ์ถ๊ฐ๋ ๋ฐฉ์. `/add-dir`์ ๊ฒฝ์ฐ `"slash_command"`, SDK ์ ์ด ์์ฒญ์ ๊ฒฝ์ฐ `"register_repo_root"` |3245| `source` | ๋๋ ํฐ๋ฆฌ๊ฐ ์ถ๊ฐ๋ ๋ฐฉ์์ผ๋ก, `/add-dir`์ ๊ฒฝ์ฐ `"slash_command"`, SDK ์ ์ด ์์ฒญ์ ๊ฒฝ์ฐ `"register_repo_root"`์
๋๋ค |
3220 3246
3221```json theme={null}3247```json theme={null}
3222{3248{
3229}3255}
3230```3256```
3231 3257
3232DirectoryAdded ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ํ
์ด ์คํ๋ ๋ ์ด๋ฏธ ์๋ฃ๋ ์ถ๊ฐ๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค. Claude Code๋ JSON ์ถ๋ ฅ์์ `continue` ํ๋๋ฅผ ํ๊ธฐํ๊ณ , ๋๋จธ์ง๋ ์ถ์ฒ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ์ํฉ๋๋ค.3258DirectoryAdded ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ํ
์ด ์คํ๋ ๋๋ ์ถ๊ฐ๊ฐ ์ด๋ฏธ ์๋ฃ๋ ์ํ์ด๋ฏ๋ก ์ด๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค. Claude Code๋ JSON ์ถ๋ ฅ์ `continue` ํ๋๋ฅผ ๋ฒ๋ฆฌ๊ณ , ๋๋จธ์ง๋ ์์ค์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ์ํฉ๋๋ค.
3233 3259
3234* `slash_command`: Claude Code๋ ํ
์ `systemMessage`๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ์ง ์๊ณ ๋ค์ ๋ํ ํด์์ Claude์๊ฒ ์ปจํ
์คํธ๋ก ์ ๋ฌํฉ๋๋ค. ์คํจํ ํ
์ ๊ฐ์๊ฐ ํธ๋์คํฌ๋ฆฝํธ์ ํ์๋ฉ๋๋ค. ์ ์ฒด ์คํจ ์ถ๋ ฅ์ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ๊ธฐ๋ก๋ฉ๋๋ค3260* `slash_command`: Claude Code๋ ํ
์ `systemMessage`๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๋ ๋์ ๋ค์ ๋ํ ํด์์ Claude์๊ฒ ์ปจํ
์คํธ๋ก ์ ๋ฌํฉ๋๋ค. ์คํจํ ํ
์ ์๊ฐ ํธ๋์คํฌ๋ฆฝํธ์ ํ์๋ฉ๋๋ค. ์ ์ฒด ์คํจ ์ถ๋ ฅ์ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ๊ธฐ๋ก๋ฉ๋๋ค
3235* `register_repo_root`: Claude Code๋ `systemMessage` ์ถ๋ ฅ๊ณผ ์คํจ ์ถ๋ ฅ์ ๋๋ฒ๊ทธ ๋ก๊ทธ์๋ง ๊ธฐ๋กํฉ๋๋ค3261* `register_repo_root`: Claude Code๋ `systemMessage` ์ถ๋ ฅ๊ณผ ์คํจ ์ถ๋ ฅ์ ๋๋ฒ๊ทธ ๋ก๊ทธ์๋ง ๊ธฐ๋กํฉ๋๋ค
3236 3262
3237<h3 id="filechanged">3263<h3 id="filechanged">
3238 FileChanged3264 FileChanged
3239</h3>3265</h3>
3240 3266
3241๊ฐ์ ์ค์ธ ํ์ผ์ด ๋์คํฌ์์ ๋ณ๊ฒฝ๋ ๋ ์คํ๋ฉ๋๋ค. Claude Code๋ ๋๊ตฌ ํธ์ถ์ ๊ฒ์ฌํ๋ ๊ฒ์ด ์๋๋ผ ํ์ผ ์์คํ
๊ฐ์์๋ก ๋ณ๊ฒฝ์ ๊ฐ์งํ๋ฏ๋ก, ๋ฌด์์ด ํ์ผ์ ๋ณ๊ฒฝํ๋ ํ
์ ์คํํฉ๋๋ค. `Edit` ๋๋ `Write` ๋๊ตฌ ํธ์ถ, Claude๊ฐ `Bash`๋ก ์คํํ๋ ์คํฌ๋ฆฝํธ, ๋๋ ์์ ํ Claude Code ์ธ๋ถ์ ํ๋ก์ธ์ค๊ฐ ๋ชจ๋ ํด๋น๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ฉ๋๋ ํ๋ก์ ํธ ์ค์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ค์ ๋ก๋ํ๋ ๊ฒ์
๋๋ค.3267๊ฐ์ ์ค์ธ ํ์ผ์ด ๋์คํฌ์์ ๋ณ๊ฒฝ๋ ๋ ์คํ๋ฉ๋๋ค. Claude Code๋ ๋๊ตฌ ํธ์ถ์ ๊ฒ์ฌํ๋ ๋์ ํ์ผ ์์คํ
๊ฐ์์๋ก ๋ณ๊ฒฝ์ ๊ฐ์งํ๋ฏ๋ก, ๋ฌด์์ด ํ์ผ์ ๋ณ๊ฒฝํ๋ ํ
์ ์คํํฉ๋๋ค. `Edit` ๋๋ `Write` ๋๊ตฌ ํธ์ถ, Claude๊ฐ `Bash`๋ก ์คํํ๋ ์คํฌ๋ฆฝํธ, ๋๋ Claude Code์ ์ ํ ๊ด๊ณ์๋ ์ธ๋ถ ํ๋ก์ธ์ค ๋ชจ๋ ํด๋น๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ฉ๋๋ ํ๋ก์ ํธ ์ค์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ค์ ๋ก๋ํ๋ ๊ฒ์
๋๋ค.
3242 3268
3243์ด ์ด๋ฒคํธ์ `matcher`๋ ๋ ๊ฐ์ง ์ญํ ์ ํฉ๋๋ค.3269์ด ์ด๋ฒคํธ์ `matcher`๋ ๋ ๊ฐ์ง ์ญํ ์ ํฉ๋๋ค.
3244 3270
3245* **๊ฐ์ ๋ชฉ๋ก ๊ตฌ์ฑ**: ๊ฐ์ `|`๋ก ๋ถํ ๋๋ฉฐ ๊ฐ ์ธ๊ทธ๋จผํธ๋ ์์
๋๋ ํฐ๋ฆฌ์ ๋ฆฌํฐ๋ด ํ์ผ ์ด๋ฆ์ผ๋ก ๋ฑ๋ก๋๋ฏ๋ก, `".envrc|.env"`๋ ์ ํํ ๊ทธ ๋ ํ์ผ์ ๊ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ ๊ท ํํ์ ํจํด์ด ์ ์ฉํ์ง ์์ต๋๋ค. `^\.env`์ ๊ฐ์ ๊ฐ์ ๋ฌธ์ ๊ทธ๋๋ก `^\.env`๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ๊ฐ์ํฉ๋๋ค.3271* **๊ฐ์ ๋ชฉ๋ก ๋น๋**: ๊ฐ์ `|`๋ก ๋ถํ ๋๋ฉฐ ๊ฐ ์ธ๊ทธ๋จผํธ๋ ์์
๋๋ ํฐ๋ฆฌ์ ๋ฆฌํฐ๋ด ํ์ผ ์ด๋ฆ์ผ๋ก ๋ฑ๋ก๋๋ฏ๋ก, `".envrc|.env"`๋ ์ ํํ ๊ทธ ๋ ํ์ผ์ ๊ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ ๊ท์ ํจํด์ด ์ ์ฉํ์ง ์์ต๋๋ค. `^\.env` ๊ฐ์ ๊ฐ์ ๋ฌธ์ ๊ทธ๋๋ก `^\.env`๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ๊ฐ์ํฉ๋๋ค.
3246* **์คํํ ํ
ํํฐ๋ง**: ๊ฐ์ ์ค์ธ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ๋์ผํ ๊ฐ์ด ๋ณ๊ฒฝ๋ ํ์ผ์ basename์ ๋ํด ํ์ค [matcher ๊ท์น](#matcher-patterns)์ ์ฌ์ฉํ์ฌ ์คํํ ํ
๊ทธ๋ฃน์ ํํฐ๋งํฉ๋๋ค.3272* **์คํํ ํ
ํํฐ๋ง**: ๊ฐ์ ์ค์ธ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด, ๊ฐ์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ํ์ผ์ ๊ธฐ๋ณธ ์ด๋ฆ(basename)์ ๋ํด ํ์ค [matcher ๊ท์น](#matcher-patterns)์ ์ฌ์ฉํ์ฌ ์คํํ ํ
๊ทธ๋ฃน์ ํํฐ๋งํฉ๋๋ค.
3247 3273
3248์ด ์์๋ `Bash` ๋ช
๋ น์ด๋ ์ธ๋ถ ์คํฌ๋ฆฝํธ๊ฐ ํ์ผ์ ๋ค์ ๊ธฐ๋กํ๋ ๊ฒฝ์ฐ๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ๋ณ๊ฒฝ ํ `data.csv`์ ์ค ๋์ ์ ๊ทํํฉ๋๋ค.3274์ด ์์๋ `Bash` ๋ช
๋ น์ด๋ ์ธ๋ถ ์คํฌ๋ฆฝํธ๊ฐ ํ์ผ์ ๋ค์ ์ฐ๋ ๊ฒฝ์ฐ๋ฅผ ํฌํจํ์ฌ, ๋ณ๊ฒฝ์ด ๋ฐ์ํ ๋๋ง๋ค `data.csv`์ ์ค ๋ ๋ฌธ์๋ฅผ ์ ๊ทํํฉ๋๋ค.
3249 3275
3250```json theme={null}3276```json theme={null}
3251{3277{
3265}3291}
3266```3292```
3267 3293
3268ํ
์ stdin์ผ๋ก ๋ฐ๋ [JSON ์
๋ ฅ](#filechanged-input)์ `file_path` ํ๋์์ ๋ณ๊ฒฝ๋ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฝ์ต๋๋ค. `grep` ๊ฐ๋๋ `perl`์ด ์ ๊ฑฐํ๋ ๊ฒ๊ณผ ๋์ผํ ๋์, ์ฆ ์ค ๋์ CR์ ๊ฒ์ฌํ๋ฏ๋ก, ์ ๊ทํ ํ์ ์คํ์ ํ์ผ์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ์ข
๋ฃ๋ฉ๋๋ค. ๊ฐ๋๊ฐ ๋ ๋์จํ๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํฉ๋๋ค. `perl -i`๋ ์๋ฌด๊ฒ๋ ์นํํ์ง ์์๋ ํ์ผ์ ๋ค์ ๊ธฐ๋กํ๊ณ , Claude Code๋ ๋ค์ ๊ธฐ๋ก๋ ๋๋ง๋ค ํ
์ ๋ค์ ์คํํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ฅผ `/path/to/normalize-line-endings.sh`์ ์ ์ฅํ๊ณ ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋์ธ์.3294ํ
์ stdin์ผ๋ก ์ ๋ฌ๋๋ [JSON ์
๋ ฅ](#filechanged-input)์ `file_path` ํ๋์์ ๋ณ๊ฒฝ๋ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฝ์ต๋๋ค. `grep` ๊ฒ์ฌ๋ `perl`์ด ์ ๊ฑฐํ๋ ๊ฒ๊ณผ ๋์ผํ ๋์, ์ฆ ์ค ๋์ CR์ ๊ฒ์ฌํ๋ฏ๋ก, ์ ๊ทํ ํ์ ์คํ์ ํ์ผ์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ์ข
๋ฃ๋ฉ๋๋ค. ๊ฒ์ฌ ์กฐ๊ฑด์ด ๋ ๋์จํ๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํฉ๋๋ค. `perl -i`๋ ์นํํ ๊ฒ์ด ์์ด๋ ํ์ผ์ ๋ค์ ์ฐ๊ณ , Claude Code๋ ํ์ผ์ด ๋ค์ ์ฐ์ผ ๋๋ง๋ค ํ
์ ๋ค์ ์คํํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ฅผ `/path/to/normalize-line-endings.sh`์ ์ ์ฅํ๊ณ ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋์ธ์.
3269 3295
3270```bash theme={null}3296```bash theme={null}
3271#!/bin/bash3297#!/bin/bash
3275fi3301fi
3276```3302```
3277 3303
3278ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด Claude์๊ฒ `Bash` ๋ช
๋ น์ผ๋ก `data.csv`์ CRLF ์ค์ ์ถ๊ฐํ๋๋ก ์์ฒญํ์ธ์. Claude Code๊ฐ ํ
์ ์คํํ๊ณ ํ์ผ์ LF ์ค ๋์ผ๋ก ๋ฐ๋๋๋ค.3304ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด Claude์๊ฒ `Bash` ๋ช
๋ น์ผ๋ก `data.csv`์ CRLF ์ค์ ์ถ๊ฐํ๋๋ก ์์ฒญํ์ธ์. Claude Code๊ฐ ํ
์ ์คํํ๊ณ ํ์ผ์ LF ์ค ๋์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
3279 3305
3280๋ฏธ๋ฆฌ ์ด๋ฆ์ ์ง์ ํ ์ ์๋ ํ์ผ์ ๊ฐ์ํ๋ ค๋ฉด ํ
์์ [`watchPaths`](#filechanged-output)๋ฅผ ๋ฐํํ์ฌ ๊ฐ์ ๋ชฉ๋ก์ ๋์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค. Claude Code๋ ๊ฐ์ํ ํ์ผ์ด ์ง์ ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ์์๋ฅผ ์์ํ๋ฏ๋ก, matcher๊ฐ ์ต์ ํ๋์ ํ์ผ์ ์ง์ ํ๋ FileChanged ๊ทธ๋ฃน์ด๋ `watchPaths`๋ฅผ ๋ฐํํ๋ [SessionStart](#sessionstart-decision-control) ๋๋ [CwdChanged](#cwdchanged) ํ
์ผ๋ก ๋ชฉ๋ก์ ์ด๊ธฐํํ์ธ์. ๊ฐ์ ์ค์ธ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ matcher๋ ์ฌ์ ํ ์คํํ ํ
๊ทธ๋ฃน์ ํํฐ๋งํ๋ฏ๋ก, ๋์ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ๊ทธ๋ฃน์ matcher๋ฅผ ์๋ตํ์ธ์. ์๋ต๋ matcher๋ ๊ฐ์ ์ค์ธ ๋ชจ๋ ํ์ผ๊ณผ ์ผ์นํ๋ฉฐ ๊ฐ์ ๋ชฉ๋ก์๋ ์๋ฌด๊ฒ๋ ์ถ๊ฐํ์ง ์์ต๋๋ค. `"*"` matcher๋ ๋ชจ๋ ํ์ผ๊ณผ ์ผ์นํ์ง๋ง, Claude Code๋ ์ด๋ฅผ ๋ค๋ฅธ ๊ฐ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก `*`๋ผ๋ ๋ฆฌํฐ๋ด ํ์ผ๋ก ๊ฐ์ ๋ชฉ๋ก์ ๋ฑ๋กํฉ๋๋ค.3306๋ฏธ๋ฆฌ ์ด๋ฆ์ ์ง์ ํ ์ ์๋ ํ์ผ์ ๊ฐ์ํ๋ ค๋ฉด ํ
์์ [`watchPaths`](#filechanged-output)๋ฅผ ๋ฐํํ์ฌ ๊ฐ์ ๋ชฉ๋ก์ ๋์ ์ผ๋ก ์
๋ฐ์ดํธํ์ธ์. Claude Code๋ ๊ฐ์ํ ํ์ผ์ด ์ง์ ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ์์๋ฅผ ์์ํ๋ฏ๋ก, matcher๊ฐ ์ต์ ํ๋์ ํ์ผ์ ์ง์ ํ๋ FileChanged ๊ทธ๋ฃน์ด๋ `watchPaths`๋ฅผ ๋ฐํํ๋ [SessionStart](#sessionstart-decision-control) ๋๋ [CwdChanged](#cwdchanged) ํ
์ผ๋ก ๋ชฉ๋ก์ ์ด๊ธฐ๊ฐ์ ์ฑ์ฐ์ธ์. ๊ฐ์ ์ค์ธ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ matcher๋ ์ฌ์ ํ ์คํํ ํ
๊ทธ๋ฃน์ ํํฐ๋งํ๋ฏ๋ก, ๋์ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ๊ทธ๋ฃน์์๋ matcher๋ฅผ ์๋ตํ์ธ์. ์๋ต๋ matcher๋ ๊ฐ์ ์ค์ธ ๋ชจ๋ ํ์ผ๊ณผ ์ผ์นํ๋ฉฐ ๊ฐ์ ๋ชฉ๋ก์ ์๋ฌด๊ฒ๋ ์ถ๊ฐํ์ง ์์ต๋๋ค. `"*"` matcher๋ ๋ชจ๋ ํ์ผ๊ณผ ์ผ์นํ์ง๋ง, Claude Code๋ ์ด๋ฅผ ๋ค๋ฅธ ๊ฐ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก `*`๋ผ๋ ์ด๋ฆ์ ๋ฆฌํฐ๋ด ํ์ผ๋ก ๊ฐ์ ๋ชฉ๋ก์ ๋ฑ๋กํฉ๋๋ค.
3281 3307
3282FileChanged ํ
์ [`CLAUDE_ENV_FILE`](#persist-environment-variables)์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํด๋น ํ์ผ์ ๊ธฐ๋ก๋ ๋ณ์๋ ๋ค์ [CwdChanged](#cwdchanged) ์ด๋ฒคํธ์์ Claude Code๊ฐ ์ง์ธ ๋๊น์ง ์ดํ์ Bash ๋ช
๋ น์ ์ ์ง๋ฉ๋๋ค.3308FileChanged ํ
์ [`CLAUDE_ENV_FILE`](#persist-environment-variables)์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํด๋น ํ์ผ์ ๊ธฐ๋ก๋ ๋ณ์๋ ๋ค์ [CwdChanged](#cwdchanged) ์ด๋ฒคํธ์์ Claude Code๊ฐ ์ด๋ฅผ ์ง์ธ ๋๊น์ง ์ดํ์ Bash ๋ช
๋ น์ ์ ์ง๋ฉ๋๋ค.
3283 3309
3284<h4 id="filechanged-input">3310<h4 id="filechanged-input">
3285 FileChanged ์
๋ ฅ3311 FileChanged ์
๋ ฅ
3307 FileChanged ์ถ๋ ฅ3333 FileChanged ์ถ๋ ฅ
3308</h4>3334</h4>
3309 3335
3310๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ FileChanged ํ
์ ๊ฐ์ํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋์ ์ผ๋ก ์
๋ฐ์ดํธํ๊ธฐ ์ํด `watchPaths`๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.3336๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋, FileChanged ํ
์ `watchPaths`๋ฅผ ๋ฐํํ์ฌ ๊ฐ์ํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋์ ์ผ๋ก ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค.
3311 3337
3312| ํ๋ | ์ค๋ช
|3338| ํ๋ | ์ค๋ช
|
3313| :- | :- |3339| :- | :- |
3314| `watchPaths` | ์ ๋ ๊ฒฝ๋ก์ ๋ฐฐ์ด. ํ์ฌ ๋์ ๊ฐ์ ๋ชฉ๋ก์ ๋์ฒดํฉ๋๋ค. `matcher` ๊ตฌ์ฑ์ ๊ฒฝ๋ก๋ ํญ์ ๊ฐ์๋ฉ๋๋ค. ํ
์คํฌ๋ฆฝํธ๊ฐ ๋ณ๊ฒฝ๋ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ํ ์ถ๊ฐ ํ์ผ์ ๋ฐ๊ฒฌํ ๋ ์ฌ์ฉํฉ๋๋ค |3340| `watchPaths` | ์ ๋ ๊ฒฝ๋ก์ ๋ฐฐ์ด์
๋๋ค. ํ์ฌ์ ๋์ ๊ฐ์ ๋ชฉ๋ก์ ๋์ฒดํฉ๋๋ค. `matcher` ๊ตฌ์ฑ์ ๊ฒฝ๋ก๋ ํญ์ ๊ฐ์๋ฉ๋๋ค. ํ
์คํฌ๋ฆฝํธ๊ฐ ๋ณ๊ฒฝ๋ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ํ ์ถ๊ฐ ํ์ผ์ ๋ฐ๊ฒฌํ ๋ ์ฌ์ฉํฉ๋๋ค |
3315 3341
3316FileChanged ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ํ์ผ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ ๊ฒ์ ์ฐจ๋จํ ์ ์์ต๋๋ค.3342FileChanged ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ํ์ผ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ ๊ฒ์ ์ฐจ๋จํ ์ ์์ต๋๋ค.
3317 3343
3318Claude Code๋ JSON ์ถ๋ ฅ์์ `watchPaths`์ `systemMessage`๋ฅผ ์ฝ๊ณ `continue`๋ ํ๊ธฐํฉ๋๋ค. ๋ํํ ์ธ์
์์๋ `systemMessage`๋ฅผ ์งง์ ํฐ๋ฏธ๋ ์๋ฆผ์ผ๋ก ํ์ํฉ๋๋ค. ์ด ๋ฉ์์ง๋ SDK ๋ฉ์์ง ์คํธ๋ฆผ์ ๋๋ฌํ์ง ์์ต๋๋ค.3344Claude Code๋ JSON ์ถ๋ ฅ์์ `watchPaths`์ `systemMessage`๋ฅผ ์ฝ๊ณ `continue`๋ ๋ฌด์ํฉ๋๋ค. ๋ํํ ์ธ์
์์๋ `systemMessage`๋ฅผ ์งง์ ํฐ๋ฏธ๋ ์๋ฆผ์ผ๋ก ํ์ํฉ๋๋ค. ์ด ๋ฉ์์ง๋ SDK ๋ฉ์์ง ์คํธ๋ฆผ์ ์ ๋ฌ๋์ง ์์ต๋๋ค.
3319 3345
3320<h3 id="worktreecreate">3346<h3 id="worktreecreate">
3321 WorktreeCreate3347 WorktreeCreate
3330* Claude Code๊ฐ [๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
](/docs/ko/agent-view#how-file-edits-are-isolated)์ ์์ฒด worktree์ ๊ฒฉ๋ฆฌํ๋ ๊ฒฝ์ฐ3356* Claude Code๊ฐ [๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
](/docs/ko/agent-view#how-file-edits-are-isolated)์ ์์ฒด worktree์ ๊ฒฉ๋ฆฌํ๋ ๊ฒฝ์ฐ
3331* `worktree` ๋ชจ๋์ [`claude remote-control`](/docs/ko/remote-control#start-a-remote-control-session)์ด ์์ฒด worktree์์ ์ธ์
์ ์์ํ๋ ๊ฒฝ์ฐ3357* `worktree` ๋ชจ๋์ [`claude remote-control`](/docs/ko/remote-control#start-a-remote-control-session)์ด ์์ฒด worktree์์ ์ธ์
์ ์์ํ๋ ๊ฒฝ์ฐ
3332 3358
3333Claude๊ฐ `EnterWorktree`๋ฅผ ํธ์ถํ์ง ์๊ณ Bash ๋๊ตฌ๋ฅผ ํตํด `git worktree add`๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ์๋ WorktreeCreate ํ
์ด ์คํ๋์ง ์์ต๋๋ค. ํด๋น ๋ช
๋ น์ ๊ฒ์ฌํ๊ฑฐ๋ ์ฐจ๋จํ๋ ค๋ฉด `Bash` matcher๋ฅผ ์ฌ์ฉํ๋ [`PreToolUse`](#pretooluse) ํ
์ ์ถ๊ฐํ์ญ์์ค.3359Claude๊ฐ `EnterWorktree`๋ฅผ ํธ์ถํ๋ ๋์ Bash ๋๊ตฌ๋ฅผ ํตํด `git worktree add`๋ฅผ ์คํํ๋ฉด WorktreeCreate ํ
์ ์คํ๋์ง ์์ต๋๋ค. ํด๋น ๋ช
๋ น์ ๊ฒ์ฌํ๊ฑฐ๋ ์ฐจ๋จํ๋ ค๋ฉด `Bash` matcher๋ฅผ ์ฌ์ฉํ๋ [`PreToolUse`](#pretooluse) ํ
์ ์ถ๊ฐํ์ธ์.
3334 3360
3335๊ธฐ๋ณธ์ ์ผ๋ก Claude Code๋ `git worktree`๋ก ๊ฒฉ๋ฆฌ๋ ์์
์ฌ๋ณธ์ ์์ฑํฉ๋๋ค. WorktreeCreate ํ
์ ๊ตฌ์ฑํ๋ฉด ์ด ๊ธฐ๋ณธ git ๋์์ด ๋์ฒด๋๋ฏ๋ก SVN, Perforce, Mercurial ๊ฐ์ ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.3361๊ธฐ๋ณธ์ ์ผ๋ก Claude Code๋ `git worktree`๋ก ๊ฒฉ๋ฆฌ๋ ์์
์ฌ๋ณธ์ ์์ฑํฉ๋๋ค. WorktreeCreate ํ
์ ๊ตฌ์ฑํ๋ฉด ์ด ๊ธฐ๋ณธ git ๋์์ด ๋์ฒด๋์ด SVN, Perforce, Mercurial ๊ฐ์ ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
3336 3362
3337ํ
์ด ๊ธฐ๋ณธ ๋์์ ์์ ํ ๋์ฒดํ๋ฏ๋ก [`.worktreeinclude`](/docs/ko/worktrees#copy-gitignored-files-into-worktrees)๋ ์ฒ๋ฆฌ๋์ง ์์ต๋๋ค. `.env`์ ๊ฐ์ ๋ก์ปฌ ์ค์ ํ์ผ์ ์ ์ํฌํธ๋ฆฌ๋ก ๋ณต์ฌํด์ผ ํ๋ค๋ฉด ํ
์คํฌ๋ฆฝํธ ์์์ ๋ณต์ฌํ์ญ์์ค.3363ํ
์ด ๊ธฐ๋ณธ ๋์์ ์์ ํ ๋์ฒดํ๋ฏ๋ก [`.worktreeinclude`](/docs/ko/worktrees#copy-gitignored-files-into-worktrees)๋ ์ฒ๋ฆฌ๋์ง ์์ต๋๋ค. `.env` ๊ฐ์ ๋ก์ปฌ ์ค์ ํ์ผ์ ์ ์ํฌํธ๋ฆฌ๋ก ๋ณต์ฌํด์ผ ํ๋ค๋ฉด ํ
์คํฌ๋ฆฝํธ ์์์ ์ํํ์ธ์.
3338 3364
3339ํ
์ ์์ฑ๋ worktree ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค. Claude Code๋ ์ด ๊ฒฝ๋ก๋ฅผ ๊ฒฉ๋ฆฌ๋ ์ธ์
์ ์์
๋๋ ํฐ๋ฆฌ๋ก ์ฌ์ฉํฉ๋๋ค. ๊ฐ ํ
์ ํ์ด ๊ฒฝ๋ก๋ฅผ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ [WorktreeCreate ์ถ๋ ฅ](#worktreecreate-output)์ ์ฐธ์กฐํ์ญ์์ค.3365ํ
์ ์์ฑ๋ worktree ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค. Claude Code๋ ์ด ๊ฒฝ๋ก๋ฅผ ๊ฒฉ๋ฆฌ๋ ์ธ์
์ ์์
๋๋ ํฐ๋ฆฌ๋ก ์ฌ์ฉํฉ๋๋ค. ๊ฐ ํ
์ ํ์ด ๊ฒฝ๋ก๋ฅผ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ [WorktreeCreate ์ถ๋ ฅ](#worktreecreate-output)์ ์ฐธ์กฐํ์ธ์.
3340 3366
3341Claude Code๋ ํ
์ ์ฑ๊ณต ์ฌ๋ถ์ ๋ฐํ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ๋์ํ๋ฉฐ, `systemMessage`์ `continue`๋ ๋ฒ๋ฆฝ๋๋ค.3367Claude Code๋ ํ
์ ์ฑ๊ณต ์ฌ๋ถ์ ๋ฐํ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ๋์ํ๋ฉฐ, `systemMessage`์ `continue`๋ ๋ฌด์ํฉ๋๋ค.
3342 3368
3343๋ค์ ์์๋ SVN ์์
์ฌ๋ณธ์ ๋ง๋ค๊ณ Claude Code๊ฐ ์ฌ์ฉํ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ์ ์ฅ์ URL์ ์ฌ์ฉ์์ URL๋ก ๋ฐ๊พธ์ญ์์ค.3369์ด ์์๋ SVN ์์
์ฌ๋ณธ์ ์์ฑํ๊ณ Claude Code๊ฐ ์ฌ์ฉํ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ์ ์ฅ์ URL์ ์ค์ ์ ์ฅ์๋ก ๋ฐ๊พธ์ธ์.
3344 3370
3345```json theme={null}3371```json theme={null}
3346{3372{
3359}3385}
3360```3386```
3361 3387
3362์ด ํ
์ stdin์ JSON ์
๋ ฅ์์ worktree `name`์ ์ฝ๊ณ , ์ ๋๋ ํฐ๋ฆฌ์ ์ ์ฌ๋ณธ์ ์ฒดํฌ์์ํ ๋ค์ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๋ง์ง๋ง ์ค์ `echo`๊ฐ Claude Code๊ฐ worktree ๊ฒฝ๋ก๋ก ์ฝ๋ ๋ถ๋ถ์
๋๋ค. ๊ฒฝ๋ก์ ์ถฉ๋ํ์ง ์๋๋ก ๋ค๋ฅธ ์ถ๋ ฅ์ ๋ชจ๋ stderr๋ก ๋ฆฌ๋๋ ์
ํ์ญ์์ค.3388ํ
์ stdin์ JSON ์
๋ ฅ์์ worktree `name`์ ์ฝ๊ณ , ์ ๋๋ ํฐ๋ฆฌ์ ์ ์ฌ๋ณธ์ ์ฒดํฌ์์ํ ๋ค์ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๋ง์ง๋ง ์ค์ `echo`๊ฐ Claude Code๊ฐ worktree ๊ฒฝ๋ก๋ก ์ฝ๋ ๋ถ๋ถ์
๋๋ค. ๊ฒฝ๋ก์ ๋ฐฉํด๊ฐ ๋์ง ์๋๋ก ๋ค๋ฅธ ๋ชจ๋ ์ถ๋ ฅ์ stderr๋ก ๋ฆฌ๋๋ ์
ํ์ธ์.
3363 3389
3364<h4 id="worktreecreate-input">3390<h4 id="worktreecreate-input">
3365 WorktreeCreate input3391 WorktreeCreate ์
๋ ฅ
3366</h4>3392</h4>
3367 3393
3368[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด WorktreeCreate ํ
์ `name` ํ๋๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ง์ ํ๊ฑฐ๋ ์๋ ์์ฑ๋ ์ worktree์ ์ฌ๋ฌ๊ทธ ์๋ณ์์ด๋ฉฐ, ์๋ฅผ ๋ค๋ฉด `bold-oak-a3f2`์ ๊ฐ์ต๋๋ค.3394[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ WorktreeCreate ํ
์ `name` ํ๋๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ ์ ์ํฌํธ๋ฆฌ์ ์ฌ๋ฌ๊ทธ ์๋ณ์๋ก, ์ฌ์ฉ์๊ฐ ์ง์ ํ๊ฑฐ๋ ์๋ ์์ฑ๋๋ฉฐ ์๋ฅผ ๋ค๋ฉด `bold-oak-a3f2`์ ๊ฐ์ต๋๋ค.
3369 3395
3370```json theme={null}3396```json theme={null}
3371{3397{
3378```3404```
3379 3405
3380<h4 id="worktreecreate-output">3406<h4 id="worktreecreate-output">
3381 WorktreeCreate output3407 WorktreeCreate ์ถ๋ ฅ
3382</h4>3408</h4>
3383 3409
3384WorktreeCreate ํ
์ ํ์ค ํ์ฉ/์ฐจ๋จ ๊ฒฐ์ ๋ชจ๋ธ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋์ ํ
์ ์ฑ๊ณต ๋๋ ์คํจ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํ
์ ์์ฑ๋ worktree ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.3410WorktreeCreate ํ
์ ํ์ค ํ์ฉ/์ฐจ๋จ ๊ฒฐ์ ๋ชจ๋ธ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋์ ํ
์ ์ฑ๊ณต ๋๋ ์คํจ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํ
์ ์์ฑ๋ worktree ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
3385 3411
3386* **๋ช
๋ น ํ
** (`type: "command"`): stdout์ ๋น์ด ์์ง ์์ ๋ง์ง๋ง ์ค์ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. Claude Code๋ ํด๋น ์ค์ ์ฝ๊ธฐ ์ ์ ANSI ์ด์ค์ผ์ดํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ฏ๋ก `echo` ์ ์ ์ถ๋ ฅ๋๋ ์
ธ ์์ ๋ฐฐ๋๋ ๋ฌด์๋ฉ๋๋ค. ํ
์ ๋ค๋ฅธ ์ถ๋ ฅ์ ๋ชจ๋ stderr๋ก ๋ฆฌ๋๋ ์
ํ์ญ์์ค.3412* **๋ช
๋ น ํ
** (`type: "command"`): stdout์ ๋น์ด ์์ง ์์ ๋ง์ง๋ง ์ค๋ก ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. Claude Code๋ ํด๋น ์ค์ ์ฝ๊ธฐ ์ ์ ANSI ์ด์ค์ผ์ดํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ฏ๋ก, `echo` ์ด์ ์ ์ถ๋ ฅ๋ ์
ธ ์์ ๋ฐฐ๋๋ ๋ฌด์๋ฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ํ
์ถ๋ ฅ์ stderr๋ก ๋ฆฌ๋๋ ์
ํ์ธ์.
3387* **HTTP ํ
** (`type: "http"`): ์๋ต ๋ณธ๋ฌธ์ `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`๋ฅผ ๋ฐํํฉ๋๋ค.3413* **HTTP ํ
** (`type: "http"`): ์๋ต ๋ณธ๋ฌธ์ `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`๋ฅผ ๋ฐํํฉ๋๋ค.
3388 3414
3389ํ
์ด ์คํจํ๊ฑฐ๋ ๊ฒฝ๋ก๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด worktree ์์ฑ์ด ์ค๋ฅ์ ํจ๊ป ์คํจํฉ๋๋ค.3415ํ
์ด ์คํจํ๊ฑฐ๋ ๊ฒฝ๋ก๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด worktree ์์ฑ์ด ์ค๋ฅ์ ํจ๊ป ์คํจํฉ๋๋ค.
3390 3416
3391Claude Code๋ ์๋ ๊ฒฝ๋ก๋ฅผ ํ
์ด ์คํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์ํ๋ฉฐ, ๊ฒฝ๋ก ์์ `.` ๋๋ `..` ์ธ๊ทธ๋จผํธ๋ฅผ ์ ๋ฆฌํฉ๋๋ค. ๊ฒฐ๊ณผ ๊ฒฝ๋ก๊ฐ Claude Code๊ฐ ๋ค์ด๊ฐ ์ ์๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์๋๋ฉด ์ธ์
์ ํด๋น ๊ฒฝ๋ก๋ฅผ ๋ช
์ํ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ๊ณ ์ฝ๋ 1๋ก ์ข
๋ฃ๋ฉ๋๋ค.3417Claude Code๋ ์๋ ๊ฒฝ๋ก๋ฅผ ํ
์ด ์คํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์ํ๋ฉฐ, ๊ฒฝ๋ก ์์ `.` ๋๋ `..` ์ธ๊ทธ๋จผํธ๋ฅผ ์ ๋ฆฌํฉ๋๋ค. ๊ฒฐ๊ณผ ๊ฒฝ๋ก๊ฐ Claude Code๊ฐ ์ง์
ํ ์ ์๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์๋๋ฉด, ์ธ์
์ ํด๋น ๊ฒฝ๋ก๋ฅผ ๋ช
์ํ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ๊ณ ์ฝ๋ 1๋ก ์ข
๋ฃ๋ฉ๋๋ค.
3392 3418
3393Claude Code๋ `.` ๋๋ `..` ์ธ๊ทธ๋จผํธ๊ฐ ํฌํจ๋ ์ ๋ ๊ฒฝ๋ก์ ์ ์ฅ์ ๋ฃจํธ ์๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑฐ์น๋ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. ์ ์ฅ์์ ์ปค๋ฐ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ worktree๋ฅผ ์ ์ฅ์ ์ธ๋ถ๋ก ๋ฆฌ๋๋ ์
ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ค๋ฅ ๋ฉ์์ง์๋ ๊ฑฐ๋ถ๋ ๊ตฌ์ฑ ์์๊ฐ ํ์๋ฉ๋๋ค. ์ ์ฅ์ ๋ด๋ถ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑฐ์น์ง ์๋ ์ ๊ทํ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐํํ์ญ์์ค. v2.1.216 ์ด์ ์๋ worktree ์์ฑ ์ ์ด๋ฌํ ๊ฒ์ฌ ์์ด ํ
์ ๊ฒฝ๋ก๋ฅผ ๊ทธ๋๋ก ๋ฐ๋์ต๋๋ค.3419Claude Code๋ `.` ๋๋ `..` ์ธ๊ทธ๋จผํธ๋ฅผ ํฌํจํ๋ ์ ๋ ๊ฒฝ๋ก์, ์ ์ฅ์ ๋ฃจํธ ์๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑฐ์น๋ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. ์ ์ฅ์์ ์ปค๋ฐ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ์ํฌํธ๋ฆฌ๋ฅผ ์ ์ฅ์ ์ธ๋ถ๋ก ๋ฆฌ๋๋ ์
ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ค๋ฅ์๋ ๊ฑฐ๋ถ๋ ๊ตฌ์ฑ ์์๊ฐ ๋ช
์๋ฉ๋๋ค. ์ ์ฅ์ ๋ด๋ถ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑฐ์น์ง ์๋ ์ ๊ทํ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐํํ์ธ์. v2.1.216 ์ด์ ์๋ worktree ์์ฑ์ด ์ด๋ฌํ ๊ฒ์ฌ ์์ด ํ
์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋์ต๋๋ค.
3394 3420
3395<h3 id="worktreeremove">3421<h3 id="worktreeremove">
3396 WorktreeRemove3422 WorktreeRemove
3397</h3>3423</h3>
3398 3424
3399Claude Code๊ฐ [`WorktreeCreate`](#worktreecreate) ํ
์ผ๋ก ์์ฑ๋ worktree๋ฅผ ์ ๋ฆฌํ ๋ ์คํ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.3425Claude Code๊ฐ [`WorktreeCreate`](#worktreecreate) ํ
์ด ์์ฑํ worktree๋ฅผ ์ ๋ฆฌํ ๋ ์คํ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ ๋ค์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
3400 3426
3401* ๋ํํ [worktree ์ธ์
](/docs/ko/worktrees#start-claude-in-a-worktree)์ ์ข
๋ฃํ๊ณ Claude Code๊ฐ ํ์ธ์ ์์ฒญํ ๋ worktree ์ ๊ฑฐ๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ3427* ๋ํํ [worktree ์ธ์
](/docs/ko/worktrees#start-claude-in-a-worktree)์ ์ข
๋ฃํ๊ณ Claude Code๊ฐ ํ์ธ์ ์์ฒญํ ๋ ์ํฌํธ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋๋ก ์ ํํ๋ ๊ฒฝ์ฐ
3402* [์ด๋ฆ์ ์ง์ ](/docs/ko/sessions#name-your-sessions)ํ์ง ์์ ๋ํํ worktree ์ธ์
์ ์ข
๋ฃํ๊ณ , Claude Code๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ์ ๋์ง ์๋ ํ์ผ์ ์ฐพ์ง ๋ชปํด ๋ฌป์ง ์๊ณ worktree๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ3428* [์ด๋ฆ์ ์ง์ ](/docs/ko/sessions#name-your-sessions)ํ์ง ์์ ๋ํํ worktree ์ธ์
์ ์ข
๋ฃํ๋๋ฐ, Claude Code๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ์ ๋์ง ์์ ํ์ผ์ ์ฐพ์ง ๋ชปํด ํ์ธ์ ์์ฒญํ์ง ์๊ณ ์ํฌํธ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ
3403* worktree์์ ์คํ๋๋ [๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
](/docs/ko/agent-view#what-deleting-a-session-removes)์ ์ญ์ ํ๋ ๊ฒฝ์ฐ3429* ํด๋น ์ํฌํธ๋ฆฌ์์ ์คํ๋๋ [๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
](/docs/ko/agent-view#what-deleting-a-session-removes)์ ์ญ์ ํ๋ ๊ฒฝ์ฐ
3404* ์ธ์
์ค์ Claude์๊ฒ ์ข
๋ฃํ๊ณ worktree๋ฅผ ์ ๊ฑฐํ๋๋ก ์์ฒญํ์ฌ, Claude๊ฐ [`ExitWorktree`](/docs/ko/tools-reference) ๋๊ตฌ๋ก ์ด๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ3430* ์ธ์
์ค์ Claude์๊ฒ ์ข
๋ฃ ํ ์ํฌํธ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋๋ก ์์ฒญํ๊ณ , Claude๊ฐ [`ExitWorktree`](/docs/ko/tools-reference) ๋๊ตฌ๋ก ์ด๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ
3405* [`claude remote-control`](/docs/ko/remote-control#start-a-remote-control-session)์ด `worktree` ๋ชจ๋๋ก ์์ํ ์ธ์
์ด ์ถฉ๋ ์์ด ์ข
๋ฃ๋๊ณ , Claude Code๊ฐ ํด๋น worktree์์ ๋ณ๊ฒฝ๋์๊ฑฐ๋ ์ถ์ ๋์ง ์์ ํ์ผ ๋ฐ ์ ์ปค๋ฐ์ ์ฐพ์ง ๋ชปํ๋ ๊ฒฝ์ฐ3431* [`claude remote-control`](/docs/ko/remote-control#start-a-remote-control-session)์ด `worktree` ๋ชจ๋๋ก ์์ํ ์ธ์
์ด ์ถฉ๋ ์์ด ์ข
๋ฃ๋๊ณ , Claude Code๊ฐ ํด๋น ์ํฌํธ๋ฆฌ์์ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ์ ๋์ง ์์ ํ์ผ๊ณผ ์ ์ปค๋ฐ์ ์ฐพ์ง ๋ชปํ๋ ๊ฒฝ์ฐ
3406* `worktree` ๋ชจ๋๋ก ์์๋ ์ธ์
์ด ์์ง ์คํ ์ค์ผ ๋ `claude remote-control`์ ์ค์งํ๊ณ , Claude Code๊ฐ ํด๋น worktree์์ ๋ณ๊ฒฝ๋์๊ฑฐ๋ ์ถ์ ๋์ง ์์ ํ์ผ ๋ฐ ์ ์ปค๋ฐ์ ์ฐพ์ง ๋ชปํ๋ ๊ฒฝ์ฐ3432* `claude remote-control`์ด `worktree` ๋ชจ๋๋ก ์์ํ ์ธ์
์ด ์์ง ์คํ ์ค์ผ ๋ ์ด๋ฅผ ์ค์งํ๊ณ , Claude Code๊ฐ ํด๋น ์ํฌํธ๋ฆฌ๋ค์์ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ์ ๋์ง ์์ ํ์ผ๊ณผ ์ ์ปค๋ฐ์ ์ฐพ์ง ๋ชปํ๋ ๊ฒฝ์ฐ
3407 3433
3408์๋ธ์์ด์ ํธ๋ ์ํฌํ๋ก ์์ด์ ํธ๊ฐ ์๋ฃ๋๋ฉด, Claude Code๋ WorktreeCreate ํ
์ด ํด๋น ์์ด์ ํธ๋ฅผ ์ํด ๋ง๋ worktree๋ฅผ ์ ์งํ๋ฉฐ WorktreeRemove ํ
์ ์คํํ์ง ์์ต๋๋ค. ์์
์ด ๋๋๋ฉด ํด๋น ์ํฌํธ๋ฆฌ๋ฅผ ์ง์ ์ ๊ฑฐํ์ญ์์ค.3434์๋ธ์์ด์ ํธ๋ ์ํฌํ๋ก ์์ด์ ํธ๊ฐ ์๋ฃ๋๋ฉด, Claude Code๋ WorktreeCreate ํ
์ด ํด๋น ์์ด์ ํธ๋ฅผ ์ํด ๋ง๋ ์ํฌํธ๋ฆฌ๋ฅผ ์ ์งํ๋ฉฐ WorktreeRemove ํ
์ ์คํํ์ง ์์ต๋๋ค. ์์
์ด ๋๋๋ฉด ํด๋น ์ํฌํธ๋ฆฌ๋ฅผ ์ง์ ์ ๊ฑฐํ์ธ์.
3409 3435
3410Claude Code๋ `ExitWorktree` ํธ์ถ์ด๋ `claude remote-control` ์ ๋ฆฌ ์์๋ ํ
์ด ์คํ๋๊ธฐ ์ ์ ํ์ธ์ ์์ฒญํ์ง ์์ต๋๋ค. `ExitWorktree`๋ ํธ์ถ์ [`discard_changes: true`](/docs/ko/agent-sdk/typescript#exitworktree)๊ฐ ์ ๋ฌ๋์ง ์๋ ํ ํ
์ด ์์ฑํ worktree์ ์ ๊ฑฐ๋ฅผ ๊ฑฐ๋ถํ๋ฏ๋ก, ํด๋น ๊ฒฝ๋ก์์๋ ํ
์ด ๋ง์ง๋ง ๊ฒ์ฌ ์ญํ ์ ํฉ๋๋ค.3436`ExitWorktree` ํธ์ถ์ด๋ `claude remote-control` ์ ๋ฆฌ์ ๊ฒฝ์ฐ, Claude Code๋ ํ
์ด ์คํ๋๊ธฐ ์ ์ ํ์ธ์ ์์ฒญํ์ง ์์ต๋๋ค. `ExitWorktree`๋ ํธ์ถ์ [`discard_changes: true`](/docs/ko/agent-sdk/typescript#exitworktree)๊ฐ ์ ๋ฌ๋์ง ์๋ ํ ํ
์ด ์์ฑํ ์ํฌํธ๋ฆฌ์ ์ ๊ฑฐ๋ฅผ ๊ฑฐ๋ถํ๋ฏ๋ก, ์ด ๊ฒฝ๋ก์์๋ ํ
์ด ๋ง์ง๋ง ๊ฒ์ฌ๊ฐ ๋ฉ๋๋ค.
3411 3437
3412Claude Code๋ git์ ์ฌ์ฉํด ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ์ ๋์ง ์๋ ํ์ผ์ ์ฐพ์ผ๋ฏ๋ก, git ์ฒดํฌ์์์ด ์๋๊ฑฐ๋ git ์ฒดํฌ์์ ๋ด๋ถ์ ์์ง ์์ worktree์์๋ ๋๋ ํฐ๋ฆฌ์ ์ปค๋ฐ๋์ง ์์ ์์
์ด ์๋๋ผ๋ ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํฉ๋๋ค. WorktreeRemove ํ
์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ ์ ๊ทธ๋ฌํ ์์
์ด ์๋์ง ํ์ธํ์ญ์์ค.3438Claude Code๋ git์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ์ ๋์ง ์์ ํ์ผ์ ์ฐพ์ผ๋ฏ๋ก, git ์ฒดํฌ์์์ด ์๋๊ฑฐ๋ ๊ทธ ์์ ์์ง ์์ ์ํฌํธ๋ฆฌ์์๋ ๋๋ ํฐ๋ฆฌ์ ์ปค๋ฐ๋์ง ์์ ์์
์ด ์๋๋ผ๋ ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํฉ๋๋ค. WorktreeRemove ํ
์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ ์ ์ด๋ฌํ ์์
์ด ์๋์ง ํ์ธํ์ธ์.
3413 3439
3414git ๊ธฐ๋ฐ worktree์ ๊ฒฝ์ฐ Claude Code๋ `git worktree remove`๋ก ์ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. WorktreeCreate ํ
์ ๊ตฌ์ฑํ๋ค๋ฉด, ์ ๋ฆฌ๋ฅผ ์ ์ดํ๊ธฐ ์ํด WorktreeRemove ํ
๊ณผ ํจ๊ป ์ฌ์ฉํ์ญ์์ค.3440git ๊ธฐ๋ฐ ์ํฌํธ๋ฆฌ์ ๊ฒฝ์ฐ Claude Code๋ `git worktree remove`๋ก ์ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. WorktreeCreate ํ
์ ๊ตฌ์ฑํ๋ค๋ฉด, ์ ๋ฆฌ๋ฅผ ์ ์ดํ๊ธฐ ์ํด WorktreeRemove ํ
๊ณผ ํจ๊ป ์ฌ์ฉํ์ธ์.
3415 3441
3416* **WorktreeRemove ํ
์ด ์๋ ๊ฒฝ์ฐ**: ์ข
๋ฃ ์ ๋๋ `ExitWorktree`๋ฅผ ํตํ ์ ๊ฑฐ์์๋ Claude Code๊ฐ git์ผ๋ก ํด๋ฐฑํ๊ณ , `claude remote-control`์ด ์ ๋ฆฌํ ๋๋ worktree๋ฅผ ์ ์งํฉ๋๋ค.3442* **WorktreeRemove ํ
์ด ์๋ ๊ฒฝ์ฐ**: ์ข
๋ฃ ์ ๋๋ `ExitWorktree`๋ฅผ ํตํ ์ ๊ฑฐ์์๋ Claude Code๊ฐ git์ผ๋ก ํด๋ฐฑํ๊ณ , `claude remote-control`์ด ์ ๋ฆฌํ ๋๋ ์ํฌํธ๋ฆฌ๋ฅผ ์ ์งํฉ๋๋ค.
3417 * **worktree ์ธ์
์ ์ข
๋ฃํ๊ฑฐ๋ Claude๊ฐ `ExitWorktree`๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ**: Claude Code๋ WorktreeCreate ํ
์ด ๋ฐํํ ๊ฒฝ๋ก๋ฅผ `git worktree remove --force`์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๊ฑฐํ๋ฏ๋ก, git์ด ์ธ์ํ๋ worktree๋ ์ ๊ฑฐ๋ฉ๋๋ค. git์ด ์ธ์ํ์ง ๋ชปํ๋ worktree(์: ํ
์ด git์ด ์๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ผ๋ก ์์ฑํ worktree)๋ ๋์คํฌ์ ๋จ์ต๋๋ค.3443 * **worktree ์ธ์
์ ์ข
๋ฃํ๊ฑฐ๋ Claude๊ฐ `ExitWorktree`๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ**: Claude Code๋ WorktreeCreate ํ
์ด ๋ฐํํ ๊ฒฝ๋ก๋ฅผ `git worktree remove --force`์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๊ฑฐํ๋ฏ๋ก, git์ด ์ธ์ํ๋ ์ํฌํธ๋ฆฌ๋ ์ ๊ฑฐ๋ฉ๋๋ค. git์ด ์ธ์ํ์ง ๋ชปํ๋ ์ํฌํธ๋ฆฌ, ์๋ฅผ ๋ค์ด ํ
์ด git์ด ์๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ผ๋ก ์์ฑํ ์ํฌํธ๋ฆฌ๋ ๋์คํฌ์ ๋จ์ต๋๋ค.
3418 * **`claude remote-control`์ด ์ธ์
์ worktree๋ฅผ ์ ๋ฆฌํ๋ ๊ฒฝ์ฐ**: worktree๋ ๋์คํฌ์ ๋จ์ผ๋ฉฐ, `claude remote-control`์ ์คํ ์ค์ธ ํฐ๋ฏธ๋์ `worktree removal failed, kept: <path>`๊ฐ ํ์๋ฉ๋๋ค.3444 * **`claude remote-control`์ด ์ธ์
์ ์ํฌํธ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋ ๊ฒฝ์ฐ**: ์ํฌํธ๋ฆฌ๋ ๋์คํฌ์ ๋จ๊ณ , `claude remote-control`์ ์คํํ๋ ํฐ๋ฏธ๋์ `worktree removal failed, kept: <path>`๊ฐ ํ์๋ฉ๋๋ค.
3419 * **๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ ์ญ์ ํ๋ ๊ฒฝ์ฐ**: [์ธ์
์ญ์ ์ ์ ๊ฑฐ๋๋ ํญ๋ชฉ](/docs/ko/agent-view#what-deleting-a-session-removes)์ ์ฐธ์กฐํ์ญ์์ค.3445 * **๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ ์ญ์ ํ๋ ๊ฒฝ์ฐ**: [์ธ์
์ญ์ ์ ์ ๊ฑฐ๋๋ ํญ๋ชฉ](/docs/ko/agent-view#what-deleting-a-session-removes)์ ์ฐธ์กฐํ์ธ์.
3420* **ํ
์ด 0์ผ๋ก ์ข
๋ฃ๋๋ ๊ฒฝ์ฐ**: worktree๊ฐ ์ ๊ฑฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. Claude Code๋ ํ
์์ ๋ค๋ฅธ ๋ด์ฉ์ ์ฝ์ง ์์ผ๋ฏ๋ก ํ
์ด ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ๋์ง ํ์ธํ์ญ์์ค.3446* **ํ
์ด 0์ผ๋ก ์ข
๋ฃํ๋ ๊ฒฝ์ฐ**: ์ํฌํธ๋ฆฌ๊ฐ ์ ๊ฑฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. Claude Code๋ ํ
์์ ๋ค๋ฅธ ๊ฒ์ ์ฝ์ง ์์ผ๋ฏ๋ก, ํ
์ด ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ๋์ง ํ์ธํ์ธ์.
3421* **ํ
์ด 0์ด ์๋ ์ฝ๋๋ก ์ข
๋ฃ๋๋ ๊ฒฝ์ฐ**: ์ดํ์๋ `worktree_path`์ ๋๋ ํฐ๋ฆฌ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ฉด ์ ๊ฑฐ๊ฐ ์คํจํ๊ณ , git ํด๋ฐฑ ์์ด worktree๊ฐ ๋์คํฌ์ ๋จ์ต๋๋ค. 0์ด ์๋ ์ฝ๋๋ก ์ข
๋ฃํ๊ธฐ ์ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ ํ
์ ์ ๊ฑฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์คํจ๊ฐ ๋ณด๊ณ ๋๋ ๋ฐฉ์์ [WorktreeRemove ์
๋ ฅ](#worktreeremove-input)์ ์ฐธ์กฐํ์ญ์์ค.3447* **ํ
์ด 0์ด ์๋ ๊ฐ์ผ๋ก ์ข
๋ฃํ๋ ๊ฒฝ์ฐ**: ์ดํ์๋ `worktree_path`์ ๋๋ ํฐ๋ฆฌ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ฉด ์ ๊ฑฐ๊ฐ ์คํจํ๋ฉฐ, ์ํฌํธ๋ฆฌ๋ git ํด๋ฐฑ ์์ด ๋์คํฌ์ ๋จ์ต๋๋ค. 0์ด ์๋ ๊ฐ์ผ๋ก ์ข
๋ฃํ๊ธฐ ์ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ ํ
์ ์ ๊ฑฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์คํจ๊ฐ ๋ณด๊ณ ๋๋ ๋ฐฉ์์ [WorktreeRemove ์
๋ ฅ](#worktreeremove-input)์ ์ฐธ์กฐํ์ธ์.
3422 3448
3423Claude Code๋ WorktreeCreate ํ
์ด ๋ฐํํ ๊ฒฝ๋ก๋ง ์๊ณ ์์ผ๋ฏ๋ก ํ
์ผ๋ก ์์ฑ๋ worktree์ ์ํ ๋ธ๋์น๋ฅผ ์ญ์ ํ์ง ์์ต๋๋ค. WorktreeCreate ํ
์ด ๋ธ๋์น๋ฅผ ์์ฑํ๋ค๋ฉด WorktreeRemove ํ
์์ ์ญ์ ํ์ญ์์ค.3449Claude Code๋ WorktreeCreate ํ
์ด ๋ฐํํ ๊ฒฝ๋ก๋ง ์๊ธฐ ๋๋ฌธ์, ํ
์ด ์์ฑํ ์ํฌํธ๋ฆฌ์ ์ํ ๋ธ๋์น๋ฅผ ์ญ์ ํ์ง ์์ต๋๋ค. WorktreeCreate ํ
์ด ๋ธ๋์น๋ฅผ ์์ฑํ๋ค๋ฉด WorktreeRemove ํ
์์ ์ญ์ ํ์ธ์.
3424 3450
3425Claude Code๋ WorktreeRemove ํ
์ `systemMessage`, `continue` ๋ฑ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฒ๋ฆฝ๋๋ค.3451Claude Code๋ `systemMessage`, `continue` ๊ฐ์ WorktreeRemove ํ
์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฌด์ํฉ๋๋ค.
3426 3452
3427๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ญ์ ์ Claude Code๋ ํ
์ ์คํํ๊ธฐ ์ ์ ์ ์ฅ๋ worktree ๊ฒฝ๋ก๋ฅผ ํ์ธํ๊ณ , ์ฌ๋ณผ๋ฆญ ๋งํฌ์ด๊ฑฐ๋ ์ ์ฅ์ ๋ฃจํธ ์๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑฐ์น๋ ๊ฒฝ๋ก๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. ์ด ๊ฒฝ๋ก์์๋ [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view#what-deleting-a-session-removes)์์ ์ญ์ ๋ฅผ ํ์ธํ ๊ฒฝ์ฐ์๋ง ์์ง ํ์ผ์ด ์๋ worktree์ ๋ํด ํ
์ด ์คํ๋ฉ๋๋ค. ๊ทธ๋ฌํ worktree์ ๊ฒฝ์ฐ [`claude rm`](/docs/ko/agent-view#manage-sessions-from-the-shell)์ ์ธ์
๊ณผ worktree๋ฅผ ๋์ ์ ์งํฉ๋๋ค. v2.1.216 ์ด์ ์๋ ์ด๋ฌํ ๊ฒ์ฌ ์์ด ์ ์ฅ๋ ๊ฒฝ๋ก์์ ํ
์ด ์คํ๋์์ต๋๋ค.3453๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ญ์ ์ ๊ฒฝ์ฐ, Claude Code๋ ํ
์ ์คํํ๊ธฐ ์ ์ ์ ์ฅ๋ ์ํฌํธ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ๊ฒ์ฆํ๊ณ , ์ฌ๋ณผ๋ฆญ ๋งํฌ์ด๊ฑฐ๋ ์ ์ฅ์ ๋ฃจํธ ์๋์์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑฐ์น๋ ๊ฒฝ๋ก๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. ์ด ๊ฒฝ๋ก์์ ์์ง ํ์ผ์ ํฌํจํ๊ณ ์๋ ์ํฌํธ๋ฆฌ์ ๋ํด์๋ [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view#what-deleting-a-session-removes)์์ ์ญ์ ๋ฅผ ํ์ธํ ๊ฒฝ์ฐ์๋ง ํ
์ด ์คํ๋ฉ๋๋ค. ์ด๋ฌํ ์ํฌํธ๋ฆฌ์ ๋ํด [`claude rm`](/docs/ko/agent-view#manage-sessions-from-the-shell)์ ๋์ ์ธ์
๊ณผ ์ํฌํธ๋ฆฌ๋ฅผ ์ ์งํฉ๋๋ค. v2.1.216 ์ด์ ์๋ ์ด๋ฌํ ๊ฒ์ฌ ์์ด ์ ์ฅ๋ ๊ฒฝ๋ก์์ ํ
์ด ์คํ๋์์ต๋๋ค.
3428 3454
3429Claude Code๋ WorktreeCreate๊ฐ ๋ฐํํ ๊ฒฝ๋ก๋ฅผ ํ
์
๋ ฅ์ `worktree_path`๋ก ์ ๋ฌํฉ๋๋ค. ๋ค์ ์์๋ ํด๋น ๊ฒฝ๋ก๋ฅผ ์ฝ๊ณ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.3455Claude Code๋ WorktreeCreate๊ฐ ๋ฐํํ ๊ฒฝ๋ก๋ฅผ ํ
์
๋ ฅ์ `worktree_path`๋ก ์ ๋ฌํฉ๋๋ค. ์ด ์์๋ ํด๋น ๊ฒฝ๋ก๋ฅผ ์ฝ๊ณ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
3430 3456
3431```json theme={null}3457```json theme={null}
3432{3458{
3446```3472```
3447 3473
3448<h4 id="worktreeremove-input">3474<h4 id="worktreeremove-input">
3449 WorktreeRemove input3475 WorktreeRemove ์
๋ ฅ
3450</h4>3476</h4>
3451 3477
3452[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด WorktreeRemove ํ
์ ์ ๊ฑฐ๋๋ worktree์ ์ ๋ ๊ฒฝ๋ก์ธ `worktree_path` ํ๋๋ฅผ ๋ฐ์ต๋๋ค.3478[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ WorktreeRemove ํ
์ ์ ๊ฑฐ๋๋ ์ํฌํธ๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก์ธ `worktree_path` ํ๋๋ฅผ ๋ฐ์ต๋๋ค.
3453 3479
3454```json theme={null}3480```json theme={null}
3455{3481{
3461}3487}
3462```3488```
3463 3489
3464WorktreeRemove ํ
์ ์ข
๋ฃ ์ฝ๋๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํ
์ด 0์ด ์๋ ์ฝ๋๋ก ์ข
๋ฃ๋๊ณ ์ดํ์๋ `worktree_path`์ ๋๋ ํฐ๋ฆฌ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ฉด ์ ๊ฑฐ๊ฐ ์คํจํฉ๋๋ค.3490WorktreeRemove ํ
์ ์ข
๋ฃ ์ฝ๋๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํ
์ด 0์ด ์๋ ๊ฐ์ผ๋ก ์ข
๋ฃํ๊ณ ์ดํ์๋ `worktree_path`์ ๋๋ ํฐ๋ฆฌ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ฉด ์ ๊ฑฐ๊ฐ ์คํจํฉ๋๋ค.
3465 3491
3466* worktree๋ ๋์คํฌ์ ๋จ๊ณ , ํ
์ ๋ช
๋ น๊ณผ stderr๋ [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)์ ๊ธฐ๋ก๋ฉ๋๋ค.3492* ์ํฌํธ๋ฆฌ๋ ๋์คํฌ์ ๋จ๊ณ , ํ
์ ๋ช
๋ น๊ณผ stderr๋ [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)์ ๊ธฐ๋ก๋ฉ๋๋ค.
3467* ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ ์ญ์ ํ๋ ์ค์ด์๋ค๋ฉด ์ธ์
๋ ์ ์ง๋ฉ๋๋ค. [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view#what-deleting-a-session-removes)์ ๊ฑฐ๋ถ ๋ฉ์์ง๋ `exited 1`๊ณผ ๊ฐ์ด ํ
์ด ์ด๋ป๊ฒ ์ข
๋ฃ๋์๋์ง ๋ณด๊ณ ํ๊ณ , stderr์ ์๋ถ๋ถ์ ์ธ์ฉํ๋ฉฐ, ์ธ์
์ ๋ค์ ์ญ์ ํ๋ฉด ๋๋ ํฐ๋ฆฌ๊ฐ ์ด์จ๋ ์ ๊ฑฐ๋๋์ง ์ฌ๋ถ๋ฅผ ์๋ ค ์ค๋๋ค.3493* ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์
์ ์ญ์ ํ๋ ์ค์ด์๋ค๋ฉด ์ธ์
๋ ๋จ์ต๋๋ค. [์์ด์ ํธ ๋ทฐ](/docs/ko/agent-view#what-deleting-a-session-removes)์ ๊ฑฐ๋ถ ๋ฉ์์ง๋ `exited 1`์ฒ๋ผ ํ
์ด ์ด๋ป๊ฒ ์ข
๋ฃ๋์๋์ง ๋ณด๊ณ ํ๊ณ , stderr์ ์์ ๋ถ๋ถ์ ์ธ์ฉํ๋ฉฐ, ์ธ์
์ ๋ค์ ์ญ์ ํ๋ฉด ์ด์จ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์ ๊ฑฐ๋๋์ง ์ฌ๋ถ๋ฅผ ์๋ ค์ค๋๋ค.
3468* `claude remote-control`์ด ์ธ์
์ worktree๋ฅผ ์ ๋ฆฌํ๋ ์ค์ด์๋ค๋ฉด, ์ด๋ฅผ ์คํ ์ค์ธ ํฐ๋ฏธ๋์ `worktree removal failed, kept: <path>`๊ฐ ํ์๋ฉ๋๋ค.3494* `claude remote-control`์ด ์ธ์
์ ์ํฌํธ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋ ์ค์ด์๋ค๋ฉด, ์ด๋ฅผ ์คํํ๋ ํฐ๋ฏธ๋์ `worktree removal failed, kept: <path>`๊ฐ ํ์๋ฉ๋๋ค.
3469 3495
3470<h3 id="precompact">3496<h3 id="precompact">
3471 PreCompact3497 PreCompact
3478| Matcher | ์คํ ์์ |3504| Matcher | ์คํ ์์ |
3479| :- | :- |3505| :- | :- |
3480| `manual` | `/compact` |3506| `manual` | `/compact` |
3481| `auto` | ๋ํ๊ฐ [์๋ ์์ถ ์๋์ฐ](/docs/ko/model-config#set-the-auto-compact-window)์ ๋๋ฌํ์ ๋์ ์๋ ์์ถ |3507| `auto` | ๋ํ๊ฐ [์๋ ์์ถ ์๋์ฐ](/docs/ko/model-config#set-the-auto-compact-window)์ ๋๋ฌํ ๋์ ์๋ ์์ถ, ๊ทธ๋ฆฌ๊ณ [์ ํด ์์ถ](/docs/ko/settings-reference#idlecompaction) |
3482 3508
3483์์ถ์ ์ฐจ๋จํ๋ ค๋ฉด ์ฝ๋ 2๋ก ์ข
๋ฃํ์ญ์์ค. ์๋ `/compact`์ ๊ฒฝ์ฐ stderr ๋ฉ์์ง๊ฐ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. `"decision": "block"`์ด ํฌํจ๋ JSON์ ๋ฐํํ์ฌ ์ฐจ๋จํ ์๋ ์์ต๋๋ค.3509์์ถ์ ์ฐจ๋จํ๋ ค๋ฉด ์ฝ๋ 2๋ก ์ข
๋ฃํ์ธ์. ์๋ `/compact`์ ๊ฒฝ์ฐ stderr ๋ฉ์์ง๊ฐ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. `"decision": "block"`์ด ํฌํจ๋ JSON์ ๋ฐํํ์ฌ ์ฐจ๋จํ ์๋ ์์ต๋๋ค.
3484 3510
3485์๋ ์์ถ์ ์ฐจ๋จํ๋ฉด ์คํ ์์ ์ ๋ฐ๋ผ ํจ๊ณผ๊ฐ ๋ค๋ฆ
๋๋ค. ์ปจํ
์คํธ ํ๋์ ๋๋ฌํ๊ธฐ ์ ์ ์์ถ์ด ์ ์ ์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ Claude Code๋ ์์ถ์ ๊ฑด๋๋ฐ๊ณ ์์ถ๋์ง ์์ ์ํ๋ก ๋ํ๋ฅผ ๊ณ์ํฉ๋๋ค. API๊ฐ ์ด๋ฏธ ๋ฐํํ ์ปจํ
์คํธ ํ๋ ์ค๋ฅ์์ ๋ณต๊ตฌํ๊ธฐ ์ํด ์์ถ์ด ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ์๋ ์๋ ์ค๋ฅ๊ฐ ํ์๋๊ณ ํ์ฌ ์์ฒญ์ด ์คํจํฉ๋๋ค.3511์๋ ์์ถ์ ์ฐจ๋จํ๋ฉด ์คํ ์์ ์ ๋ฐ๋ผ ํจ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋๋ค. ์ปจํ
์คํธ ํ๋์ ๋๋ฌํ๊ธฐ ์ ์ ์ ์ ์ ์ผ๋ก ์์ถ์ด ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ, Claude Code๋ ์์ถ์ ๊ฑด๋๋ฐ๊ณ ๋ํ๋ ์์ถ๋์ง ์์ ์ํ๋ก ๊ณ์๋ฉ๋๋ค. API๊ฐ ์ด๋ฏธ ๋ฐํํ ์ปจํ
์คํธ ํ๋ ์ค๋ฅ์์ ๋ณต๊ตฌํ๊ธฐ ์ํด ์์ถ์ด ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ, ๊ทผ๋ณธ ์ค๋ฅ๊ฐ ๋๋ฌ๋๊ณ ํ์ฌ ์์ฒญ์ ์คํจํฉ๋๋ค.
3486 3512
3487Claude Code๋ PreCompact ํ
์ `systemMessage` ๋ฐ `continue` ํ๋๋ฅผ ๋ฒ๋ฆฝ๋๋ค.3513Claude Code๋ PreCompact ํ
์ `systemMessage`์ `continue` ํ๋๋ฅผ ๋ฌด์ํฉ๋๋ค.
3488 3514
3489<h4 id="precompact-input">3515<h4 id="precompact-input">
3490 PreCompact input3516 PreCompact ์
๋ ฅ
3491</h4>3517</h4>
3492 3518
3493[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด PreCompact ํ
์ `trigger`์ `custom_instructions`๋ฅผ ๋ฐ์ต๋๋ค. `manual`์ ๊ฒฝ์ฐ `custom_instructions`์๋ ์ฌ์ฉ์๊ฐ `/compact`์ ์ ๋ฌํ ๋ด์ฉ์ด ํฌํจ๋๋ฉฐ, ์๋ฌด๊ฒ๋ ์ ๋ฌํ์ง ์์ผ๋ฉด `null`์
๋๋ค. `auto`์ ๊ฒฝ์ฐ `custom_instructions`๋ `null`์
๋๋ค.3519[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PreCompact ํ
์ `trigger`์ `custom_instructions`๋ฅผ ๋ฐ์ต๋๋ค. `manual`์ ๊ฒฝ์ฐ `custom_instructions`์๋ ์ฌ์ฉ์๊ฐ `/compact`์ ์ ๋ฌํ ๋ด์ฉ์ด ํฌํจ๋๋ฉฐ, ์๋ฌด๊ฒ๋ ์ ๋ฌํ์ง ์์ผ๋ฉด `null`์
๋๋ค. `auto`์ ๊ฒฝ์ฐ `custom_instructions`๋ `null`์
๋๋ค.
3494 3520
3495```json theme={null}3521```json theme={null}
3496{3522{
3507 PostCompact3533 PostCompact
3508</h3>3534</h3>
3509 3535
3510Claude Code๊ฐ ์์ถ ์์
์ ์๋ฃํ ํ ์คํ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ก ์์ถ๋ ์ํ์ ๋์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ฑ๋ ์์ฝ์ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋ ์ธ๋ถ ์ํ๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. Claude Code๋ PostCompact ํ
์ `systemMessage` ๋ฐ `continue` ํ๋๋ฅผ ๋ฒ๋ฆฝ๋๋ค.3536Claude Code๊ฐ ์์ถ ์์
์ ์๋ฃํ ํ ์คํ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ์์ถ๋ ์ํ์ ๋์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ฑ๋ ์์ฝ์ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ฑฐ๋ ์ธ๋ถ ์ํ๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. Claude Code๋ PostCompact ํ
์ `systemMessage`์ `continue` ํ๋๋ฅผ ๋ฌด์ํฉ๋๋ค.
3511 3537
3512`PreCompact`์ ๋์ผํ matcher ๊ฐ์ด ์ ์ฉ๋ฉ๋๋ค.3538`PreCompact`์ ๋์ผํ matcher ๊ฐ์ด ์ ์ฉ๋ฉ๋๋ค.
3513 3539
3514| Matcher | ์คํ ์์ |3540| Matcher | ์คํ ์์ |
3515| :- | :- |3541| :- | :- |
3516| `manual` | `/compact` ์ดํ |3542| `manual` | `/compact` ์ดํ |
3517| `auto` | ๋ํ๊ฐ [์๋ ์์ถ ์๋์ฐ](/docs/ko/model-config#set-the-auto-compact-window)์ ๋๋ฌํ์ฌ ์๋ ์์ถ๋ ์ดํ |3543| `auto` | ๋ํ๊ฐ [์๋ ์์ถ ์๋์ฐ](/docs/ko/model-config#set-the-auto-compact-window)์ ๋๋ฌํ ๋์ ์๋ ์์ถ ์ดํ, ๊ทธ๋ฆฌ๊ณ [์ ํด ์์ถ](/docs/ko/settings-reference#idlecompaction) ์ดํ |
3518 3544
3519<h4 id="postcompact-input">3545<h4 id="postcompact-input">
3520 PostCompact input3546 PostCompact ์
๋ ฅ
3521</h4>3547</h4>
3522 3548
3523[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด PostCompact ํ
์ `trigger`์ `compact_summary`๋ฅผ ๋ฐ์ต๋๋ค. `compact_summary` ํ๋์๋ ์์ถ ์์
์ผ๋ก ์์ฑ๋ ๋ํ ์์ฝ์ด ํฌํจ๋ฉ๋๋ค.3549[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PostCompact ํ
์ `trigger`์ `compact_summary`๋ฅผ ๋ฐ์ต๋๋ค. `compact_summary` ํ๋์๋ ์์ถ ์์
์ผ๋ก ์์ฑ๋ ๋ํ ์์ฝ์ด ํฌํจ๋ฉ๋๋ค.
3524 3550
3525```json theme={null}3551```json theme={null}
3526{3552{
3533}3559}
3534```3560```
3535 3561
3536PostCompact ํ
์๋ ๊ฒฐ์ ์ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์์ถ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค ์๋ ์์ง๋ง ํ์ ์์
์ ์ํํ ์ ์์ต๋๋ค.3562PostCompact ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ์์ถ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค ์๋ ์์ง๋ง ํ์ ์์
์ ์ํํ ์ ์์ต๋๋ค.
3537 3563
3538<h3 id="premodelswitch">3564<h3 id="premodelswitch">
3539 PreModelSwitch3565 PreModelSwitch
3540</h3>3566</h3>
3541 3567
3542์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ชจ๋ธ ์ ํ์ Claude Code๊ฐ ์ ์ฉํ๊ธฐ ์ ์ ์คํ๋ฉ๋๋ค. ์ ํ์ ์ฐจ๋จํ๊ฑฐ๋, ํ์ธ์ ์๊ตฌํ๊ฑฐ๋, ์ ํ์ด ์ผ์ด๋๊ธฐ ์ ์ ์ ํ ๋น์ฉ์ ๋ณด์ฌ ์ฃผ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.3568์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ชจ๋ธ ์ ํ์ Claude Code๊ฐ ์ ์ฉํ๊ธฐ ์ ์ ์คํ๋ฉ๋๋ค. ์ ํ์ ์ฐจ๋จํ๊ฑฐ๋, ํ์ธ์ ์๊ตฌํ๊ฑฐ๋, ์ ํ์ด ์ผ์ด๋๊ธฐ ์ ์ ์ ํ ๋น์ฉ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
3543 3569
3544PreModelSwitch๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Claude Code v2.1.251 ์ด์์ด ํ์ํฉ๋๋ค. Claude Code๋ ๋ค์ ์์ฒญ์ ๋ํด ์ด ํ
์ ์คํํฉ๋๋ค.3570PreModelSwitch์๋ Claude Code v2.1.251 ์ด์์ด ํ์ํฉ๋๋ค. Claude Code๋ ๋ค์ ์์ฒญ์ ๋ํด ์ด ํ
์ ์คํํฉ๋๋ค.
3545 3571
3546* `/model <name>` ๋ฐ `/model` ์ ํ๊ธฐ3572* `/model <name>` ๋ฐ `/model` ์ ํ๊ธฐ
3547* `Option+P` ๋๋ `Alt+P` ๋ชจ๋ธ ์ ํ๊ธฐ3573* `Option+P` ๋๋ `Alt+P` ๋ชจ๋ธ ์ ํ๊ธฐ
3548* `/config`์ Model ์ค์ 3574* `/config`์ Model ์ค์
3549* ์ธ์
์ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ์ [๋น ๋ฅธ ๋ชจ๋](/docs/ko/fast-mode) ์ผ๊ธฐ3575* ์ธ์
์ ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์ [๋น ๋ฅธ ๋ชจ๋](/docs/ko/fast-mode) ์ผ๊ธฐ
3550* [Agent SDK](/docs/ko/agent-sdk/typescript#query-object) ํธ์คํธ ๋๋ [Remote Control](/docs/ko/remote-control)์์ ๋ณด๋ธ `set_model` ์์ฒญ ๋๋ `apply_flag_settings` ์์ฒญ์ ๋ชจ๋ธ ๋ณ๊ฒฝ3576* [Agent SDK](/docs/ko/agent-sdk/typescript#query-object) ํธ์คํธ ๋๋ [Remote Control](/docs/ko/remote-control)์์ ๋ณด๋ธ `set_model` ์์ฒญ, ๋๋ `apply_flag_settings` ์์ฒญ์ ๋ชจ๋ธ ๋ณ๊ฒฝ
3551 3577
3552Claude Code๋ [์๋ ๋ชจ๋ธ ํด๋ฐฑ](/docs/ko/model-config#automatic-model-fallback)์ด๋ ์ธ์
์ฌ๊ฐ ์ ๋ชจ๋ธ ๋ณต์์ฒ๋ผ ์์ฒด์ ์ผ๋ก ์ํํ๋ ์ ํ์ ๋ํด์๋ PreModelSwitch ํ
์ ์คํํ์ง ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ [PostModelSwitch](#postmodelswitch)์๋ง ์ ๋ฌ๋ฉ๋๋ค.3578Claude Code๋ [์๋ ๋ชจ๋ธ ํด๋ฐฑ](/docs/ko/model-config#automatic-model-fallback)์ด๋ ์ธ์
์ ์ฌ๊ฐํ ๋์ ๋ชจ๋ธ ๋ณต์์ฒ๋ผ ์์ฒด์ ์ผ๋ก ์ํํ๋ ์ ํ์ ๋ํด์๋ PreModelSwitch ํ
์ ์คํํ์ง ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ [PostModelSwitch](#postmodelswitch)์๋ง ์ ๋ฌ๋ฉ๋๋ค.
3553 3579
3554Claude Code๋ `[1m]` ์ ๋ฏธ์ฌ๋ฅผ ๋ฌด์ํ๊ณ , ์ธ์
์ด ์ ํํ๋ ค๋ ๋ชจ๋ธ์ ์ ์ ์ด๋ฆ๊ณผ matcher๋ฅผ ๋น๊ตํฉ๋๋ค. `opus`์ ๊ฐ์ ๋ณ์นญ, ๋ ์ง๊ฐ ํฌํจ๋ ๋ชจ๋ธ ID, Amazon Bedrock ๋ชจ๋ธ ID์ ๊ฐ์ ๊ณต๊ธ์๋ณ ID๋ ๋ชจ๋ ํด์๋๋ ํ๋์ ์ ์ ์ด๋ฆ๊ณผ ์ผ์นํ๋ฏ๋ก `claude-opus-5`๋ Opus 5์ ๋ชจ๋ ํ๊ธฐ๋ฅผ ํฌ๊ดํฉ๋๋ค.3580Claude Code๋ `[1m]` ์ ๋ฏธ์ฌ๋ฅผ ๋ฌด์ํ๊ณ , ์ธ์
์ด ์ ํํ๋ ค๋ ๋ชจ๋ธ์ ์ ์ ์ด๋ฆ๊ณผ matcher๋ฅผ ๋น๊ตํฉ๋๋ค. `opus` ๊ฐ์ ๋ณ์นญ, ๋ ์ง๊ฐ ํฌํจ๋ ๋ชจ๋ธ ID, Amazon Bedrock ๋ชจ๋ธ ID ๊ฐ์ ์ ๊ณต์๋ณ ID๋ ๋ชจ๋ ํด์๋๋ ํ๋์ ์ ์ ์ด๋ฆ๊ณผ ์ผ์นํ๋ฏ๋ก, `claude-opus-5`๋ Opus 5์ ๋ชจ๋ ํ๊ธฐ๋ฅผ ํฌ๊ดํฉ๋๋ค.
3555 3581
3556์๋ฅผ ๋ค์ด ์ฌ์ฉ์์ [LLM ๊ฒ์ดํธ์จ์ด](/docs/ko/llm-gateway)๋ง ์๊ณ ์๋ ์ฌ์ฉ์ ์ง์ ๋ชจ๋ธ ID์ฒ๋ผ Claude Code๊ฐ ๋์์ ์ ์ ์ด๋ฆ์ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ, matcher์ ๊ด๊ณ์์ด ๋ชจ๋ PreModelSwitch ํ
์ ์คํํฉ๋๋ค. ๋ฐ๋ผ์ ์ฐจ๋จํ๋ ํ
์ matcher์๋ง ์์กดํ์ง ๋ง๊ณ ์
๋ ฅ์ `to_model`์ ํ์ธํด์ผ ํฉ๋๋ค.3582์๋ฅผ ๋ค์ด [LLM ๊ฒ์ดํธ์จ์ด](/docs/ko/llm-gateway)๋ง ์๊ณ ์๋ ์ฌ์ฉ์ ์ง์ ๋ชจ๋ธ ID์ฒ๋ผ Claude Code๊ฐ ๋์์ ์ ์ ์ด๋ฆ์ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ, matcher์ ๊ด๊ณ์์ด ๋ชจ๋ PreModelSwitch ํ
์ ์คํํฉ๋๋ค. ๋ฐ๋ผ์ ์ฐจ๋จํ๋ ํ
์ matcher์๋ง ์์กดํ์ง ๋ง๊ณ ์
๋ ฅ์ `to_model`์ ํ์ธํด์ผ ํฉ๋๋ค.
3557 3583
3558matcher๋ ์ ํํ ์ด๋ฆ, `claude-opus-4-6|claude-opus-5`์ ๊ฐ์ด `|`๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก, ๋๋ `.*opus.*`์ ๊ฐ์ ์ ๊ท ํํ์์ผ๋ก ์์ฑํฉ๋๋ค. ๋ค์ ์์๋ ์ ํํ ์ด๋ฆ matcher๋ฅผ ์ฌ์ฉํ๋ ๋์์ ํ
์
๋ ฅ์ `to_model`๋ ํ์ธํ๋ฏ๋ก, ์ฝ๋ 2๋ก ์ข
๋ฃํ์ฌ Opus 4.6์ผ๋ก์ ์ ํ์ ๊ฑฐ๋ถํ๊ณ ๋ค๋ฅธ ๋์์ ํ์ฉํฉ๋๋ค.3584matcher๋ ์ ํํ ์ด๋ฆ, `claude-opus-4-6|claude-opus-5` ๊ฐ์ `|`๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก, ๋๋ `.*opus.*` ๊ฐ์ ์ ๊ท์์ผ๋ก ์์ฑํฉ๋๋ค. ์ด ์์๋ ์ ํํ ์ด๋ฆ matcher๋ฅผ ์ฌ์ฉํ๋ฉด์ ํ
์
๋ ฅ์ `to_model`๋ ํ์ธํ๋ฏ๋ก, ์ฝ๋ 2๋ก ์ข
๋ฃํ์ฌ Opus 4.6์ผ๋ก์ ์ ํ์ ๊ฑฐ๋ถํ๊ณ ๋ค๋ฅธ ๋์์ ํต๊ณผ์ํต๋๋ค.
3559 3585
3560<Tabs>3586<Tabs>
3561 <Tab title="macOS/Linux">3587 <Tab title="macOS/Linux">
3562 ์ด ๋ช
๋ น์ `jq`๋ก `to_model`์ ํ์ธํฉ๋๋ค.3588 ๋ช
๋ น์ `jq`๋ก `to_model`์ ํ์ธํฉ๋๋ค.
3563 3589
3564 ```json theme={null}3590 ```json theme={null}
3565 {3591 {
3608 }3634 }
3609 ```3635 ```
3610 3636
3611 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/block-opus-46.ps1`์ ์ ์ฅํฉ๋๋ค.3637 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/block-opus-46.ps1`์ ์ ์ฅํ์ธ์.
3612 3638
3613 ```powershell theme={null}3639 ```powershell theme={null}
3614 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3640 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json
3621 </Tab>3647 </Tab>
3622</Tabs>3648</Tabs>
3623 3649
3624ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค๋ฅธ ๋ชจ๋ธ์ ์คํ ์ค์ธ ์ธ์
์์ `/model claude-opus-4-6`์ ์คํํ์ญ์์ค. Claude Code๋ ํ์ฌ ๋ชจ๋ธ์ ์ ์งํ๊ณ , PreModelSwitch ํ
์ด ์ ํ์ ์ฐจ๋จํ๋ค๋ ์ฌ์ค์ ์ฌ์ฉ์์ ๋ฉ์์ง๋ฅผ ์ฌ์ ๋ก ํ์ฌ ๋ณด๊ณ ํฉ๋๋ค.3650ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค๋ฅธ ๋ชจ๋ธ์ ์คํ ์ค์ธ ์ธ์
์์ `/model claude-opus-4-6`์ ์คํํ์ธ์. Claude Code๋ ํ์ฌ ๋ชจ๋ธ์ ์ ์งํ๊ณ , ์์ฑํ ๋ฉ์์ง๋ฅผ ์ด์ ๋ก ํ์ฌ PreModelSwitch ํ
์ด ์ ํ์ ์ฐจ๋จํ๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.
3625 3651
3626<h4 id="premodelswitch-input">3652<h4 id="premodelswitch-input">
3627 PreModelSwitch input3653 PreModelSwitch ์
๋ ฅ
3628</h4>3654</h4>
3629 3655
3630[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด PreModelSwitch ํ
์ ์ด ํ์ ํ๋๋ฅผ ๋ฐ์ต๋๋ค. ๋ง์ง๋ง ๋ค์ฏ ๊ฐ ํ๋๋ ๋ํ๋ฅผ ์ ๋ชจ๋ธ๋ก ๋ค์ ๋ณด๋ด๋ ๋น์ฉ์ ์ค๋ช
ํ๋ฏ๋ก ํ
์ด ์ ํ ์ ์ ํด๋น ์์น๋ฅผ ๋ณด์ฌ ์ค ์ ์์ต๋๋ค.3656[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ PreModelSwitch ํ
์ ์ด ํ์ ํ๋๋ฅผ ๋ฐ์ต๋๋ค. ๋ง์ง๋ง ๋ค์ฏ ๊ฐ ํ๋๋ ๋ํ๋ฅผ ์ ๋ชจ๋ธ๋ก ๋ค์ ๋ณด๋ด๋ ๋ฐ ๋๋ ๋น์ฉ์ ์ค๋ช
ํ๋ฏ๋ก, ํ
์ ์ ํ์ด ์ผ์ด๋๊ธฐ ์ ์ ์ด ์์น๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
3631 3657
3632| ํ๋ | ์ ํ | ์ค๋ช
|3658| ํ๋ | ์ ํ | ์ค๋ช
|
3633| :- | :- | :- |3659| :- | :- | :- |
3634| `from_model` | string | ์ ํ ์ด์ ์ ๋ชจ๋ธ ID |3660| `from_model` | string | ์ ํ ์ ๋ชจ๋ธ ID |
3635| `to_model` | string | ์ ํ ๋์ ๋ชจ๋ธ ID. matcher๋ ์ด ๋ชจ๋ธ์ ์ ์ ์ด๋ฆ๊ณผ ๋น๊ต๋ฉ๋๋ค |3661| `to_model` | string | ์ ํ ํ ๋ชจ๋ธ ID. matcher๋ ์ด ๋ชจ๋ธ์ ์ ์ ์ด๋ฆ๊ณผ ๋น๊ต๋ฉ๋๋ค |
3636| `requested_model` | string ๋๋ `null` | ์์ฒญ์์ ์ง์ ํ ๋ชจ๋ธ: `opus`์ ๊ฐ์ ๋ณ์นญ, ์ ์ฒด ๋ชจ๋ธ ID, ๋๋ ๊ธฐ๋ณธ ๋ชจ๋ธ์ ์์ฒญํ ๊ฒฝ์ฐ `null` |3662| `requested_model` | string ๋๋ `null` | ์์ฒญ์ ์ง์ ๋ ๋ชจ๋ธ: `opus` ๊ฐ์ ๋ณ์นญ, ์ ์ฒด ๋ชจ๋ธ ID, ๋๋ ๊ธฐ๋ณธ ๋ชจ๋ธ์ ์์ฒญํ ๊ฒฝ์ฐ `null` |
3637| `source` | string | ์์ฒญ ์ถ์ฒ: `/model <name>`, `/config`์ Model ์ค์ , ๋น ๋ฅธ ๋ชจ๋ ์ผ๊ธฐ๋ `"command"`, ๋ชจ๋ธ ์ ํ๊ธฐ๋ `"picker"`, Agent SDK ํธ์คํธ ๋๋ Remote Control์์ ๋ณด๋ธ `set_model` ์์ฒญ์ด๋ `apply_flag_settings` ์์ฒญ์ ๋ชจ๋ธ ๋ณ๊ฒฝ์ `"sdk"` |3663| `source` | string | ์์ฒญ์ ์ถ์ฒ: `/model <name>`, `/config`์ Model ์ค์ , ๋น ๋ฅธ ๋ชจ๋ ์ผ๊ธฐ์ ๊ฒฝ์ฐ `"command"`, ๋ชจ๋ธ ์ ํ๊ธฐ์ ๊ฒฝ์ฐ `"picker"`, Agent SDK ํธ์คํธ ๋๋ Remote Control์์ ๋ณด๋ธ `set_model` ์์ฒญ์ด๋ `apply_flag_settings` ์์ฒญ์ ๋ชจ๋ธ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ `"sdk"` |
3638| `context_tokens` | number | ๋ค์ ์์ฒญ์ด ํ๋กฌํํธ๋ก ๋ค์ ๋ณด๋ด๋ ํ ํฐ ์: ๋ฉ์ธ ๋ํ์ ๋ง์ง๋ง ์๋ต์ ์
๋ ฅ, ์บ์ ์ฝ๊ธฐ, ์บ์ ์์ฑ, ์ถ๋ ฅ ํ ํฐ์ ํฉํ ๊ฐ. ์ฒซ ์๋ต ์ด์ ์๋ `0` |3664| `context_tokens` | number | ๋ค์ ์์ฒญ์ด ํ๋กฌํํธ๋ก ๋ค์ ๋ณด๋ด๋ ํ ํฐ: ๋ฉ์ธ ๋ํ์ ๋ง์ง๋ง ์๋ต์ ์
๋ ฅ, ์บ์ ์ฝ๊ธฐ, ์บ์ ์์ฑ, ์ถ๋ ฅ ํ ํฐ์ ํฉํ ๊ฐ. ์ฒซ ๋ฒ์งธ ์๋ต ์ ์๋ `0` |
3639| `prompt_cache_warm` | boolean | ํ์ฌ ๋ชจ๋ธ์ ํ๋กฌํํธ ์บ์๊ฐ ์์ง ์ ํจํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง ์ฌ๋ถ. ์ฆ, ์ ํ ์ ์ด๋ฅผ ์๊ฒ ๋จ์ ์๋ฏธํฉ๋๋ค |3665| `prompt_cache_warm` | boolean | ํ์ฌ ๋ชจ๋ธ์ ํ๋กฌํํธ ์บ์๊ฐ ์์ง ์ ํจํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง ์ฌ๋ถ๋ก, ์ด ๊ฒฝ์ฐ ์ ํํ๋ฉด ์บ์๋ฅผ ์๊ฒ ๋ฉ๋๋ค |
3640| `cache_ttl` | string | Claude Code๊ฐ ์ด ์ธ์
์ ์์ฒญํ๋ [ํ๋กฌํํธ ์บ์ ์๋ช
](/docs/ko/prompt-caching#cache-lifetime): `"5m"` ๋๋ `"1h"` |3666| `cache_ttl` | string | Claude Code๊ฐ ์ด ์ธ์
์ ์์ฒญํ๋ [ํ๋กฌํํธ ์บ์ ์๋ช
](/docs/ko/prompt-caching#cache-lifetime): `"5m"` ๋๋ `"1h"` |
3641| `estimated_cache_write_usd` | number | `cache_ttl` ์์จ๋ก `to_model`์ ํ๋กฌํํธ ์บ์์ `context_tokens`๋ฅผ ์ฐ๋ ์ถ์ ๋น์ฉ(๋ฏธ๊ตญ ๋ฌ๋ฌ), ๋ค์ ์๋ต์ ์ ์ธ. ์๋ฒ๊ฐ ์ ์ฒด ์ปจํ
์คํธ๋ฅผ ๋ค์ ์บ์ํ ํ์๊ฐ ์์ ์๋ ์์ผ๋ฏ๋ก ์ถ์ ์น๋ก ์ทจ๊ธํ์ญ์์ค |3667| `estimated_cache_write_usd` | number | `cache_ttl` ์๊ธ์ผ๋ก `to_model`์ ํ๋กฌํํธ ์บ์์ `context_tokens`๋ฅผ ์ฐ๋ ์์ ๋น์ฉ(๋ฏธ๊ตญ ๋ฌ๋ฌ)์ผ๋ก, ๋ค์ ์๋ต์ ์ ์ธ๋ฉ๋๋ค. ์๋ฒ๊ฐ ์ ์ฒด ์ปจํ
์คํธ๋ฅผ ๋ค์ ์บ์ฑํ ํ์๊ฐ ์์ ์๋ ์์ผ๋ฏ๋ก ์ถ์ ์น๋ก ์ทจ๊ธํ์ธ์ |
3642| `pricing` | string | Claude Code๊ฐ `estimated_cache_write_usd`๋ฅผ ์ฐ์ ํ ๋ฐฉ์: ์กฐ์ง์ด ์์ฒด ์์จ์ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ํด๋น ์์จ๋ก ์ฐ์ ํ `"configured"`, ์ ๊ฐ๋ก ์ฐ์ ํ `"catalog"`, ๋๋ `to_model`์ ๊ฐ๊ฒฉ์ ์ ์ ์์ด Claude Code๊ฐ ๊ธฐ๋ณธ ์์จ์ ๊ฐ์ ํ `"default"` |3668| `pricing` | string | Claude Code๊ฐ `estimated_cache_write_usd`์ ๊ฐ๊ฒฉ์ ์ฑ
์ ํ ๋ฐฉ์: ์กฐ์ง์ด ์์ฒด ์๊ธ์ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ํด๋น ์๊ธ์ผ๋ก ์ฑ
์ ํ `"configured"`, ์ ๊ฐ๋ก ์ฑ
์ ํ `"catalog"`, ๋๋ `to_model`์ ๊ฐ๊ฒฉ์ ์ ์ ์์ด Claude Code๊ฐ ๊ธฐ๋ณธ ์๊ธ์ ๊ฐ์ ํ `"default"` |
3643 3669
3644๋ค์ ์์๋ Sonnet 5๋ฅผ ์คํ ์ค์ธ ์ธ์
์์ `/model opus`๋ฅผ ์คํํ์ ๋์ ์
๋ ฅ์ ๋ณด์ฌ ์ค๋๋ค.3670์ด ์์๋ Sonnet 5๋ฅผ ์คํ ์ค์ธ ์ธ์
์์ `/model opus`์ ๋ํ ์
๋ ฅ์ ๋ณด์ฌ์ค๋๋ค.
3645 3671
3646```json theme={null}3672```json theme={null}
3647{3673{
3662```3688```
3663 3689
3664<h4 id="premodelswitch-decision-control">3690<h4 id="premodelswitch-decision-control">
3665 PreModelSwitch decision control3691 PreModelSwitch ๊ฒฐ์ ์ ์ด
3666</h4>3692</h4>
3667 3693
3668`PreModelSwitch` ํ
์ ์ ํ์ ์ทจ์ํ๊ฑฐ๋, ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํ๊ฑฐ๋, ์งํํ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค. ์ข
๋ฃ ์ฝ๋ 2 ๋๋ ์ต์์ `decision: "block"`์ ์ ํ์ ์ทจ์ํฉ๋๋ค.3694`PreModelSwitch` ํ
์ ์ ํ์ ์ทจ์ํ๊ฑฐ๋, ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํ๊ฑฐ๋, ์งํํ๋๋ก ํ ์ ์์ต๋๋ค. ์ข
๋ฃ ์ฝ๋ 2 ๋๋ ์ต์์ `decision: "block"`์ ์ ํ์ ์ทจ์ํฉ๋๋ค.
3669 3695
3670๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ๋ ค๋ฉด [PreToolUse](#pretooluse-decision-control)์์์ ๊ฐ์ด `hookSpecificOutput` ๊ฐ์ฒด์ `permissionDecision`๊ณผ `permissionDecisionReason`์ ๋ฐํํ์ญ์์ค. `PreModelSwitch`๋ `"allow"`, `"deny"`, `"ask"`๋ฅผ ํ์ฉํฉ๋๋ค. `"defer"`, `updatedInput`, `additionalContext`๋ ํ์ฉํ์ง ์์ต๋๋ค. ์๋ ํ๋ ๋ ํ๋๋ฅผ ์ค๋ช
ํฉ๋๋ค.3696๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ๋ ค๋ฉด [PreToolUse](#pretooluse-decision-control)์์์ ๊ฐ์ด `hookSpecificOutput` ๊ฐ์ฒด์ `permissionDecision`๊ณผ `permissionDecisionReason`์ ๋ฐํํ์ธ์. `PreModelSwitch`๋ `"allow"`, `"deny"`, `"ask"`๋ฅผ ํ์ฉํฉ๋๋ค. `"defer"`, `updatedInput`, `additionalContext`๋ ํ์ฉํ์ง ์์ต๋๋ค. ์๋ ํ๋ ๋ ํ๋๋ฅผ ์ค๋ช
ํฉ๋๋ค.
3671 3697
3672| ํ๋ | ์ค๋ช
|3698| ํ๋ | ์ค๋ช
|
3673| :- | :- |3699| :- | :- |
3674| `permissionDecision` | `"allow"`๋ ์ ํ์ ์งํํ๋ฉฐ [ํ๋กฌํํธ ์บ์๊ฐ ์ ํจํ ๋์ Claude Code๊ฐ ํ์ํ๋ ํ์ธ](/docs/ko/prompt-caching#switching-models)์ ๊ฑด๋๋๋๋ค. `"deny"`๋ ์ ํ์ ์ทจ์ํฉ๋๋ค. `"ask"`๋ ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํฉ๋๋ค |3700| `permissionDecision` | `"allow"`๋ ์งํํ๋ฉฐ [ํ๋กฌํํธ ์บ์๊ฐ ์ ํจํ ๋์ Claude Code๊ฐ ํ์ํ๋ ํ์ธ](/docs/ko/prompt-caching#switching-models)์ ๊ฑด๋๋๋๋ค. `"deny"`๋ ์ ํ์ ์ทจ์ํฉ๋๋ค. `"ask"`๋ ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํฉ๋๋ค |
3675| `permissionDecisionReason` | `"deny"`์ ๊ฒฝ์ฐ ์ ํ์ด ์ฐจ๋จ๋ ์ฌ์ ๋ก ์ฌ์ฉ์์๊ฒ ํ์๋๊ฑฐ๋ `set_model` ์์ฒญ์ ๋ํ ์ค๋ฅ๋ก ๋ฐํ๋ฉ๋๋ค. `"ask"`์ ๊ฒฝ์ฐ ํ์ธ ํ๋กฌํํธ์ ํ์๋ฉ๋๋ค. `"allow"`์ ๊ฒฝ์ฐ ๋ฌด์๋ฉ๋๋ค |3701| `permissionDecisionReason` | `"deny"`์ ๊ฒฝ์ฐ ์ ํ์ด ์ฐจ๋จ๋ ์ด์ ๋ก ์ฌ์ฉ์์๊ฒ ํ์๋๊ฑฐ๋, `set_model` ์์ฒญ์ ๋ํ ์ค๋ฅ๋ก ๋ฐํ๋ฉ๋๋ค. `"ask"`์ ๊ฒฝ์ฐ ํ์ธ ํ๋กฌํํธ์ ํ์๋ฉ๋๋ค. `"allow"`์์๋ ๋ฌด์๋ฉ๋๋ค |
3676 3702
3677๋ํํ ์ธ์
์ `/model`๋ง `"ask"` ํ๋กฌํํธ๋ฅผ ํ์ํ ์ ์์ต๋๋ค. `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๋น๋ํํ ๋ชจ๋, `/config`, `set_model` ์์ฒญ์ ํฌํจํ ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ ํ๊ฒฝ์์ Claude Code๋ `"ask"`๋ฅผ ๊ฑฐ๋ถ๋ก ์ฒ๋ฆฌํฉ๋๋ค.3703๋ํํ ์ธ์
์ `/model`์์๋ง `"ask"` ํ๋กฌํํธ๋ฅผ ํ์ํ ์ ์์ต๋๋ค. `-p` ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๋น๋ํํ ๋ชจ๋, `/config`, `set_model` ์์ฒญ์ ํฌํจํ ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ ํ๊ฒฝ์์ Claude Code๋ `"ask"`๋ฅผ ๊ฑฐ๋ถ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
3678 3704
3679๋ค์ ์์๋ ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํ๋ฉฐ `context_tokens`์ ํ ํฐ ์๋ฅผ ์ธ์ฉํฉ๋๋ค.3705์ด ์์๋ ์ฌ์ฉ์์๊ฒ ํ์ธ์ ์์ฒญํ๋ฉฐ `context_tokens`์ ํ ํฐ ์๋ฅผ ์ธ์ฉํฉ๋๋ค.
3680 3706
3681```json theme={null}3707```json theme={null}
3682{3708{
3690 3716
3691์ฌ๋ฌ PreModelSwitch ํ
์ด ์๋ก ๋ค๋ฅธ ๊ฒฐ์ ์ ๋ฐํํ๋ฉด ์ฐ์ ์์๋ `deny` > `ask` > `allow`์
๋๋ค.3717์ฌ๋ฌ PreModelSwitch ํ
์ด ์๋ก ๋ค๋ฅธ ๊ฒฐ์ ์ ๋ฐํํ๋ฉด ์ฐ์ ์์๋ `deny` > `ask` > `allow`์
๋๋ค.
3692 3718
3693Claude Code๋ ๊ฒฐ์ ๊ณผ ๊ด๊ณ์์ด ํ
์ด ๋ฐํํ `systemMessage`๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๋ฏ๋ก, ๋น์ฉ ๋ณด๊ณ ํ
์ `{"systemMessage": "..."}`๋ฅผ ๋ฐํํ๊ณ 0์ผ๋ก ์ข
๋ฃํ ์ ์์ต๋๋ค.3719Claude Code๋ ๊ฒฐ์ ๊ณผ ๊ด๊ณ์์ด ํ
์ด ๋ฐํํ๋ ๋ชจ๋ `systemMessage`๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๋ฏ๋ก, ๋น์ฉ ๋ณด๊ณ ํ
์ `{"systemMessage": "..."}`๋ฅผ ๋ฐํํ๊ณ 0์ผ๋ก ์ข
๋ฃํ ์ ์์ต๋๋ค.
3694 3720
3695ํ์์์ ์ ์ ์๋ตํ์ง ์๋ PreModelSwitch ํ
์ ์ ํ์ ์ฐจ๋จํฉ๋๋ค. ๋ค๋ฅธ ์ด๋ฒคํธ์์ ํ์์์์ด ๋ฏธ์น๋ ์ํฅ์ [Timeouts](#timeouts)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์ด ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ํ์์์์ 30์ด์
๋๋ค. `PreModelSwitch`๋ `command`, `http`, `mcp_tool` ํ
๋ง ์คํํ๋ฏ๋ก `prompt` ๋ฐ `agent` ๊ธฐ๋ณธ๊ฐ์ ์ ์ฉ๋์ง ์์ต๋๋ค.3721ํ์์์ ์ ์ ์๋ตํ์ง ์๋ PreModelSwitch ํ
์ ์ ํ์ ์ฐจ๋จํฉ๋๋ค. ๋ค๋ฅธ ์ด๋ฒคํธ์์ ํ์์์์ด ์ด๋ป๊ฒ ๋์ํ๋์ง๋ [ํ์์์](#timeouts)์ ์ฐธ์กฐํ์ธ์. ์ด ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ํ์์์์ 30์ด์
๋๋ค. `PreModelSwitch`๋ `command`, `http`, `mcp_tool` ํ
๋ง ์คํํ๋ฏ๋ก `prompt`์ `agent`์ ๊ธฐ๋ณธ๊ฐ์ ์ ์ฉ๋์ง ์์ต๋๋ค.
3696 3722
36970 ๋๋ 2๊ฐ ์๋ ์ฝ๋๋ก ์ข
๋ฃํ๊ณ JSON ๊ฒฐ์ ์ ์ถ๋ ฅํ์ง ์๋ ํ
์ [๊ธฐํ ์ข
๋ฃ ์ฝ๋](#other-exit-codes)์ ์ค๋ช
๋ ๋๋ก ์ฐจ๋จํ์ง ์๋ ์ค๋ฅ์
๋๋ค.37230์ด๋ 2๊ฐ ์๋ ์ฝ๋๋ก ์ข
๋ฃํ๊ณ JSON ๊ฒฐ์ ์ ์ถ๋ ฅํ์ง ์๋ ํ
์ [๊ธฐํ ์ข
๋ฃ ์ฝ๋](#other-exit-codes)์ ์ค๋ช
๋ ๋๋ก ๋น์ฐจ๋จ ์ค๋ฅ์
๋๋ค.
3698 3724
3699<h3 id="postmodelswitch">3725<h3 id="postmodelswitch">
3700 PostModelSwitch3726 PostModelSwitch
3701</h3>3727</h3>
3702 3728
3703์ธ์
์ ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋ ํ ์คํ๋ฉ๋๋ค. ๋ชจ๋ CLAUDE.md๋ฅผ ํธ์งํ์ง ์๊ณ ๋ Claude์๊ฒ ๋ชจ๋ธ๋ณ ์ง์นจ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ๋ชจ๋ธ์ ์ ์ฉ๋๋ ์กฐ์ง ์ ์ฒด ์ง์นจ์ ์ ๊ณตํ ์ ์์ต๋๋ค.3729์ธ์
์ ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋ ํ ์คํ๋ฉ๋๋ค. ๋ชจ๋ CLAUDE.md๋ฅผ ํธ์งํ์ง ์๊ณ ๋ Claude์๊ฒ ๋ชจ๋ธ๋ณ ์ง์นจ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ๋ชจ๋ธ์ ์ ์ฉ๋๋ ์กฐ์ง ์ ์ฒด ์ง์นจ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
3704 3730
3705PostModelSwitch๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Claude Code v2.1.251 ์ด์์ด ํ์ํฉ๋๋ค. ๋ชจ๋ธ์ด ์ด๋ฏธ ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ์ฐจ๋จํ ์ ์์ต๋๋ค. Claude Code๋ ๋ค์ ๋ณ๊ฒฝ ํ์ PostModelSwitch ํ
์ ์คํํฉ๋๋ค.3731PostModelSwitch์๋ Claude Code v2.1.251 ์ด์์ด ํ์ํฉ๋๋ค. ๋ชจ๋ธ์ด ์ด๋ฏธ ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ์ฐจ๋จํ ์ ์์ต๋๋ค. Claude Code๋ ๋ค์ ๋ณ๊ฒฝ ํ์ PostModelSwitch ํ
์ ์คํํฉ๋๋ค.
3706 3732
3707* ์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์ ํ3733* ์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์ ํ
3708* ์ธ์
์ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ๋ [์๋ ๋ชจ๋ธ ํด๋ฐฑ](/docs/ko/model-config#automatic-model-fallback)3734* ์ธ์
์ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ๋ [์๋ ๋ชจ๋ธ ํด๋ฐฑ](/docs/ko/model-config#automatic-model-fallback)
3709* [`opusplan`](/docs/ko/model-config#opusplan-model-setting)๊ณผ ๊ฐ์ ์ค์ ์ด ํ๋ ๋ชจ๋์ ๋ค์ด๊ฐ๊ฑฐ๋ ๋๊ฐ๋ ๊ฒฝ์ฐ3735* [`opusplan`](/docs/ko/model-config#opusplan-model-setting) ๊ฐ์ ์ค์ ์ด ํ๋ ๋ชจ๋์ ์ง์
ํ๊ฑฐ๋ ์ข
๋ฃํ๋ ๊ฒฝ์ฐ
3710* ์ธ์
์ ์ฌ๊ฐํ ๋ Claude Code๊ฐ ๋ชจ๋ธ์ ๋ณต์ํ๋ ๊ฒฝ์ฐ3736* ์ธ์
์ ์ฌ๊ฐํ ๋ Claude Code๊ฐ ๋ชจ๋ธ์ ๋ณต์ํ๋ ๊ฒฝ์ฐ
3711 3737
3712[ํด๋ฐฑ ๋ชจ๋ธ ์ฒด์ธ](/docs/ko/model-config#fallback-model-chains)์ ๋ชจ๋ธ์ด ํด์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์๋ Claude Code๊ฐ PostModelSwitch ํ
์ ์คํํ์ง ์์ต๋๋ค. ์ด ๋์ฒด๋ ํ ํด ๋์๋ง ์ง์๋๋ฉฐ ์ธ์
์ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.3738[ํด๋ฐฑ ๋ชจ๋ธ ์ฒด์ธ](/docs/ko/model-config#fallback-model-chains)์ ๋ชจ๋ธ์ด ํด์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์๋ Claude Code๊ฐ PostModelSwitch ํ
์ ์คํํ์ง ์์ต๋๋ค. ํด๋น ๋์ฒด๋ ํ ํด ๋์๋ง ์ง์๋๋ฉฐ ์ธ์
์ ๋ชจ๋ธ์ ๋ณ๊ฒฝ๋์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
3713 3739
3714matcher๋ [PreModelSwitch](#premodelswitch)์ ๋์ผํ ๊ท์น์ ๋ฐ๋ฆ
๋๋ค. Claude Code๋ ์ธ์
์ด ์ ํํ ๋ชจ๋ธ์ ์ ์ ์ด๋ฆ๊ณผ matcher๋ฅผ ๋น๊ตํฉ๋๋ค.3740matcher๋ [PreModelSwitch](#premodelswitch)์ ๋์ผํ ๊ท์น์ ๋ฐ๋ฆ
๋๋ค. Claude Code๋ ์ธ์
์ด ์ ํํ ๋ชจ๋ธ์ ์ ์ ์ด๋ฆ๊ณผ matcher๋ฅผ ๋น๊ตํฉ๋๋ค.
3715 3741
3716๋ค์ ์์๋ ์ธ์
์ ๋ชจ๋ธ์ด Opus ๋ชจ๋ธ๋ก ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ง์นจ์ ์ถ๊ฐํฉ๋๋ค.3742์ด ์์๋ ์ธ์
์ ๋ชจ๋ธ์ด Opus ๋ชจ๋ธ๋ก ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ง์นจ์ ์ถ๊ฐํฉ๋๋ค.
3717 3743
3718```json theme={null}3744```json theme={null}
3719{3745{
3733}3759}
3734```3760```
3735 3761
3736ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค๋ฅธ ๋ชจ๋ธ์ ์คํ ์ค์ธ ์ธ์
์์ Opus ๋ชจ๋ธ๋ก ์ ํํ ๋ค์(์: Sonnet ์ธ์
์์ `/model opus` ์คํ), Claude์๊ฒ ํ์ฌ ๋ชจ๋ธ์ ๊ดํด ์ด๋ค ์ง์นจ์ ๊ฐ๊ณ ์๋์ง ๋ฌผ์ด๋ณด์ญ์์ค.3762ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค๋ฅธ ๋ชจ๋ธ์ ์คํ ์ค์ธ ์ธ์
์์ Opus ๋ชจ๋ธ๋ก ์ ํํ ๋ค์(์: Sonnet ์ธ์
์์ `/model opus` ์คํ), Claude์๊ฒ ํ์ฌ ๋ชจ๋ธ์ ๋ํด ์ด๋ค ์ง์นจ์ด ์๋์ง ๋ฌผ์ด๋ณด์ธ์.
3737 3763
3738<h4 id="postmodelswitch-input">3764<h4 id="postmodelswitch-input">
3739 PostModelSwitch input3765 PostModelSwitch ์
๋ ฅ
3740</h4>3766</h4>
3741 3767
3742PostModelSwitch ํ
์ [PreModelSwitch](#premodelswitch-input)์ ๋์ผํ ํ๋๋ฅผ ๋ฐ์ผ๋ฉฐ, `hook_event_name`์ `"PostModelSwitch"`๋ก ์ค์ ๋๊ณ `source` ๊ฐ์ด ๋ ๊ฐ์ง ๋ ์์ต๋๋ค. ์๋ ํด๋ฐฑ์ด๋ Claude Code๊ฐ ์์ฒด์ ์ผ๋ก ์ํํ ๊ธฐํ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ `"auto"`, ์ธ์
์ ์ฌ๊ฐํ ๋ ๋ณต์๋ ๋ชจ๋ธ์ ๊ฒฝ์ฐ `"resume"`์
๋๋ค.3768PostModelSwitch ํ
์ [PreModelSwitch](#premodelswitch-input)์ ๋์ผํ ํ๋๋ฅผ ๋ฐ์ผ๋ฉฐ, `hook_event_name`์ `"PostModelSwitch"`๋ก ์ค์ ๋๊ณ ๋ ๊ฐ์ง `source` ๊ฐ์ด ์ถ๊ฐ๋ฉ๋๋ค. ์๋ ํด๋ฐฑ์ด๋ Claude Code๊ฐ ์์ฒด์ ์ผ๋ก ์ํํ ๊ธฐํ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ `"auto"`, ์ธ์
์ ์ฌ๊ฐํ ๋ ๋ณต์๋ ๋ชจ๋ธ์ ๊ฒฝ์ฐ `"resume"`์
๋๋ค.
3743 3769
3744`source`๊ฐ `"auto"`์ด๋ฉด `requested_model`์ `null`์
๋๋ค. `source`๊ฐ `"resume"`์ด๋ฉด Claude Code๊ฐ ๋ณต์ํ ์ ์ฅ๋ ๋ชจ๋ธ ์ค์ ์
๋๋ค.3770`source`๊ฐ `"auto"`์ด๋ฉด `requested_model`์ `null`์
๋๋ค. `source`๊ฐ `"resume"`์ด๋ฉด Claude Code๊ฐ ๋ณต์ํ ์ ์ฅ๋ ๋ชจ๋ธ ์ค์ ์
๋๋ค.
3745 3771
3746<h4 id="postmodelswitch-decision-control">3772<h4 id="postmodelswitch-decision-control">
3747 PostModelSwitch decision control3773 PostModelSwitch ๊ฒฐ์ ์ ์ด
3748</h4>3774</h4>
3749 3775
3750Claude Code๋ ์ข
๋ฃ ์ฝ๋ 0์ผ ๋ ํ
์ [์ผ๋ฐ ํ
์คํธ stdout](#exit-code-0) ๋๋ JSON ์ถ๋ ฅ์ `additionalContext`๋ฅผ ๊ฐ์ ธ์ ์ ํ ํ ๋ค์ ์์ฒญ๊ณผ ํจ๊ป Claude์๊ฒ ์ ๋ฌํฉ๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output)์ ๋ํด ๋ค์์ ๋ฐํํ ์ ์์ต๋๋ค.3776Claude Code๋ ์ข
๋ฃ ์ฝ๋ 0์์ ํ
์ [์ผ๋ฐ ํ
์คํธ stdout](#exit-code-0) ๋๋ JSON ์ถ๋ ฅ์ `additionalContext`๋ฅผ ๊ฐ์ ธ์, ์ ํ ํ ๋ค์ ์์ฒญ๊ณผ ํจ๊ป Claude์๊ฒ ์ ๋ฌํฉ๋๋ค. ๋ชจ๋ ํ
์์ ์ฌ์ฉํ ์ ์๋ [JSON ์ถ๋ ฅ ํ๋](#json-output) ์ธ์๋ ๋ค์์ ๋ฐํํ ์ ์์ต๋๋ค.
3751 3777
3752| ํ๋ | ์ค๋ช
|3778| ํ๋ | ์ค๋ช
|
3753| :- | :- |3779| :- | :- |
3754| `additionalContext` | ๋ค์ ์์ฒญ๊ณผ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด. [Claude์ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ญ์์ค |3780| `additionalContext` | ๋ค์ ์์ฒญ๊ณผ ํจ๊ป Claude์ ์ปจํ
์คํธ์ ์ถ๊ฐ๋๋ ๋ฌธ์์ด์
๋๋ค. [Claude๋ฅผ ์ํ ์ปจํ
์คํธ ์ถ๊ฐ](#add-context-for-claude)๋ฅผ ์ฐธ์กฐํ์ธ์ |
3755 3781
3756๋ค์ ํ๋กฌํํธ๋ฅผ ๋ณด๋ธ ํ 5์ด ์ด๋ด์ ํ
์ด ์๋ฃ๋์ง ์์ผ๋ฉด Claude Code๋ ์ถ๋ ฅ ์์ด ํด๋น ์์ฒญ์ ๋ณด๋ด๊ณ ๋์ ๊ทธ๋ค์ ์์ฒญ์ ์ถ๋ ฅ์ ์ฒจ๋ถํฉ๋๋ค. ๋ค์ ์์ฒญ ์ ์ ๋ชจ๋ธ์ด ์ฌ๋ฌ ๋ฒ ๋ณ๊ฒฝ๋๋ฉด Claude Code๋ ๋ง์ง๋ง ์ ํ์ ๋์ ๋ชจ๋ธ์ ๋ํ ์ถ๋ ฅ๋ง ์ ๋ฌํฉ๋๋ค.3782๋ค์ ํ๋กฌํํธ๋ฅผ ๋ณด๋ธ ํ 5์ด ์ด๋ด์ ํ
์ด ์๋ฃ๋์ง ์์ผ๋ฉด, Claude Code๋ ์ถ๋ ฅ ์์ด ํด๋น ์์ฒญ์ ๋ณด๋ด๊ณ ๋์ ๊ทธ๋ค์ ์์ฒญ์ ์ถ๋ ฅ์ ์ฒจ๋ถํฉ๋๋ค. ๋ค์ ์์ฒญ ์ ์ ๋ชจ๋ธ์ด ์ฌ๋ฌ ๋ฒ ๋ณ๊ฒฝ๋๋ฉด, Claude Code๋ ๋ง์ง๋ง ์ ํ์ ๋์ ๋ชจ๋ธ์ ๋ํ ์ถ๋ ฅ๋ง ์ ๋ฌํฉ๋๋ค.
3757 3783
3758<h3 id="sessionend">3784<h3 id="sessionend">
3759 SessionEnd3785 SessionEnd
3760</h3>3786</h3>
3761 3787
3762Claude Code ์ธ์
์ด ์ข
๋ฃ๋ ๋ ์คํ๋ฉ๋๋ค. ์ ๋ฆฌ ์์
, ์ธ์
3788Claude Code ์ธ์
์ด ์ข
๋ฃ๋ ๋ ์คํ๋ฉ๋๋ค. ์ ๋ฆฌ ์์
, ์ธ์
ํต๊ณ ๋ก๊น
, ์ธ์
์ํ
3763ํต๊ณ ๋ก๊น
, ์ธ์
์ํ ์ ์ฅ์ ์ ์ฉํฉ๋๋ค. ์ข
๋ฃ ์ฌ์ ๋ก ํํฐ๋งํ๋ matcher๋ฅผ ์ง์ํฉ๋๋ค.3789์ ์ฅ์ ์ ์ฉํฉ๋๋ค. ์ข
๋ฃ ์ด์ ๋ก ํํฐ๋งํ๋ matcher๋ฅผ ์ง์ํฉ๋๋ค.
3764 3790
3765ํ
์
๋ ฅ์ `reason` ํ๋๋ ์ธ์
์ด ์ข
๋ฃ๋ ์ด์ ๋ฅผ ๋ํ๋
๋๋ค.3791ํ
์
๋ ฅ์ `reason` ํ๋๋ ์ธ์
์ด ์ข
๋ฃ๋ ์ด์ ๋ฅผ ๋ํ๋
๋๋ค.
3766 3792
3767| ์ฌ์ | ์ค๋ช
|3793| ์ด์ | ์ค๋ช
|
3768| :- | :- |3794| :- | :- |
3769| `clear` | `/clear` ๋ช
๋ น์ผ๋ก ์ธ์
์ด ์ง์์ง |3795| `clear` | `/clear` ๋ช
๋ น์ผ๋ก ์ธ์
์ด ์ง์์ง |
3770| `resume` | ๋ํํ `/resume`์ ํตํด ์ธ์
์ด ์ ํ๋จ |3796| `resume` | ๋ํํ `/resume`์ ํตํด ์ธ์
์ด ์ ํ๋จ |
3771| `logout` | ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํจ |3797| `logout` | ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํจ |
3772| `prompt_input_exit` | ํ๋กฌํํธ ์
๋ ฅ์ด ํ์๋ ์ํ์์ ์ฌ์ฉ์๊ฐ ์ข
๋ฃํจ |3798| `prompt_input_exit` | ํ๋กฌํํธ ์
๋ ฅ์ด ํ์๋ ์ํ์์ ์ฌ์ฉ์๊ฐ ์ข
๋ฃํจ |
3773| `other` | ๊ธฐํ ์ข
๋ฃ ์ฌ์ |3799| `other` | ๊ธฐํ ์ข
๋ฃ ์ด์ |
3774| `bypass_permissions_disabled` | v2.1.234์์ ์ ๊ฑฐ๋์์ผ๋ฉฐ Claude Code๋ ์ด๋ฅผ ๋ณด๋ด์ง ์์ต๋๋ค. `SessionEnd` matcher์์ ์ ๊ฑฐํ์ญ์์ค |3800| `bypass_permissions_disabled` | v2.1.234์์ ์ ๊ฑฐ๋์์ผ๋ฉฐ Claude Code๋ ์ด ๊ฐ์ ๋ณด๋ด์ง ์์ต๋๋ค. `SessionEnd` matcher์์ ์ ๊ฑฐํ์ธ์ |
3775 3801
3776<h4 id="sessionend-input">3802<h4 id="sessionend-input">
3777 SessionEnd input3803 SessionEnd ์
๋ ฅ
3778</h4>3804</h4>
3779 3805
3780[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด SessionEnd ํ
์ ์ธ์
์ด ์ข
๋ฃ๋ ์ด์ ๋ฅผ ๋ํ๋ด๋ `reason` ํ๋๋ฅผ ๋ฐ์ต๋๋ค. ๋ชจ๋ ๊ฐ์ ์์ [์ฌ์ ํ](#sessionend)๋ฅผ ์ฐธ์กฐํ์ญ์์ค.3806[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ SessionEnd ํ
์ ์ธ์
์ด ์ข
๋ฃ๋ ์ด์ ๋ฅผ ๋ํ๋ด๋ `reason` ํ๋๋ฅผ ๋ฐ์ต๋๋ค. ๋ชจ๋ ๊ฐ์ ์์ [์ด์ ํ](#sessionend)๋ฅผ ์ฐธ์กฐํ์ธ์.
3781 3807
3782```json theme={null}3808```json theme={null}
3783{3809{
3789}3815}
3790```3816```
3791 3817
3792SessionEnd ํ
์๋ ๊ฒฐ์ ์ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ธ์
์ข
๋ฃ๋ฅผ ์ฐจ๋จํ ์๋ ์์ง๋ง ์ ๋ฆฌ ์์
์ ์ํํ ์ ์์ต๋๋ค. Claude Code๋ `systemMessage` ๋ฑ ํด๋น ํ
์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฒ๋ฆฝ๋๋ค.3818SessionEnd ํ
์๋ ๊ฒฐ์ ์ ์ด๊ฐ ์์ต๋๋ค. ์ธ์
์ข
๋ฃ๋ฅผ ์ฐจ๋จํ ์๋ ์์ง๋ง ์ ๋ฆฌ ์์
์ ์ํํ ์ ์์ต๋๋ค. Claude Code๋ `systemMessage` ๊ฐ์ [JSON ์ถ๋ ฅ ํ๋](#json-output)๋ฅผ ๋ฌด์ํฉ๋๋ค.
3793 3819
3794SessionEnd ํ
์ ๊ธฐ๋ณธ ํ์์์์ 1.5์ด์
๋๋ค. ์ด๋ ์ข
๋ฃํ๊ฑฐ๋, `/clear`๋ฅผ ์คํํ๊ฑฐ๋, ๋ํํ `/resume`์ผ๋ก ์ธ์
์ ์ ํํ ๋ ์ ์ฉ๋ฉ๋๋ค. ํ
์ ๋ ๋ง์ ์๊ฐ์ ์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง์
๋๋ค.3820SessionEnd ํ
์ ๊ธฐ๋ณธ ํ์์์์ 1.5์ด์
๋๋ค. ์ด๋ ์ข
๋ฃํ๊ฑฐ๋, `/clear`๋ฅผ ์คํํ๊ฑฐ๋, ๋ํํ `/resume`์ผ๋ก ์ธ์
์ ์ ํํ ๋ ์ ์ฉ๋ฉ๋๋ค. ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํ
์ ๋ ๋ง์ ์๊ฐ์ ์ค ์ ์์ต๋๋ค.
3795 3821
3796* **ํ
๋ณ `timeout`**: ํด๋น ํ
์ ๊ตฌ์ฑ์์ `timeout`์ ์ค์ ํฉ๋๋ค. ์ ์ฒด ์์ฐ์ ์ค์ ํ์ผ์ ์๋ ๊ฐ์ฅ ๋์ ํ
๋ณ `timeout`์ ๋ง์ถฐ ์ต๋ 60์ด๊น์ง ์๋์ผ๋ก ๋์ด๋ฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก ์์ฐ์ ๋๋ฆฌ๋๋ผ๋ ์์ฒด `timeout`์ด ์๋ ํ
์ ์ฌ์ ํ ๊ธฐ๋ณธ๊ฐ์ ์ ์งํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ ๊ณตํ๋ ํ
์ ์ค์ ๋ ํ์์์์ ์์ฐ์ ๋๋ฆฌ์ง ์์ต๋๋ค.3822* **ํ
๋ณ `timeout`**: ํด๋น ํ
์ ๊ตฌ์ฑ์์ `timeout`์ ์ค์ ํฉ๋๋ค. ์ ์ฒด ์์ฐ์ ์ค์ ํ์ผ์์ ๊ฐ์ฅ ๋์ ํ
๋ณ `timeout`์ ๋ง์ถฐ ์ต๋ 60์ด๊น์ง ์๋์ผ๋ก ๋์ด๋ฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก ์์ฐ์ ๋๋ ค๋ ์์ฒด `timeout`์ด ์๋ ํ
์ ์ฌ์ ํ ๊ธฐ๋ณธ๊ฐ์ ์ ์งํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ ๊ณตํ๋ ํ
์ ์ค์ ๋ ํ์์์์ ์์ฐ์ ๋๋ฆฌ์ง ์์ต๋๋ค.
3797* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: ์ด ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ค์ ํ์ฌ ์์ฐ์ ๋ช
์์ ์ผ๋ก ์ฌ์ ์ํฉ๋๋ค. ์ค์ ํ ๊ฐ์ ์์ฒด `timeout`์ด ์๋ ๊ฐ ํ
์ ํ์์์์ด ๋๊ธฐ๋ ํฉ๋๋ค.3823* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: ์ด ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ค์ ํ์ฌ ์์ฐ์ ๋ช
์์ ์ผ๋ก ์ฌ์ ์ํฉ๋๋ค. ์ค์ ํ ๊ฐ์ ์์ฒด `timeout`์ด ์๋ ๊ฐ ํ
์ ํ์์์๋ ๋ฉ๋๋ค.
3798 3824
3799๋ค์ ์์๋ ์์ฐ์ 5์ด๋ก ์ค์ ํฉ๋๋ค.3825์ด ์์๋ ์์ฐ์ 5์ด๋ก ์ค์ ํฉ๋๋ค.
3800 3826
3801```bash theme={null}3827```bash theme={null}
3802CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3828CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude
3808 Elicitation3834 Elicitation
3809</h3>3835</h3>
3810 3836
3811MCP ์๋ฒ๊ฐ ์์
๋์ค ์ฌ์ฉ์ ์
๋ ฅ์ ์์ฒญํ ๋ ์คํ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Claude Code๋ ์ฌ์ฉ์๊ฐ ์๋ตํ ์ ์๋ ๋ํํ ๋ํ ์์๋ฅผ ํ์ํฉ๋๋ค. ํ
์ ์ด ์์ฒญ์ ๊ฐ๋ก์ฑ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์๋ตํ์ฌ ๋ํ ์์๋ฅผ ์์ ํ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.3837MCP ์๋ฒ๊ฐ ์์
์ค์ ์ฌ์ฉ์ ์
๋ ฅ์ ์์ฒญํ ๋ ์คํ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Claude Code๋ ์ฌ์ฉ์๊ฐ ์๋ตํ ์ ์๋ ๋ํํ ๋ํ ์์๋ฅผ ํ์ํฉ๋๋ค. ํ
์ ์ด ์์ฒญ์ ๊ฐ๋ก์ฑ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์๋ตํ์ฌ ๋ํ ์์๋ฅผ ์์ ํ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.
3812 3838
3813์ค์ ํญ๋ชฉ๊ณผ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ์์ ํ ํ
์ [์คํฌ๋ฆฝํธ์์ ์์ ์์ฒญ์ ์๋ตํ๊ธฐ](#answer-a-form-request-from-a-script)๋ฅผ ์ฐธ์กฐํ์ญ์์ค.3839์ค์ ํญ๋ชฉ๊ณผ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ์ ์ฒด ํ
์ [์คํฌ๋ฆฝํธ์์ ์์ ์์ฒญ์ ์๋ตํ๊ธฐ](#answer-a-form-request-from-a-script)๋ฅผ ์ฐธ์กฐํ์ธ์.
3814 3840
3815matcher ํ๋๋ MCP ์๋ฒ ์ด๋ฆ๊ณผ ๋น๊ต๋ฉ๋๋ค.3841matcher ํ๋๋ MCP ์๋ฒ ์ด๋ฆ๊ณผ ๋น๊ต๋ฉ๋๋ค.
3816 3842
3817<h4 id="elicitation-input">3843<h4 id="elicitation-input">
3818 Elicitation input3844 Elicitation ์
๋ ฅ
3819</h4>3845</h4>
3820 3846
3821[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด Elicitation ํ
์ `mcp_server_name`, `message`์ ์ ํ์ ํ๋์ธ `mode`, `url`, `elicitation_id`, `requested_schema`๋ฅผ ๋ฐ์ต๋๋ค.3847[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ Elicitation ํ
์ `mcp_server_name`, `message`, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ํ๋์ธ `mode`, `url`, `elicitation_id`, `requested_schema`๋ฅผ ๋ฐ์ต๋๋ค.
3822 3848
3823๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ธ ์์ ๋ชจ๋ elicitation์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.3849๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ธ ์์ ๋ชจ๋ elicitation์ ๊ฒฝ์ฐ:
3824 3850
3825```json theme={null}3851```json theme={null}
3826{3852{
3840}3866}
3841```3867```
3842 3868
3843๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ ์ธ์ฆ์ ์ฌ์ฉ๋๋ URL ๋ชจ๋ elicitation์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.3869๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ ์ธ์ฆ์ ์ฌ์ฉ๋๋ URL ๋ชจ๋ elicitation์ ๊ฒฝ์ฐ:
3844 3870
3845```json theme={null}3871```json theme={null}
3846{3872{
3856```3882```
3857 3883
3858<h4 id="elicitation-output">3884<h4 id="elicitation-output">
3859 Elicitation output3885 Elicitation ์ถ๋ ฅ
3860</h4>3886</h4>
3861 3887
3862Elicitation ํ
์ ์ฌ์ฉ์ ๋์ ์์ฒญ์ ์๋ตํ๊ฑฐ๋, ์์ฒญ์ ๊ฑฐ์ ๋๋ ์ทจ์ํ๊ฑฐ๋, ๋ํ ์์์ ๋งก๊ธธ ์ ์์ต๋๋ค. ์๋ต, ๊ฑฐ์ ๋๋ ์ทจ์ํ๋ ค๋ฉด 0์ผ๋ก ์ข
๋ฃํ๊ณ `action`์ด ํฌํจ๋ `hookSpecificOutput` ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ์ญ์์ค. ์๋ฒ๋ ์๋ต์ ๋ฐ๊ณ ๋ํ ์์๋ ํ์๋์ง ์์ต๋๋ค. ์ด ํ์ ๊ฐ ํ์ ํ๋์ ๊ฒฐ๊ณผ์ ๋ํด ๋ฐํํ ๋ด์ฉ๊ณผ MCP ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ์ ๋ณด์ฌ ์ค๋๋ค.3888Elicitation ํ
์ ์ฌ์ฉ์๋ฅผ ๋์ ํด ์์ฒญ์ ์๋ตํ๊ฑฐ๋, ๊ฑฐ์ ๋๋ ์ทจ์ํ๊ฑฐ๋, ๋ํ ์์์ ๋งก๊ธธ ์ ์์ต๋๋ค. ์๋ต, ๊ฑฐ์ ๋๋ ์ทจ์ํ๋ ค๋ฉด 0์ผ๋ก ์ข
๋ฃํ๊ณ `action`์ด ํฌํจ๋ `hookSpecificOutput` ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ์ธ์. ์๋ฒ๋ ํ
์ ์๋ต์ ๋ฐ๊ณ ๋ํ ์์๋ ๋ํ๋์ง ์์ต๋๋ค. ์ด ํ์ ๊ฐ ํ์ ํ๋์ ๊ฒฐ๊ณผ์ ๋ํด ๋ฐํํ ๋ด์ฉ๊ณผ MCP ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ์ ๋ณด์ฌ์ค๋๋ค.
3863 3889
3864| ๋ชฉ์ | ๋ฐํ | ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ |3890| ๋ชฉ์ | ๋ฐํ | ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ |
3865| :- | :- | :- |3891| :- | :- | :- |
3866| ์ฌ์ฉ์ ๋์ ์๋ต | `content`์ ์์ ํ๋ ๊ฐ์ ํฌํจํ `"action": "accept"` | ์ฌ์ฉ์์ `content`๊ฐ ํฌํจ๋ `accept` |3892| ์ฌ์ฉ์๋ฅผ ๋์ ํด ์๋ต | `content`์ ์์ ํ๋ ๊ฐ์ ํฌํจํ `"action": "accept"` | ํ
์ `content`์ ํจ๊ป `accept` |
3867| ์์ฒญ ๊ฑฐ์ | `"action": "decline"` | `decline` |3893| ์์ฒญ ๊ฑฐ์ | `"action": "decline"` | `decline` |
3868| ์์ฒญ ์ทจ์ | `"action": "cancel"` | `cancel` |3894| ์์ฒญ ์ทจ์ | `"action": "cancel"` | `cancel` |
3869| ์์ฒญ์ ์ฌ์ฉ์์๊ฒ ๋งก๊น | ์ถ๋ ฅ ์์, ์ข
๋ฃ ์ฝ๋ 0 | [๋ํ ์์](/docs/ko/mcp#respond-to-mcp-elicitation-requests)์์ ๋ฐ์ ์ฌ์ฉ์์ ์๋ต |3895| ์์ฒญ์ ์ฌ์ฉ์์๊ฒ ๋งก๊น | ์ถ๋ ฅ ์์ด ์ข
๋ฃ ์ฝ๋ 0 | [๋ํ ์์](/docs/ko/mcp#respond-to-mcp-elicitation-requests)์์์ ์ฌ์ฉ์ ์๋ต |
3870 3896
3871๋ค์ ์ถ๋ ฅ์ [Elicitation ์
๋ ฅ](#elicitation-input)์ ํ์๋ ์์ ๋ชจ๋ ์์ฒญ์ ์๋ตํฉ๋๋ค. `content`์ ํค๋ ํด๋น ์์ฒญ์ `requested_schema`์ ์๋ ์์ฑ ์ด๋ฆ์
๋๋ค.3897์ด ์ถ๋ ฅ์ [Elicitation ์
๋ ฅ](#elicitation-input)์ ํ์๋ ์์ ๋ชจ๋ ์์ฒญ์ ์๋ตํฉ๋๋ค. `content`์ ํค๋ ํด๋น ์์ฒญ์ `requested_schema`์ ์๋ ์์ฑ ์ด๋ฆ์
๋๋ค.
3872 3898
3873```json theme={null}3899```json theme={null}
3874{3900{
3882}3908}
3883```3909```
3884 3910
3885๋ค์ ์ถ๋ ฅ์ ์์ฒญ์ ๊ฑฐ์ ํฉ๋๋ค.3911์ด ์ถ๋ ฅ์ ์์ฒญ์ ๊ฑฐ์ ํฉ๋๋ค.
3886 3912
3887```json theme={null}3913```json theme={null}
3888{3914{
3893}3919}
3894```3920```
3895 3921
3896๋ํ ์์์์ **Decline**์ ์ ํํ๋ฉด `decline`์ด ์ ์ก๋๊ณ `Esc`๋ฅผ ๋๋ฅด๋ฉด `cancel`์ด ์ ์ก๋๋ฏ๋ก, ์๋ฒ๊ฐ ๋ฐ๊ธฐ๋ฅผ ์ํ๋ ๊ฐ์ ๋ฐํํ์ญ์์ค.3922๋ํ ์์์์ **Decline**์ ์ ํํ๋ฉด `decline`์ด ์ ์ก๋๊ณ `Esc`๋ฅผ ๋๋ฅด๋ฉด `cancel`์ด ์ ์ก๋๋ฏ๋ก, ์๋ฒ๊ฐ ๋ฐ๊ธฐ๋ฅผ ์ํ๋ ๊ฐ์ ๋ฐํํ์ธ์.
3897 3923
3898URL ๋ชจ๋ ์์ฒญ์ ๊ฒฝ์ฐ `accept`๋ฅผ ๋ฐํํ๋ ํ
์ ๋ํ ์์๋ฅผ ๊ฑด๋๋ฐ๋ฏ๋ก URL์ด ์ด๋ฆฌ์ง ์์ต๋๋ค.3924URL ๋ชจ๋ ์์ฒญ์ ๊ฒฝ์ฐ `accept`๋ฅผ ๋ฐํํ๋ ํ
์ ๋ํ ์์๋ฅผ ๊ฑด๋๋ฐ๋ฏ๋ก URL์ด ์ด๋ฆฌ์ง ์์ต๋๋ค.
3899 3925
3900Claude Code๋ ๋ฐํํ๋ `action`๊ณผ ๊ด๊ณ์์ด Elicitation ํ
์ JSON ์ถ๋ ฅ์์ `reason`, `systemMessage`, `continue`๋ฅผ ๋ฒ๋ฆฝ๋๋ค.3926Claude Code๋ ๋ฐํํ๋ `action`๊ณผ ๊ด๊ณ์์ด Elicitation ํ
์ JSON ์ถ๋ ฅ์์ `reason`, `systemMessage`, `continue`๋ฅผ ๋ฌด์ํฉ๋๋ค.
3901 3927
3902<h4 id="other-ways-to-decline-an-elicitation">3928<h4 id="other-ways-to-decline-an-elicitation">
3903 Other ways to decline an elicitation3929 elicitation์ ๊ฑฐ์ ํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ
3904</h4>3930</h4>
3905 3931
3906ํ
์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก๋ ๊ฑฐ์ ํ ์ ์์ต๋๋ค. ์๋ฒ๋ `"action": "decline"`์ ๊ฒฝ์ฐ์ ๋์ผํ `decline`์ ๋ฐ์ต๋๋ค.3932ํ
์ ๋ค์ ๋ฐฉ๋ฒ์ผ๋ก๋ ๊ฑฐ์ ํ ์ ์์ต๋๋ค. ์๋ฒ๋ `"action": "decline"`๊ณผ ๋์ผํ `decline`์ ๋ฐ์ต๋๋ค.
3907 3933
3908* **์ฝ๋ 2๋ก ์ข
๋ฃ**: Claude Code๋ ๊ฐ์ ํ
์ด ์ถ๋ ฅํ `hookSpecificOutput`์ ๋ฌด์ํฉ๋๋ค3934* **์ฝ๋ 2๋ก ์ข
๋ฃ**: Claude Code๋ ๊ฐ์ ํ
์ด ์ถ๋ ฅํ `hookSpecificOutput`์ ๋ฌด์ํฉ๋๋ค
3909* **์ต์์ `"decision": "block"` ์ถ๋ ฅ**: ์ฐจ๋จ์ด ๊ฐ์ ์ถ๋ ฅ์ `action`๋ณด๋ค ์ฐ์ ํฉ๋๋ค3935* **์ต์์ `"decision": "block"` ์ถ๋ ฅ**: ๊ฐ์ ์ถ๋ ฅ์ `action`๋ณด๋ค ์ฐจ๋จ์ด ์ฐ์ ํฉ๋๋ค
3910 3936
3911์ฌ๋ฌ ํ
์ด ๊ฐ์ ์์ฒญ๊ณผ ์ผ์นํ๋ ๊ฒฝ์ฐ, ๊ทธ์ค ํ๋์ ๊ฑฐ์ ์ด ๋ค๋ฅธ ํ
์ `accept` ๋๋ `cancel`๋ณด๋ค ์ฐ์ ํฉ๋๋ค.3937์ฌ๋ฌ ํ
์ด ๊ฐ์ ์์ฒญ๊ณผ ์ผ์นํ๋ ๊ฒฝ์ฐ, ๊ทธ์ค ํ๋์ ๊ฑฐ์ ์ด ๋ค๋ฅธ ํ
์ `accept` ๋๋ `cancel`์ ์ฌ์ ์ํฉ๋๋ค.
3912 3938
3913๋ค์ ์คํฌ๋ฆฝํธ๋ URL ๋ชจ๋ ์์ฒญ์ ๊ฑฐ์ ํ๊ณ ์์ ์์ฒญ์ ๋ํ ์์์ ๋งก๊น๋๋ค.3939์ด ์คํฌ๋ฆฝํธ๋ URL ๋ชจ๋ ์์ฒญ์ ๊ฑฐ์ ํ๊ณ ์์ ์์ฒญ์ ๋ํ ์์์ ๋งก๊น๋๋ค.
3914 3940
3915```bash theme={null}3941```bash theme={null}
3916#!/bin/bash3942#!/bin/bash
3919fi3945fi
3920```3946```
3921 3947
3922Claude Code๋ stderr๋ `reason`์ ํ์ํ์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ์์ ์๋ฒ ๋ชจ๋ ํ
์ด ๊ฑฐ์ ํ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค.3948Claude Code๋ stderr๋ `reason`์ ํ์ํ์ง ์์ผ๋ฏ๋ก, ์ฌ์ฉ์์ ์๋ฒ ๋ชจ๋ ํ
์ด ๊ฑฐ์ ํ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค.
3923 3949
3924Claude Code๋ v2.1.105๋ถํฐ v2.1.284์์ ์์ ๋ ๋๊น์ง `Elicitation` ๋ฐ `ElicitationResult` ํ
์ ์ต์์ `decision`์ ๋ฌด์ํ์ต๋๋ค.3950Claude Code๋ v2.1.105๋ถํฐ v2.1.284์์ ์์ ๋ ๋๊น์ง `Elicitation` ๋ฐ `ElicitationResult` ํ
์ ์ต์์ `decision`์ ๋ฌด์ํ์ต๋๋ค.
3925 3951
3926<h4 id="answer-a-form-request-from-a-script">3952<h4 id="answer-a-form-request-from-a-script">
3927 Answer a form request from a script3953 ์คํฌ๋ฆฝํธ์์ ์์ ์์ฒญ์ ์๋ตํ๊ธฐ
3928</h4>3954</h4>
3929 3955
3930๋ค์ ์์๋ ์ฌ์ฉ์ ๋์ ๋ฐ๋ณต๋๋ ์ง๋ฌธ ํ๋์ ์๋ตํฉ๋๋ค. `issue-tracker`๋ผ๋ MCP ์๋ฒ๊ฐ ์์์์ ํ๋ก์ ํธ ํค๋ฅผ ์์ฒญํ๋ฉด ํ
์ด `DOCS`๋ฅผ ์ฑ์ ๋ฃ์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ `project_key`๊ฐ ์์์ ์ ์ผํ ํ๋์ผ ๋ ์๋ฝํฉ๋๋ค. ๋ค๋ฅธ ์์ฒญ์๋ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ผ๋ฏ๋ก ๋ํ ์์๊ฐ ํ์๋ฉ๋๋ค.3956์ด ์์๋ ๋ฐ๋ณต๋๋ ์ง๋ฌธ ํ๋์ ์ฌ์ฉ์๋ฅผ ๋์ ํด ์๋ตํฉ๋๋ค. `issue-tracker`๋ผ๋ MCP ์๋ฒ๊ฐ ์์์ผ๋ก ํ๋ก์ ํธ ํค๋ฅผ ์์ฒญํ๋ฉด, ํ
์ด `DOCS`๋ฅผ ์ฑ์ ๋ฃ์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ `project_key`๊ฐ ์์์ ์ ์ผํ ํ๋์ผ ๋ ์๋ฝํฉ๋๋ค. ๋ค๋ฅธ ์์ฒญ์ ๋ํด์๋ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ผ๋ฏ๋ก ๋ํ ์์๊ฐ ๋ํ๋ฉ๋๋ค.
3931 3957
3932<Tabs>3958<Tabs>
3933 <Tab title="macOS/Linux">3959 <Tab title="macOS/Linux">
3934 ์ค์ ํ์ผ์์ ์๋ฒ ์ด๋ฆ์ matcher๋ก ํ์ฌ ์ด๋ฒคํธ์ ๋ํ ๋ช
๋ น ํ
์ ๋ฑ๋กํฉ๋๋ค.3960 ์ค์ ํ์ผ์ ์๋ฒ ์ด๋ฆ์ matcher๋ก ํ์ฌ ์ด ์ด๋ฒคํธ์ ๋ํ ๋ช
๋ น ํ
์ ๋ฑ๋กํฉ๋๋ค.
3935 3961
3936 ```json theme={null}3962 ```json theme={null}
3937 {3963 {
3952 }3978 }
3953 ```3979 ```
3954 3980
3955 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/answer-project-key.sh`์ ์ ์ฅํ๊ณ `chmod +x`๋ก ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.3981 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/answer-project-key.sh`์ ์ ์ฅํ๊ณ `chmod +x`๋ก ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋์ธ์.
3956 3982
3957 ```bash theme={null}3983 ```bash theme={null}
3958 #!/bin/bash3984 #!/bin/bash
3993 }4019 }
3994 ```4020 ```
3995 4021
3996 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/answer-project-key.ps1`์ ์ ์ฅํฉ๋๋ค.4022 ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ์ `.claude/hooks/answer-project-key.ps1`์ ์ ์ฅํ์ธ์.
3997 4023
3998 ```powershell theme={null}4024 ```powershell theme={null}
3999 $request = [Console]::In.ReadToEnd() | ConvertFrom-Json4025 $request = [Console]::In.ReadToEnd() | ConvertFrom-Json
4012 </Tab>4038 </Tab>
4013</Tabs>4039</Tabs>
4014 4040
4015ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด `claude --debug`๋ก Claude Code๋ฅผ ์์ํ๊ณ , ์๋ฒ๊ฐ ํ๋ก์ ํธ ํค๋ฅผ ์์ฒญํ๊ฒ ๋ง๋๋ ์์
์ Claude์๊ฒ ์ฃผ์ญ์์ค. ๋ํ ์์๊ฐ ํ์๋์ง ์์ผ๋ฉฐ, [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)์ `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}`๋ก ๋๋๋ ์ค์ด ๊ธฐ๋ก๋ฉ๋๋ค.4041ํ
์ด ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด `claude --debug`๋ก Claude Code๋ฅผ ์์ํ๊ณ , ์๋ฒ๊ฐ ํ๋ก์ ํธ ํค๋ฅผ ์์ฒญํ๊ฒ ๋ง๋๋ ์์
์ Claude์๊ฒ ๋งก๊ธฐ์ธ์. ๋ํ ์์๊ฐ ๋ํ๋์ง ์๊ณ , [๋๋ฒ๊ทธ ๋ก๊ทธ](#debug-hooks)์ `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}`๋ก ๋๋๋ ์ค์ด ๊ธฐ๋ก๋ฉ๋๋ค.
4016 4042
4017<h3 id="elicitationresult">4043<h3 id="elicitationresult">
4018 ElicitationResult4044 ElicitationResult
4019</h3>4045</h3>
4020 4046
4021์ฌ์ฉ์๊ฐ MCP elicitation์ ์๋ตํ ํ ์คํ๋ฉ๋๋ค. ํ
์ ์๋ต์ด MCP ์๋ฒ๋ก ๋ค์ ์ ์ก๋๊ธฐ ์ ์ ์๋ต์ ๊ด์ฐฐ, ์์ ๋๋ ์ฐจ๋จํ ์ ์์ต๋๋ค.4047์ฌ์ฉ์๊ฐ MCP elicitation์ ์๋ตํ ํ ์คํ๋ฉ๋๋ค. ํ
์ ์๋ต์ด MCP ์๋ฒ๋ก ๋ค์ ์ ์ก๋๊ธฐ ์ ์ ์ด๋ฅผ ๊ด์ฐฐ, ์์ ๋๋ ์ฐจ๋จํ ์ ์์ต๋๋ค.
4022 4048
4023[Elicitation](#elicitation) ํ
์ด ์์ฒญ์ ์๋ตํ๋ฉด Claude Code๋ ElicitationResult ํ
์ ์คํํ์ง ์๊ณ ํด๋น ์๋ต์ ์๋ฒ๋ก ๋ณด๋
๋๋ค.4049[Elicitation](#elicitation) ํ
์ด ์์ฒญ์ ์๋ตํ๋ฉด, Claude Code๋ ElicitationResult ํ
์ ์คํํ์ง ์๊ณ ํด๋น ์๋ต์ ์๋ฒ๋ก ๋ณด๋
๋๋ค.
4024 4050
4025matcher ํ๋๋ MCP ์๋ฒ ์ด๋ฆ๊ณผ ๋น๊ต๋ฉ๋๋ค.4051matcher ํ๋๋ MCP ์๋ฒ ์ด๋ฆ๊ณผ ๋น๊ต๋ฉ๋๋ค.
4026 4052
4027<h4 id="elicitationresult-input">4053<h4 id="elicitationresult-input">
4028 ElicitationResult input4054 ElicitationResult ์
๋ ฅ
4029</h4>4055</h4>
4030 4056
4031[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields)์ ๋ํด ElicitationResult ํ
์ `mcp_server_name`, `action`๊ณผ ์ ํ์ ํ๋์ธ `mode`, `elicitation_id`, `content`๋ฅผ ๋ฐ์ต๋๋ค.4057[๊ณตํต ์
๋ ฅ ํ๋](#common-input-fields) ์ธ์๋ ElicitationResult ํ
์ `mcp_server_name`, `action`, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ํ๋์ธ `mode`, `elicitation_id`, `content`๋ฅผ ๋ฐ์ต๋๋ค.
4032 4058
4033```json theme={null}4059```json theme={null}
4034{4060{
4044```4070```
4045 4071
4046<h4 id="elicitationresult-output">4072<h4 id="elicitationresult-output">
4047 ElicitationResult output4073 ElicitationResult ์ถ๋ ฅ
4048</h4>4074</h4>
4049 4075
4050ElicitationResult ํ
์ ์ฌ์ฉ์์ ์๋ต์ ๊ทธ๋๋ก ํต๊ณผ์ํค๊ฑฐ๋, ๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋, ์ฐจ๋จํ ์ ์์ต๋๋ค. ์๋ต์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ฐจ๋จํ๋ ค๋ฉด 0์ผ๋ก ์ข
๋ฃํ๊ณ `action`์ด ํฌํจ๋ `hookSpecificOutput` ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ์ญ์์ค. ์ด ํ์ ๊ฐ ํ์ ํ๋์ ๊ฒฐ๊ณผ์ ๋ํด ๋ฐํํ ๋ด์ฉ๊ณผ MCP ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ์ ๋ณด์ฌ ์ค๋๋ค.4076ElicitationResult ํ
์ ์ฌ์ฉ์์ ์๋ต์ ํต๊ณผ์ํค๊ฑฐ๋, ๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋, ์ฐจ๋จํ ์ ์์ต๋๋ค. ์๋ต์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ฐจ๋จํ๋ ค๋ฉด 0์ผ๋ก ์ข
๋ฃํ๊ณ `action`์ด ํฌํจ๋ `hookSpecificOutput` ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ์ธ์. ์ด ํ์ ๊ฐ ํ์ ํ๋์ ๊ฒฐ๊ณผ์ ๋ํด ๋ฐํํ ๋ด์ฉ๊ณผ MCP ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ์ ๋ณด์ฌ์ค๋๋ค.
4051 4077
4052| ๋ชฉ์ | ๋ฐํ | ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ |4078| ๋ชฉ์ | ๋ฐํ | ์๋ฒ๊ฐ ๋ฐ๋ ๋ด์ฉ |
4053| :- | :- | :- |4079| :- | :- | :- |
4054| ์๋ต ํต๊ณผ | ์ถ๋ ฅ ์์, ์ข
๋ฃ ์ฝ๋ 0 | ๋ณ๊ฒฝ๋์ง ์์ ์ฌ์ฉ์์ ์๋ต |4080| ์๋ต ํต๊ณผ | ์ถ๋ ฅ ์์ด ์ข
๋ฃ ์ฝ๋ 0 | ๋ณ๊ฒฝ๋์ง ์์ ์ฌ์ฉ์ ์๋ต |
4055| ์ ์ถ๋ ๊ฐ ๋ณ๊ฒฝ | `content`์ ์ ๊ฐ์ ํฌํจํ `"action": "accept"` | ์ฌ์ฉ์์ ๊ฐ ๋์ ํ
์ `content`๊ฐ ํฌํจ๋ `accept` |4081| ์ ์ถ๋ ๊ฐ ๋ณ๊ฒฝ | `content`์ ์ ๊ฐ์ ํฌํจํ `"action": "accept"` | ์ฌ์ฉ์์ ๊ฐ ๋์ ํ
์ `content`์ ํจ๊ป `accept` |
4056| ์๋ต ์ฐจ๋จ | `"action": "decline"` | ์ฌ์ฉ์์ ๊ฐ์ด ์๋ `decline` |4082| ์๋ต ์ฐจ๋จ | `"action": "decline"` | ์ฌ์ฉ์์ ๊ฐ ์์ด `decline` |
4057| ์์ฒญ ์ทจ์ | `"action": "cancel"` | ์ฌ์ฉ์๊ฐ ์ ์ถํ ๊ฐ๊ณผ ํจ๊ป `cancel`. ๊ฐ์ ๋ณด๋ด์ง ์์ผ๋ ค๋ฉด `"decline"`์ ๋ฐํํ์ญ์์ค |4083| ์์ฒญ ์ทจ์ | `"action": "cancel"` | ์ฌ์ฉ์๊ฐ ์ ์ถํ ๊ฐ๊ณผ ํจ๊ป `cancel`. ๊ฐ์ ์ ๋ฌํ์ง ์์ผ๋ ค๋ฉด `"decline"`์ ๋ฐํํ์ธ์ |
4058 4084
4059๋ค์ ์ถ๋ ฅ์ [ElicitationResult ์
๋ ฅ](#elicitationresult-input)์ ํ์๋ ์๋ต์ ๋ณ๊ฒฝํ๋ฏ๋ก, ์ฌ์ฉ์๊ฐ `alice`๋ฅผ ์ ์ถํ ์๋ฆฌ์ ์๋ฒ๋ `alice@example.com`์ ๋ฐ์ต๋๋ค.4085์ด ์ถ๋ ฅ์ [ElicitationResult ์
๋ ฅ](#elicitationresult-input)์ ํ์๋ ์๋ต์ ๋ณ๊ฒฝํ๋ฏ๋ก, ์ฌ์ฉ์๊ฐ `alice`๋ฅผ ์ ์ถํ ๊ณณ์์ ์๋ฒ๋ `alice@example.com`์ ๋ฐ์ต๋๋ค.
4060 4086
4061```json theme={null}4087```json theme={null}
4062{4088{
4070}4096}
4071```4097```
4072 4098
4073ํ
์ `content`๋ ์ฌ์ฉ์์ `content` ๊ฐ์ฒด ์ ์ฒด๋ฅผ ๋์ฒดํ๋ฏ๋ก ๋ณ๊ฒฝํ์ง ์๋ ํ๋๋ ํฌํจํ์ญ์์ค. Claude Code๋ `action`์ด ์๋ `hookSpecificOutput`์ ๋ฌด์ํ๋ฏ๋ก `action`๋ ํจ๊ป ๋ฐํํ์ญ์์ค.4099ํ
์ `content`๋ ์ฌ์ฉ์์ `content` ๊ฐ์ฒด ์ ์ฒด๋ฅผ ๋์ฒดํ๋ฏ๋ก, ๋ณ๊ฒฝํ์ง ์๋ ํ๋๋ ํฌํจํ์ธ์. Claude Code๋ `action`์ด ์๋ `hookSpecificOutput`์ ๋ฌด์ํ๋ฏ๋ก `action`๋ ํจ๊ป ๋ฐํํ์ธ์.
4074 4100
4075ElicitationResult ํ
์ ์ฌ์ฉ์๊ฐ ๊ฑฐ์ ํ๊ฑฐ๋ ์ทจ์ํ ๋๋ ์คํ๋๋ฉฐ, ํ
์ `action`์ด ์ฌ์ฉ์์ ๊ฒ์ ๋์ฒดํฉ๋๋ค. `accept`๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์
๋ ฅ์ `action`์ด `accept`์ธ์ง ํ์ธํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ
์ด ๊ฑฐ์ ๋ ์์ฒญ์ ์๋ฝ๋ ์์ฒญ์ผ๋ก ๋ฐ๊พธ๊ฒ ๋ฉ๋๋ค. ๋ค์ ์คํฌ๋ฆฝํธ๋ ์ฌ์ฉ์๊ฐ ์๋ฝํ ๊ฒฝ์ฐ ๋์ผํ ๋ณ๊ฒฝ์ ์ํํ๊ณ ๋ค๋ฅธ ํ๋๋ฅผ ์ ์งํ๋ฉฐ, ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ต๋๋ค.4101ElicitationResult ํ
์ ์ฌ์ฉ์๊ฐ ๊ฑฐ์ ํ๊ฑฐ๋ ์ทจ์ํ ๋๋ ์คํ๋๋ฉฐ, ํ
์ `action`์ด ์ฌ์ฉ์์ ๊ฒ์ ๋์ฒดํฉ๋๋ค. `accept`๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์
๋ ฅ์ `action`์ด `accept`์ธ์ง ํ์ธํ์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ
์ด ๊ฑฐ์ ๋ ์์ฒญ์ ์๋ฝ๋ ์์ฒญ์ผ๋ก ๋ฐ๊พธ๊ฒ ๋ฉ๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ ์ฌ์ฉ์๊ฐ ์๋ฝํ ๊ฒฝ์ฐ ๋์ผํ ๋ณ๊ฒฝ์ ์ํํ๊ณ ๋ค๋ฅธ ํ๋๋ ์ ์งํ๋ฉฐ, ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ต๋๋ค.
4076 4102
4077```bash theme={null}4103```bash theme={null}
4078#!/bin/bash4104#!/bin/bash
4083fi4109fi
4084```4110```
4085 4111
4086๋ค์ ์ถ๋ ฅ์ ์๋ต์ ์ฐจ๋จํฉ๋๋ค.4112์ด ์ถ๋ ฅ์ ์๋ต์ ์ฐจ๋จํฉ๋๋ค.
4087 4113
4088```json theme={null}4114```json theme={null}
4089{4115{
4096 4122
4097์ข
๋ฃ ์ฝ๋ 2์ ์ต์์ `"decision": "block"`๋ ์๋ต์ ์ฐจ๋จํฉ๋๋ค. ํ
์ด ์ด๋ค์ ํจ๊ป ์ฌ์ฉํ ๋ ์ด๋ ๊ฒ์ด ์ ์ฉ๋๋์ง, ์ฌ์ฉ์์๊ฒ ๋ฌด์์ด ํ์๋๋์ง, ์ด๋ค ๋ฒ์ ์ด `decision`์ ๋ฌด์ํ๋์ง๋ [elicitation์ ๊ฑฐ์ ํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ](#other-ways-to-decline-an-elicitation)์์ ๋ค๋ฃน๋๋ค.4123์ข
๋ฃ ์ฝ๋ 2์ ์ต์์ `"decision": "block"`๋ ์๋ต์ ์ฐจ๋จํฉ๋๋ค. ํ
์ด ์ด๋ค์ ํจ๊ป ์ฌ์ฉํ ๋ ์ด๋ ๊ฒ์ด ์ ์ฉ๋๋์ง, ์ฌ์ฉ์์๊ฒ ๋ฌด์์ด ํ์๋๋์ง, ์ด๋ค ๋ฒ์ ์ด `decision`์ ๋ฌด์ํ๋์ง๋ [elicitation์ ๊ฑฐ์ ํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ](#other-ways-to-decline-an-elicitation)์์ ๋ค๋ฃน๋๋ค.
4098 4124
4099Claude Code๋ ๋ฐํํ๋ `action`๊ณผ ๊ด๊ณ์์ด ElicitationResult ํ
์ JSON ์ถ๋ ฅ์์ `reason`, `systemMessage`, `continue`๋ฅผ ๋ฒ๋ฆฝ๋๋ค.4125Claude Code๋ ๋ฐํํ๋ `action`๊ณผ ๊ด๊ณ์์ด ElicitationResult ํ
์ JSON ์ถ๋ ฅ์์ `reason`, `systemMessage`, `continue`๋ฅผ ๋ฌด์ํฉ๋๋ค.
4100 4126
4101<h2 id="prompt-based-hooks">4127<h2 id="prompt-based-hooks">
4102 ํ๋กฌํํธ ๊ธฐ๋ฐ ํ
4128 ํ๋กฌํํธ ๊ธฐ๋ฐ ํ
4351* **stdout์ ๋จ๋
์ผ๋ก ์ถ๋ ฅ**: ์๋ต์ด stdout์ ์ ์ผํ ํ
์คํธ์ธ ๊ฒฝ์ฐ, pretty-print๋ `jq` ์ถ๋ ฅ์ฒ๋ผ ์ฌ๋ฌ ์ค์ ๊ฑธ์น ์ ์์ต๋๋ค. ์ฌ๋ฌ ์ค์ ๊ฑธ์น๋ ค๋ฉด Claude Code v2.1.295 ์ด์์ด ํ์ํฉ๋๋ค.4377* **stdout์ ๋จ๋
์ผ๋ก ์ถ๋ ฅ**: ์๋ต์ด stdout์ ์ ์ผํ ํ
์คํธ์ธ ๊ฒฝ์ฐ, pretty-print๋ `jq` ์ถ๋ ฅ์ฒ๋ผ ์ฌ๋ฌ ์ค์ ๊ฑธ์น ์ ์์ต๋๋ค. ์ฌ๋ฌ ์ค์ ๊ฑธ์น๋ ค๋ฉด Claude Code v2.1.295 ์ด์์ด ํ์ํฉ๋๋ค.
4352* **๋ณ๋์ ํ ์ค์ ์ถ๋ ฅ**: ์๋ฅผ ๋ค์ด `jq -c`๋ฅผ ์ฌ์ฉํ์ฌ ์๋ต์ด ํ ์ค์ ๋จ๋
์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ, ๋น๋๊ธฐ hook์ stdout์ ๋ค๋ฅธ ํ
์คํธ๋ฅผ ์ถ๋ ฅํ ์ ์์ต๋๋ค.4378* **๋ณ๋์ ํ ์ค์ ์ถ๋ ฅ**: ์๋ฅผ ๋ค์ด `jq -c`๋ฅผ ์ฌ์ฉํ์ฌ ์๋ต์ด ํ ์ค์ ๋จ๋
์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ, ๋น๋๊ธฐ hook์ stdout์ ๋ค๋ฅธ ํ
์คํธ๋ฅผ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
4353 4379
4354Claude Code๋ JSON ์๋ต์ ๋๊ธฐ hook๊ณผ ๋์ผํ [์ถ๋ ฅ ์คํค๋ง](#json-output)์ ๋ํด ๊ฒ์ฆํ๊ณ , `systemMessage`๊ฐ ๋ฌธ์์ด์ด ์๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ๊ฐ์ ์ ํ์ด ์๋ชป๋ ํ๋๋ฅผ ์ ๋ฌํ์ง ์๊ณ ์ญ์ ํฉ๋๋ค. `--debug`๋ก ์คํํ์ฌ ์ญ์ ๋ ๊ฐ ํ๋์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ธํฉ๋๋ค. v2.1.202 ์ด์ ์๋ ๋น๋๊ธฐ hook์ ์๋ชป๋ ํ์์ JSON ์ถ๋ ฅ์ด ์ธ์
์ ์ถฉ๋์ํฌ ์ ์์๊ณ , ์ธ์
์ด ์ฌ๊ฐ๋ ๋๋ง๋ค ์ถฉ๋์ด ๋ฐ๋ณต๋์์ต๋๋ค.4380Claude Code๋ JSON ์๋ต์ ๋๊ธฐ hook๊ณผ ๋์ผํ [์ถ๋ ฅ ์คํค๋ง](#json-output)์ ๋ํด ๊ฒ์ฆํ๊ณ , `systemMessage`๊ฐ ๋ฌธ์์ด์ด ์๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ๊ฐ์ ์ ํ์ด ์๋ชป๋ ํ๋๋ฅผ ์ ๋ฌํ์ง ์๊ณ ์ญ์ ํฉ๋๋ค. `--debug`๋ก ์คํํ์ฌ ์ญ์ ๋ ๊ฐ ํ๋์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ธํฉ๋๋ค.
4355 4381
4356๋น๋๊ธฐ hook ์๋ฃ ์๋ฆผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๋ฉ๋๋ค. ๋ณด๋ ค๋ฉด `Ctrl+O`๋ก ์์ธํ ๋ชจ๋๋ฅผ ํ์ฑํํ๊ฑฐ๋ `--verbose`๋ก Claude Code๋ฅผ ์์ํฉ๋๋ค.4382๋น๋๊ธฐ hook ์๋ฃ ์๋ฆผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๋ฉ๋๋ค. ๋ณด๋ ค๋ฉด `Ctrl+O`๋ก ์์ธํ ๋ชจ๋๋ฅผ ํ์ฑํํ๊ฑฐ๋ `--verbose`๋ก Claude Code๋ฅผ ์์ํฉ๋๋ค.
4357 4383