Tools, Hooks, MCP, Skills, Agents, Plugins 등
Claude Code를 이루는 8가지 핵심 개념을 시각적으로 이해합니다
바깥 계층일수록 안쪽 계층을 감싸고, 구성하고, 확장합니다. 가장 안쪽의 Built-in Tools가 모든 것의 기반입니다.
Skills + Agents + Hooks + MCP를 하나로 묶어 배포하는 패키지
외부 API, 데이터베이스, 클라우드 서비스와 연결하는 표준 프로토콜
이벤트 기반으로 항상 실행되는 자동화 핸들러
독립된 컨텍스트에서 병렬로 작업하는 전문 AI 에이전트
필요할 때 로드되는 도메인 전문 지식과 워크플로우
매 세션마다 자동으로 로드되는 프로젝트 컨텍스트와 규칙
권한, 환경 변수, 모델 선택 등 모든 동작을 제어하는 설정
Read, Write, Edit, Bash, Glob, Grep 등 Claude의 기본 동작
각 카드를 클릭하면 상세 정보를 확인할 수 있습니다
Claude Code에 내장된 기본 도구들입니다. 파일 읽기/쓰기, 명령어 실행, 검색 등 가장 근본적인 동작을 수행합니다. 모든 다른 개념의 기반이 됩니다.
| 도구 | 역할 |
|---|---|
| Read | 파일 내용 읽기 (이미지, PDF 포함) |
| Write | 파일 생성/덮어쓰기 |
| Edit | 기존 파일의 특정 부분 교체 |
| Bash | 쉘 명령어 실행 |
| Glob | 파일 패턴 검색 (예: *.ts) |
| Grep | 파일 내용 정규식 검색 |
| Task | 서브에이전트 생성 |
| WebFetch/Search | 웹 콘텐츠 가져오기/검색 |
항상 사용 가능하며, Settings의 권한 설정으로 허용/거부를 제어할 수 있습니다. MCP 도구도 이 도구들과 동일한 방식으로 사용됩니다.
JSON 설정 파일로 Claude Code의 권한, 환경 변수, Hooks, 플러그인 활성화, UI 언어 등 모든 동작을 제어합니다. 여러 범위(managed, user, project)에서 계층적으로 적용됩니다.
| 범위 | 위치 |
|---|---|
| Managed | /Library/.../managed-settings.json |
| CLI 인수 | 명령줄 플래그 (세션 한정) |
| 로컬 프로젝트 | .claude/settings.local.json |
| 공유 프로젝트 | .claude/settings.json |
| 사용자 | ~/.claude/settings.json |
Hooks, Plugin 활성화, 권한 규칙 등이 모두 Settings 안에 정의됩니다. "설정의 설정"이자 모든 것의 컨테이너입니다.
매 세션 시작 시 자동으로 로드되는 마크다운 파일입니다. 프로젝트 구조, 코딩 규칙, 아키텍처 결정 등 영구적 지침을 담습니다. Skills와 달리 항상 컨텍스트에 포함됩니다.
| 범위 | 위치 |
|---|---|
| 사용자 전역 | ~/.claude/CLAUDE.md |
| 프로젝트 공유 | CLAUDE.md 또는 .claude/CLAUDE.md |
| 프로젝트 로컬 | .claude/CLAUDE.local.md |
CLAUDE.md는 항상 로드 (컨텍스트 비용 고정), Skills는 필요할 때만 로드 (컨텍스트 절약). 보편적 규칙은 CLAUDE.md에, 특수 워크플로우는 Skills에 넣습니다.
필요할 때만 로드되는 도메인 전문 지식 패키지입니다. SKILL.md 파일에 지침을 정의하고, Claude가 관련성이 있으면 자동 호출하거나, 사용자가 /skill-name으로 수동 호출합니다.
| 필드 | 설명 |
|---|---|
| name | 스킬 이름 (슬래시 커맨드) |
| description | 자동 호출 판단 기준 |
| context: fork | 별도 서브에이전트에서 실행 |
| allowed-tools | 사용 가능 도구 제한 |
| !`cmd` | 동적 컨텍스트 주입 (쉘 실행) |
~/.claude/skills/ (개인), .claude/skills/ (프로젝트), 플러그인 내부 (네임스페이스). 동적 컨텍스트 주입 !`cmd`으로 라이브 데이터를 스킬에 넣을 수 있습니다.
Task 도구로 생성되는 독립 AI 에이전트입니다. 각자 별도의 컨텍스트 윈도우에서 작업하며, 최대 10개까지 동시 실행됩니다. 무거운 작업을 메인 대화에서 분리합니다.
| 타입 | 모델 | 용도 |
|---|---|---|
| Explore | Haiku | 빠른 코드베이스 탐색 |
| Plan | 상속 | 구현 계획 설계 |
| general-purpose | 상속 | 모든 도구 사용 가능 |
| Bash | 상속 | 터미널 명령 전용 |
중첩 불가: 서브에이전트 안에서 또 다른 서브에이전트를 생성할 수 없습니다. 커스텀 에이전트는 ~/.claude/agents/에 마크다운 파일로 정의합니다.
특정 이벤트에서 항상, 확정적으로 실행되는 핸들러입니다. Claude의 판단 없이 조건이 맞으면 무조건 실행됩니다. 검증, 차단, 로깅, 알림 등에 사용합니다.
| 이벤트 | 시점 | 차단 가능 |
|---|---|---|
| SessionStart | 세션 시작 | ✕ |
| UserPromptSubmit | 사용자 입력 후 | ✓ |
| PreToolUse | 도구 실행 전 | ✓ |
| PostToolUse | 도구 실행 후 | ✕ |
| Stop | 응답 완료 시 | ✓ |
| PreCompact | 컨텍스트 압축 전 | ✕ |
Hooks는 결정론적 (항상 실행), Skills는 확률적 (Claude가 판단). Hooks는 자동화/검증에, Skills는 전문 지식에 사용합니다.
Model Context Protocol - 외부 도구, 데이터베이스, API와 연결하는 표준 프로토콜입니다. MCP 서버가 도구를 제공하면, Claude는 내장 도구처럼 mcp__서버__도구 형식으로 사용합니다.
| 방식 | 용도 |
|---|---|
| http | 원격 클라우드 서비스 (권장) |
| sse | 서버 이벤트 (레거시) |
| stdio | 로컬 프로세스 |
~/.claude.json (사용자), .mcp.json (프로젝트), 플러그인 내부. 도구가 컨텍스트의 10% 이상을 차지하면 자동으로 Lazy Loading이 활성화됩니다.
Skills, Agents, Hooks, MCP, LSP를 하나로 묶은 배포 가능한 패키지입니다. 마켓플레이스에서 설치하며, 네임스페이스로 충돌 없이 관리됩니다. plugin.json 매니페스트로 정의합니다.
| 구성요소 | 위치 |
|---|---|
| Skills | skills/ (SKILL.md 파일) |
| Agents | agents/ (마크다운 파일) |
| Hooks | hooks/hooks.json |
| MCP 서버 | .mcp.json |
| LSP 서버 | .lsp.json (코드 인텔리전스) |
단독 Skills/Hooks와 달리 버전 관리와 마켓플레이스 배포가 가능합니다. 네임스페이스: /plugin-name:skill-name
사용자 입력부터 응답 완료까지, 각 단계에서 어떤 개념이 개입하는지 보여줍니다
프롬프트 또는 /slash-command 입력
입력 검증, 키워드 감지, 컨텍스트 주입
영구 지침 적용 + 관련 스킬 자동 활성화
내장 도구 또는 MCP 도구 선택
허용/거부/수정 — 도구 실행 전 검증
Built-in 또는 MCP 도구가 실제 작업 수행
결과 기반 피드백, 린트, 로깅
Task 도구로 병렬 작업 위임
응답 완료 검증, 알림 전송
Claude Code를 레스토랑에 비유하면 각 개념의 역할이 더 명확해집니다
칼, 프라이팬, 오븐 등 요리의 기본 도구. 없으면 아무것도 만들 수 없습니다.
"가스레인지 사용 시 환풍기 켜기", "칼은 A 구역에서만 사용" 등 주방 운영 규칙.
출근하면 항상 읽는 매뉴얼. "우리 가게는 한식 전문", "MSG 사용 금지" 같은 영구 규칙.
특정 요리가 주문되면 꺼내 보는 상세 레시피. 항상 펼쳐두진 않지만 필요할 때 꺼냅니다.
메인 셰프가 "디저트는 네가 해"라고 위임하면, 별도 조리대에서 독립적으로 작업합니다.
오븐 열면 자동으로 타이머 시작, 연기 감지 시 무조건 경보. 의지와 무관하게 항상 작동합니다.
외부에서 재료를 공급하는 업체. 표준 계약(프로토콜)으로 연결되어 다양한 식재료를 받을 수 있습니다.
레시피 + 규칙 + 장비 + 납품업체를 한 번에 제공하는 프랜차이즈 시작 키트.
유사해 보이는 개념들의 차이를 명확히 구분합니다
| Skills | Hooks | |
|---|---|---|
| 실행 방식 | 확률적 (Claude가 판단) 또는 수동 호출 | 결정론적 (항상 실행) |
| 목적 | 도메인 전문 지식 & 워크플로우 | 자동화, 검증, 차단, 로깅 |
| 산출물 | Claude의 사고 방식을 가이드 | Claude의 행동을 제어 (차단/허용) |
| 신뢰성 | Best-effort (안 쓸 수도 있음) | 보장 실행 |
| 비유 | 참고하는 전문 레시피 | 오븐 타이머 (무조건 울림) |
| CLAUDE.md | Skills | |
|---|---|---|
| 로딩 | 항상 자동 로드 | 필요 시에만 로드 |
| 컨텍스트 비용 | 고정 (매 세션 차지) | 온디맨드 (절약) |
| 범위 | 보편적 (모든 작업에 적용) | 좁음 (특정 도메인) |
| 적합한 내용 | 아키텍처, 코딩 규칙, 프로젝트 구조 | TDD 워크플로우, 커밋 규칙 등 |
| 비유 | 항상 읽는 사원 매뉴얼 | 특정 요리의 레시피북 |
| MCP | Plugins | |
|---|---|---|
| 정체 | 외부 도구 연결 프로토콜 | 번들 패키지 (Skills+Hooks+MCP 포함) |
| 제공하는 것 | 도구, 리소스, 프롬프트 | 모든 것 (Skills+Agents+Hooks+MCP+LSP) |
| 배포 | claude mcp add | 마켓플레이스 설치 |
| 버전 관리 | 서버 자체 관리 | 시맨틱 버전 관리 |
| 관계 | Plugin의 한 구성요소가 될 수 있음 | MCP를 포함할 수 있음 |
| 개념 | 정체 | 트리거 | 목적 |
|---|---|---|---|
| Tools | 내장 동작 | Claude 결정 | 기본 작업 수행 |
| Settings | JSON 설정 | 파일 편집 | 모든 것을 제어 |
| CLAUDE.md | 마크다운 지침 | 세션 시작 자동 | 영구 규칙/컨텍스트 |
| Skills | 전문 지식 패키지 | 자동 또는 수동 | 도메인 전문성 |
| Agents | 독립 AI 프로세스 | Task 도구 | 병렬/분리 실행 |
| Hooks | 이벤트 핸들러 | 이벤트 발생 시 | 자동화/검증/제어 |
| MCP | 연결 프로토콜 | Claude 결정 | 외부 시스템 연결 |
| Plugins | 배포 번들 | 설치/활성화 | 기능 패키징/배포 |
상황별로 어떤 개념을 사용해야 하는지 빠르게 찾아보세요
파일 시스템과 직접 상호작용
Built-in Tools권한, 환경 변수, UI 설정
Settings"항상 TypeScript 사용", "테스트 필수"
CLAUDE.mdTDD, 코드리뷰, 커밋 규칙 등
Skills병렬 처리, 컨텍스트 보호
Subagents파일 저장 시 린트, 알림 전송
HooksGitHub, Slack, DB 등 외부 서비스
MCP팀/마켓플레이스에 기능 배포
Plugins각 문항을 클릭해서 정답을 확인하세요