앞선 글에서 Claude Code의 기본 개념과 사용법을 살펴봤다면,
이번 글에서는 CLI 플래그, 세션 관리, 에이전트 설정, 자동화 제어처럼 실제 실무에서 활용되는 고급 기능과 자동화 방식을 정리한다.
이 글은 Claude Code를 “써보는 단계”를 넘어 통제하며 사용하는 단계로 가기 위한 참고용 정리다.
☑️ CLI 참조
CLI 명령어
| 명령어 | 설명 | 예제 |
| claude | 대화형(REPL) 실행 | claude |
| claude "query" | 초기 질문을 입력한 뒤 대화형(REPL) 세션을 시작 | claude "Summarize this repository" |
| claude -p "query" | 한 번 질문하고 응답을 출력한 뒤 바로 종료 | claude -p "List potential security issues" |
| cat file | claude -p "query" | 파이프 입력 처리 | cat error.log | claude -p "Explain the root cause" |
| claude -c | 최근 대화 세션 계속 유지 | claude -c |
| claude -c -p "query" | 최근 대화를 사용, REPL은 열지 않고 응답 후 종료 CI/CD나 스크립트 자동화에서 자주 사용됨 |
claude -c -p "Suggest next refactoring steps" |
| claude -r "<session>" "query" | 세션 ID 또는 이름을 지정해서 재개 이전 작업 맥락을 유지한 채 이어서 작업할 떄 유용 |
claude -r "payment-refactor" "Review remaining TODOs" |
| 옵션 | 의미 |
| -p | 단발 실행 |
| -c | 최근 세션 계속 |
| -r | 특정 세션 재개 |
CLI 플래그
| 플래그 | 설명 | 예제 |
| --add-dir | Claude가 접근할 수 있는 추가 작업 디렉토리 지정 | claude --add-dir ../shared ../scripts |
| --session-id | 대화에 명시적 세션 ID(UUID) 사용 | claude --session-id "release-check-2026" |
| --continue, -c | 현재 디렉토리의 최근 세션 재개 | claude --continue |
| --resume, -r | 특정 세션 ID 또는 이름으로 재개 | claude --resume dashboard-migration |
| --fork-session | 세션 재개 시 새 세션으로 분기 | claude --resume dashboard-migration --fork-session |
| --agent | 현재 세션에 사용할 에이전트 지정 | claude --agent test-automator |
| --agents | JSON으로 사용자 정의 서브 에이전트 정의 | claude --agents '{"docs":{"description":"Write docs","prompt":"You write API docs"}}' |
| --model | 사용할 모델 지정 | claude --model opus |
| --fallback-model | 과부하 시 대체 모델 자동 사용 | claude -p --fallback-model sonnet "Analyze build errors" |
| -tools | 사용할 수 있는 도구 화이트리스트 | claude --tools "Read,Grep" |
| --allowedTools | 권한 확인 없이 실행 가능한 도구 | claude --allowedTools "Read" "Bash(git diff:*)" |
| --disallowedTools | 명시적으로 차단할 도구 | claude --disallowedTools "Edit" "Bash(rm:*)" |
| --permission-mode | Ask / Plan / Auto-accept 중 시작 모드 지정 | claude --permission-mode plan |
| --dangerously-skip-permissions | ⚠️ 권한 확인을 완전히 생략 | claude --dangerously-skip-permissions |
| --print, -p | 대화형 모드 없이 출력만 | claude -p "Summarize recent commits" |
| --output-format | 출력 형식 지정 | claude -p --output-format markdown "Write release notes" |
| --input-format | 입력 형식 지정 | claude -p --input-format stream-json |
| --system-promt | 시스템 프롬프트 사용자 정의 | claude --system-prompt "You are a security auditor" |
► disallowedTools → allowedTools → tools 순으로 권한이 제한된다.
MCP 관련 플래그
| 플래그 | 설명 | 예제 |
| --mcp-config | MCP 서버 설정 로드 | claude --mcp-config ./mcp.local.json |
| --strict-mcp-config | 지정한 MCP 설정만 사용 | claude --strict-mcp-config --mcp-config ./mcp.prod.json |
| --chrome/ --no-chrome | Chrome 자동화 활성/비활성 | claude --no-chrome |
☑️ Agent / Sub-agent
: Claude는 상황에 따라 적절한 서브 에이전트를 자동으로 선택할 수 있으며,
자동 호출이 되지 않는 경우 명시적으로 에이전트를 지정해 위임할 수 있다.
기본 개념
► 메인 에이전트(agent): Claude 세션에서 중심 역할 수행
► 서브 에이전트(sub-agent): 리뷰 전용, 테스트 전용, 문서 적용 등 전문화된 역할을 수행하는 에이전트
--agents의 기본 구조
| 필드 | 필수 | 설명 |
| name | O | 서브에이전트 이름, 키로 사용 된다. |
| description | O | 서브에이전트를 호출해야 할 때를 설명하는 자연어 설명 |
| prompt | O | 서브에이전트의 동작을 안내하는 시스템 프롬프트 (역할·행동 규칙 정의) |
| tools | X | 생략하면 메인 에이전트의 도구 권한을 상속 |
| model | X | 사용할 모델 별칭: sonnet, opus, 또는 haiku. 생략하면 기본 서브에이전트 모델 사용 |
유용한 Agent
► code-reviewer: 코드 품질, 보안, 유지보수성 관점에서 전문적인 코드 리뷰 수행
► test-automator: 단위/통합/E2E 테스트를 포함한 종합 테스트 스위트 생성
► debugger: 오류, 테스트 실패, 예상치 못한 동작에 대한 디버깅 전문가
► error-detective: 에러 로그 분석 및 근본 원인 추적 전문가
► docs-architect: 개발자 문서 작성 및 OpenAPI/Swagger 스펙 생성
► architect-reviewer: 시스템 아키텍처 설계 및 기술적 의사결정 검토
Sub - Agent 정의 방법
► CLI: 콘솔창에 json 형태로 입력해 사용 가능. 재시작시 사라짐
► Json 파일 형식으로 정의
► Yaml 파일 형식으로 정의
claude --agents '{
"test-automator": {
"description": "Generates and maintains automated tests after code changes.",
"prompt": "You are a test automation expert. Generate unit, integration, and edge-case tests. Do not modify production code.",
"tools": ["Read", "Grep", "Glob"],
"model": "sonnet"
}
}'
----
test-automator:
description: Generates and maintains automated tests after code changes.
prompt: |
You are a test automation expert.
Focus on unit, integration, and edge-case tests.
Do not modify production code.
tools:
- Read
- Grep
- Glob
model: sonnet
► 코드 리뷰 역할을 담당하는 서브 에이전트
► 메인 에이전트가 "코드변경" 상황이라고 판단할 경우 자동 호출
► 코드 품질, 보안 이슈를 집중적으로 판단.
► 읽기, 코드 패턴 검색, 여러 파일 매칭, git 명령어 실행 가능 -> edit 권한을 부여하지 않았기에 리뷰에 집중
► CLI로 정의한 에이전트는 세션 종료 시 사라지며, 파일(JSON/YAML)로 정의한 에이전트는 재사용 가능하다.
☑️ Hook
: Claude Code가 실행되는 과정에서 특정 이벤트 시점에 자동으로 실행되는 스크립트
: Hook 스크립트를 통해 프로젝트 외부 파일 접근, 위험한 시스템 명령 실행, 민감 정보가 담긴 파일 조작 등을 사전에 차단하거나 후처리 할 수 있다.
: 훅을 사용하면 LLM의 판단에 의존하지 않고, 항상 특정 작업이 실행되도록 보장할 수 있다
훅 이벤트 개요
| 훅 이벤트 | 언제 실행 되는지 | 역할 |
| PreToolUse | 도구 호출 전 | 차단 가능 |
| PermissionRequest | 권한 요청 전 | 허용/거부 제어 기능 |
| PostToolUse | 도구 호출 후 | 결과 후 처리, 로깅 등 |
| UserPromptSubmit | 사용자가 프롬프트 제출 시 | 입력 검증 및 전처리 가능 |
| Notification | Claude가 알림 전송 시 | 데스크톱 알림 등 |
| Stop | Claude 응답 완료 시 | 세션 종료 전 마무리 작업 수행 |
| SubagentStop | 서브에이전트 완료 시 | 후속 작업 트리거 |
| PreCompact | 컴팩트 작업 전 | 최적화 작업 가능 |
| SessionStart | 세션 시작/재개 시 | 초기 설정 실행 |
| SessionEnd | 세션 종료 시 | 정리 작업 실행 |
훅 기본 구조
: Hooks는 matcher 단위로 구성되며, 하나의 이벤트에 대해 여러 matcher와 hooks가 순차적으로 평가된다.
{
// 코드 수정(Edit) 또는 파일 생성(Write) 이후 실행되는 포맷팅 훅
"hooks": {
"PostToolUse": [
{
// Edit 또는 Write 도구가 사용된 경우에만 반응
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | { \
read file_path; \
if echo \"$file_path\" | grep -q '\\.ts$'; then \
npx prettier --write \"$file_path\"; \
fi; \
}"
}
]
}
]
}
}
► Claude Code가 TypeScript 파일(.ts)을 수정하거나 생성한 경우, 자동으로 prettier를 실행해 코드 포맷을 맞춘다.
[실행 순서]
이벤트, 언제 (Event) → 조건, 무엇에 반응하여 (matcher) → 실행 목적, 무엇을 할지ㅡ(hooks)
► EventName: 해당 이벤트가 발생하면 정의된 matcher를 순차적으로 검사한다.
► matcher: 도구 이름 필터
► hooks: matcher가 일치하면 정의된 hooks가 실행되며, 여러 hooks는 병렬 실행될 수 있다.
☑️ 마무리
Claude Code, Agent, Hook은 각각 독립된 기능처럼 보이지만
실제로는 하나의 자동화 구조를 이루는 구성 요소다.
Claude Code는 AI가 실제 작업을 수행할 수 있는 실행 환경이고,
Agent는 그 안에서 무엇을 할지를 결정하는 역할 단위이며,
Hook은 그 작업이 언제, 어떻게 실행될 수 있는지를 통제한다.
이 세 가지를 함께 사용할 때,
Claude Code는 단순한 AI 도구를 넘어
신뢰 가능한 개발 자동화 플랫폼이 된다
'CODING STUDY > 개발 지식 창고📚' 카테고리의 다른 글
| [Gemini CLI] Gemini CLI 고급 설정 & Hooks 활용 (심화편) (0) | 2026.02.03 |
|---|---|
| [Gemini CLI] Gemini CLI 실전 사용 가이드 (기본편) (0) | 2026.01.29 |
| [Claude Code] Claude Code 실전 사용법 정리(명령어, 모드, 기능) (1) | 2026.01.22 |
| [Claude Code] claude code의 개념 및 간단 설명 (0) | 2026.01.20 |
| [POSTMAN] API TEST Run Collection 실행하기 (2) | 2024.06.10 |