https://code.claude.com/docs/en/quickstart#essential-commands
| Command | What it does | Example |
|---|---|---|
claude |
Start interactive mode | claude |
claude "task" |
Run a one-time task | claude "fix the build error" |
claude -p "query" |
Run one-off query, then exit | claude -p "explain this function" |
claude -c |
Continue most recent conversation in current directory | claude -c |
claude -r |
Resume a previous conversation | claude -r |
claude commit |
Create a Git commit | claude commit |
/clear |
Clear conversation history | /clear |
/help |
Show available commands | /help |
exit or Ctrl+C |
Exit Claude Code | exit |
Claude Code 는 terminal 에서 실행되는 agentic assistant.
Claude 에 작업을 주면 세 phase 를 거침.
Loop 는 어떤 작업을 요청했는지에 따라 다르게 적용함. e.g. codebase 에 대한 질문 - context gathering 만 / bug fix cycle - 모든 phase 를 거침.
Claude 는 이전 단계에서 배운 것을 바탕으로 각 단계에서 어떤 것이 필요한지를 결정함. 사용자는 이 loop 의 일부이기 때문에 중간에 끼어들어서 다른 방향으로 조정하거나 추가 context 를 제공할 수 있음
Claude Code 는 Claude 에 agentic harness 를 제공함. Tool, context management, execution environment 를 제공해서 언어 모델이 코딩 에이전트로 동작할 수 있게끔 함
Agentic loop 은 두 개의 component 로 구동됨.
Claude Code 는 Claude model 을 사용해서 code 와 작업에 대한 추론 (두뇌 역할) 을 할 수 있게 함.
목적마다 model 을 다르게 선택 가능. /model 을 통해 모델을 변경할 수 있음
Tools 는 Claude Code 를 agentic 하게 만듦. Tools 없이 Claude 는 text 만 응답할 수 있음. Tools 를 사용해서 Claude 는 code 를 읽고 파일을 수정, 웹 서치, 외부 서비스와 interact 할 수 있음. 각 tool 은 loop 에 정보를 feed back 함
이미 내장된 4개의 카테고리가 있고 각 카테고리는 다른 agency 성격을 띔
| Category | What Claude can do |
|---|---|
| File operations | Read files, edit code, create new files, rename and reorganize |
| Search | Find files by pattern, search content with regex, explore codebases |
| Execution | Run shell commands, start servers, run tests, use git |
| Web | Search the web, fetch documentation, look up error messages |
| Code intelligence | See type errors and warnings after edits, jump to definitions, find references (requires code intelligence plugins) |
Claude 는 subagent 를 spawn 하거나 사용자에게 질문을 묻거나 다른 작업을 위한 tool 도 갖고 있음.
Claude 는 prompt 에 따라, 또 배우는 것에 따라 tool 을 다르게 선택함.
e.g. “fix the failing tests” prompt
Base-capabilities 확장 : 내장된 tool 은 foundation. 아래의 extension 을 사용
skill 로 Claude 의 지식을 확장 (for workflow)MCP 를 사용해서 외부 서비스에 연결 (for external services)hook 로 workflow 자동화subagent 에 task offload (for delegated work)특정 디렉토리에서 claude 를 실행하면 아래에 대한 접근을 얻음
CLAUDE.md : Claude 가 모든 seesion 에서 알아야 하는 project-specific instruction, convention, context 을 저장한 md 파일Claude Code 는 conversation 을 local 하게 저장함. 각 message, tool use, result 는 저장되고, rewinding, resuming, forking 할 수 있음. Claude 가 code 를 수정하기 전에 snapshot 을 떠서 원할 경우 revert 할 수 있게 함
Session 은 독립적. 각 새로운 session 은 새로운 context window 로 시작하고, 이전 session 의 conversation history 는 모름. Claude 는 auto memory 를 사용해서 세션을 거득ㅂ해서 배울 수 있고, 이런 persistent instruction 을 CLAUDE.md 에 넣을 수 있음.
각 Claude Code conversation 은 현재 directory 에 엮인 session 이고, resume 할 경우 해당 directory 의 세션들만 볼 수 있음.
Claude 는 현재 branch 의 파일들을 봄. Branch 를 switch 할경우 Claude 는 새로운 branch 의 파일을 보지만 conversation history 는 그대로 유지됨. Claude 는 switching 된 이후에도 논의된 것을 기억함.
Session 이 디렉토리에 묶여져 있기 때문에 git worktrees 를 사용해서 parallel Claude session 을 실행할 수 있음.
claude --continue / claude --resume 을 사용해서 session 을 resume 할 경우 같은 session ID 를 사용했던 곳에서 다시 시작함. 새로운 메세지는 이미 존재하는 conversation 에 추가됨. 전체 conversation history 는 다시 불러와지지만 session-scoped 권한은 그렇지 않기 때문에 다시 허용해줘야 함
원래의 session 에 영향을 주지 않고 branch off 를 해서 다른 접근을 하려면 --fork-session 플래스를 사용
claude --continue --fork-session
위 명령어는 conversation history 를 유지하면서 새로운 sessionID 를 생성함. 원래의 session 에는 변화가 없음.
여러 terminal 에서 같은 session 을 사용할 경우 : 모든 terminal 이 같은 session 파일에 write 를 하게 됨. 충돌은 없지만 conversation 은 뒤섞여질 것. --fork-session 을 사용해서 각 terminal 에서 자신만의 clean session 을 사용할 것을 추천
Claude 의 context window 가 hodling 하고 있는 것들
작업하면서 context 는 채워지고, Claude 는 자동으로 압축을 하는데 conversation 앞부분의 instruction 이 잊혀질 수 있음. Persistent rule 을 CLAUDE.md 에 넣고, /context 를 실행해서 차지하는 공간 확인 가능
Cluade Code 는 한계에 도달할 때까지 context 를 자동으로 관리함. 오래된 tool 결과를 먼저 정리하고, 필요한 경우 conversation 을 요약함. 사용자의 요청, key code snippets 는 유지되지만 오래된 detailed instruction 은 잊혀질 수 있음.
압축에서 유지되어야 하는 것들은 CLAUDE.md 에 “Compact Instructions” section 을 추가하거나 /compact 를 집중해야 하는 것들과 함께 실행시킴. e.g. /compact focus on the API chages
/context 를 실행해서 현재 사용되는 공간 확인. MCP server 는 매 요청마다 tool 정의를 추가하기 때문에 오직 적은 수의 서버들만이 충분한 context 를 실행할 수 있음. /mcp 를 실행해서 서버마다 cost 가 얼마나 드는지 확인.
압축과는 별개로 어떤 것들이 context 에 들어갈지를 다른 기능을 사용해서 제어할 수 있음.
disable-model-invocation: true 를 사용해서 필요할 때까지 context 에서 제외시킬 수 있음Claude 는 두 가지 safety 매커니즘이 있음
모든 파일 수정은 reversible. Claude 가 어떤 파일을 수정하기 전에 현재 내용을 snapshot 을 찍음. 뭔가 잘못되면 Esc 를 두 번 눌러 이전 상태로 돌아가게 하거나 Claude 에게 undo 하라고 할 수 있음
Checkpoint 는 git 과는 별개로 session 에 local 함. 파일 변경에 대해서만 커버함. Remote system (database, API, 배포) 에 대한 변경은 checkpoint 될 수 없기 때문에 Claude 는 외부 side effect 를 일으키는 명령을 실행할 때 사용자에게 먼저 물어봄
Shift+Tab 을 눌러 권한 모드를 switching 할 수 있음
특정 command는 .claude/settings.json 에 넣어서 Claude 가 매번 물어보지 않게 할 수 있음.
Claude Code 는 어떻게 사용해야 하는지를 알려줄 수 있음 e.g. “hook 를 어떻게 설정해?” / “CLAUDE.md 를 구성하는 가장 좋은 방법이 뭐야”
내장된 command
/init : 프로젝트 내 CLAUDE.md 를 생성하는데 도움을 줌/agents : custom subagent 를 구성하는데 도움을 줌/doctor : 설치된 것을 기반으로 흔한 issue 를 진단해줌Conversational 하기 때문에 완벽한 prompt 는 필요하지 않고, 원하는 것으로 시작해서 정제하는 방향으로
> Fix the login bug
[Claude investigates, tries something]
> That's not quite right. The issue is in the session handling.
[Claude adjusts approach]
어떤 시점이든 Claude 를 interrupt 할 수 있음. 올바르지 않은 길로 가고 있으면 수정된 내용을 입력하고 엔터 입력. Claude 는 현재하고 있는 작업을 멈추고 input 을 바탕으로 접근 방법을 수정할 것. 완료되기까지 기다리거나 처음부터 실행할 필요가 없다!
초기 prompt 가 정확할수록 수정해야 하는 횟수는 적어짐. 특정 파일을 명시하고, 제약사항을 추가하고, 예시 패턴을 알려줘라
> The checkout flow is broken for users with expired cards.
> Check src/payments/ for the issue, especially token refresh.
> Write a failing test first, then fix it.
“fix the login bug” 같은 모호한 prompt 대신 특정 포인트를 집는 prompt 가 좋음
Claude 는 자신의 작업을 확인할 수 있을 때 성능이 좋음. Test case, 예상되는 UI 스크린샷, 예상되는 output 을 포함시키는 것이 좋음
> Implement validateEmail. Test cases: 'user@example.com' → true,
> 'invalid' → false, 'user@.com' → false. Run the tests after.
복잡한 문제의 경우 coding 과 research 를 분리하기. Plan mode 를 사용해서 codebase 를 먼저 분석.
> Read src/auth/ and understand how we handle sessions.
> Then create a plan for adding OAuth support.
Plan 을 검토하고 conversation 을 통해 정제하고 Claude 가 구현하게 하기. Plan 을 껴서 plan-implement 두 단계로 만들면 바로 code 를 만드는 것보다 좋은 결과를 불러옴
Context, direction 을 주고 Claude 가 detail 을 추론하도록. 즉 구체적인 명령어를 명시하거나 할 필요는 없다는 뜻
> The checkout flow is broken for users with expired cards.
> The relevant code is in src/payments/. Can you investigate and fix it?
Claude Code 는 code 에 대한 추론을 하는 model + 내장된 tool (for file operation, search, execution, web access). 내장된 tool 은 대부분의 코딩 작업을 커버함.
Extension layer : Claude 가 아는 것을 customize, 외부 service 에 연결, workflow 를 자동화하는 기능
Extensions 는 agentic loop 의 다른 부분에 plug 됨
Skills : 가장 유연한 extension. Skill 은 지식, workflow, instruction 을 포함한 markdown 파일. Skill 은 /deploy 와 같은 command 로 실행할 수 있고, Claude 가 판단했을 때 관련있는 경우 자동으로 load 함. 현재 conversation 이나 subagent 를 통한 고립된 context 에서 skill 이 실행될 수 있음
Features 는 Claude 가 모든 session 에서 보는 always-on context 부터 Claude 나 사용자가 직접 깨우는 on-demand, 특정 event 에서 background 에서 돌아가는 것까지 다양함
| Feature | 역할 | 언제 사용하는지 | 예시 |
|---|---|---|---|
| CLAUDE.md | 모든 conversation 에서 load 되는 persistent context | Project conventions, “always do X” rules | “Use pnpm, not npm. Run tests before commiting.” |
| Skill | Claude 가 사용할 수 있는 Instructions, knowledge, workflows | Reusable content, reference docs, repeatable tasks | “/review” 는 코드의 review checklist 를 확인함 |
| Subagent | 요약된 결과를 리턴하는 고립된 execution context | Context isolation, parallel tasks, specialized workers | 많은 파일을 읽지만 핵심 결과물만 리턴하는 research 작업 |
| Agent teams | 여러 독립된 Claude Code session 이 협동함 | Parallel research, new feature development, debugging with competing hypotheses | Reviewer 를 spawn 해서 security, performance, test 를 동시에 확인할 때 |
| MCP | 외부 service 에 연결할 때 | 외부 data/actions | Database query, Slack 에 post, browser control |
| Hook | 특정 이벤트일 때 실행되는 script | Predictable automation, LLM 개입 필요 없을 때 | 모든 파일 수정마다 ESLint 실행 |
Plugin 은 packaging layer. Plugin 은 skill, subagent, MCP server 를 하나의 설치 가능한 unit 으로 묶음. Plugin skill 은 namespaced (e.g. /my-plugin:review) 되기 때문에 여러 plugin 이 동시에 존재할 수 있음. Plugin 을 사용해서 같은 setup 을 여러 repo 에서 재사용하거나 marketplace 를 통해 다른 곳에 distribute 할 수 있음.
Skill, subagent 는 다른 문제를 해결함
| Aspect | Skill | Subagent |
|---|---|---|
| 무엇인지 | Reusable instructions, knowledge, or workflows | 자신만의 context 로 실행될 수 있는 고립된 worker |
| 장점 | Context 간에 content 를 공유함 | Context isolation. 작업은 별개로 일어나고 요약만이 return 됨 |
| Best for | Reference material, invocable workflows | 여러 파일을 읽거나, 병행으로 수행해야 하는 작업 |
Skill : Reference / action.
* Reference skills : session 동안 Claude 에 지식 부여. e.g. API style guid
* Action skills : Claude 가 특정 작업을 하도록 함 e.g. 배포 workflow 를 실행하는 /deploy
Subagent : Context 가 full 에 가까워지고 있을 때나 context isolation 이 필요한 경우. Subagent 는 엄청 많은 수의 파일을 읽거나 많은 검색을 수행할 수 있고, main conversation 은 오직 요약만 받을 수 있음. Subagent 는 main context 를 소모하지 않기 때문에 중간 단계의 작업이 visible 할 필요가 없을 때 유용함. Custom subagent 는 자신만의 instruction 을 가질 수 있고 skill 을 미리 load 할 수 있음
Skill + Subagent combine 가능. Subagent 는 특정 skill 을 preload 할 수 있고 skill 은 context: fork 를 사용해서 고립된 context 에서 실행될 수 있음
모두 instruction 을 포함하고 있지만 다르게 load 되고 다른 목적을 갖고 있음
| Aspect | CLAUDE.md | Skill |
|---|---|---|
| Loads | 매 session, 자동 | On demand |
| 파일 포함 가능 | O, @path import 를 통해 |
O, @path import 를 통해 |
| workflow trigger 가능 | X | O, /<naame> 을 통해 |
| Best for | “Always do X” rules | Reference material, invocable workflows |
/<name> 으로 실행시킬 수 있는 workflow 같은 reference material 가 필요한 경우Rule of thumb : CLAUDE.md 는 500 줄 이하로 유지. 만약 증가하는 경우 reference content 를 skill 로 이동
둘 다 작업을 병행화시키지만 구조적으로 다름
| Aspect | Subagent | Agent team |
|---|---|---|
| Context | 자신만의 context window 를 갖고 있음. 호출자에게 결과를 반환 | 자신만의 context window 있으며 완전히 독립적임 |
| Communication | 결과를 main agent 에 report | Teammates 는 서로에게 직접적으로 메세지 함 |
| Coordination | Main agent 가 모든 작업을 관리함 | 공유되는 task |
| Best for | 결과만이 중요한 작업 | 협력과 토론이 필요한 복잡한 작업 |
| Token cost | 낮음: 결과가 main context 에 요약되어서 전해짐 | 높음: 각 teammate 가 독립적인 Claude instance |
Transition point : parallel subagent 를 실행하고 있는데 context limit 에 도달했을때 / subagent 가 서로와 소통해야 하는 경우 agent team 을 사용하는 것을 고려
MCP 는 Claude 를 external service 에 연결하고 Skill 은 Claude 가 아는 것을 확장시킴 (외부 service를 어떻게 효율적으로 사용해야하는지 포함)
| Aspect | MCP | Skill |
|---|---|---|
| What it is | 외부 서비스에 연결하기 위한 Protocol | 지식, workflow, reference material |
| Examples | Slack integration, database queries, browser control | Code review checklist, deploy workflow, API style guide |
/<name> 으로 실행할 수 있게 해줌. Skill 은 팀의 database schema, query pattterns 를 포함할 수 있음e.g. MCP 서버는 Claude 를 database 에 연결함. Skill 은 Claude 에게 data model, common query patterns, 어떤 tables 을 사용해야 하는지를 알려줌
Feature 는 여러 level 에서 정의될 수 있음 : user-wide, per-project, via plugin, managed policies. Subdirectories 에서 CLAUDE.md 파일을 nesting 할 수 있고, 모노레포에서 특정 package 에 skill 을 위치시킬 수 있음. 여러 레벨에서 같은 feature 가 등장할 경우에는 아래와 같이 동작함
각 extension 은 다른 문제를 해결함
실제 환경에서는 workflow 에 따라 이들을 섞어서 씀.
e.g. CLAUDE.md 에는 project convention, skill 은 deployment workflow, MCP 를 사용해서 database 에 연결, hook 을 사용해서 모든 수정마다 linting.
| Pattern | How it works | Example |
|---|---|---|
| Skill + MCP | MCP 가 연결을 제공하고, skill 은 Claude 가 어떻게 그걸 잘 사용할지를 제공 | MCP 는 database 에 연결하고, skill 은 schema 와 query pattern 은 문서화함 |
| Skill + Subagent | Skill이 parallel 작업을 위한 subagent 를 spawn | /review skill 은 고립된 context 에서 수행되는 보안, 성능, 스타일 subagent 를 실행함 |
| CLAUDE.md + skills | CLAUDE.md 는 always-on rule 를 담고 있고, skill 은 on deamnd 에 의해 로딩되는 reference material 을 갖고 있음 | CLAUDE.md 는 “우리의 API convention을 따라라” 하고 skill 은 전체 전체 api style guide 에 대한 참조를 갖고 있음 |
| Hook + MCP | Hook 는 MCP 를 통해 외부 action 을 실행함 | Post-edit hook 는 Claude 가 중요한 파일을 수정했을 때 slack 노티를 보냄 |
모든 feature 는 Claude 의 context 를 소모함. 너무 많으면 context 를 채우고 Claude 를 덜 효율적으로 만드는 noise 를 만들 수도 있음. Skill 이 올바르게 실행되지 않을 수도 있고, Claude 가 conversation 을 제대로 추적하지 못할 수도 있음.
각 feature 는 다른 loading 전략과 context cost 를 갖고 있음
| Feature | 언제 load 되는지 | 무엇을 load 하는지 | Context cost |
|---|---|---|---|
| CLAUDE.md | Session 시작 시 | Full content | 모든 request 마다 |
| Skills | Session 시작 + 사용될 때 | 시작할 때 descriptions, 사용될 때 전체 content | 낮음 |
| MCP servers | Session 시작 | 모든 tool 정의와 schema | 모든 request 마다 |
| Subagents | spawn 될 때 | fresh context with specified skills | 메인 세션과는 분리됨 |
| Hooks | On trigger | X | 추가 context 를 리턴하지 않는한 0 |
기본적으로 skill descriptions 는 세션 시작시 load 돼서 Claude 로 하여금 언제 사용할 지를 결정할 수 있게 해줌. Skill 의 frontmatter 에 disable-model-invocation: true 로 설정하면 사용자가 직접 호출하지 않는 이상 Claude 에게 노출시키지 않음. 이는 직접 호출해야 하는 skill 이 있는 경우 context cost 를 줄여줌
각 feature 는 session 의 다른 point 에서 load 됨.
/<name> 으로 실행하는 invocable workflow. 어떤 것은 내장되어 있고, 직접 만들 수 있음. Claude 는 자기가 알아서 실행할 수도 있고 사용자가 직접 실행할 수도 있음
dsiable-model-invocation: true) 인 경우 invoke 하기 전에는 아무것도 load 되지 않음/<name> 으로 skill 을 호출하거나 Claude 가 자동으로 load 할 때 전체 content 가 conversation 에 load 됨/<name> 으로 호출하기./mcp 명령어로 연결을 확인할 수 있음