Essential commands

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

Core Concepts

Claude Code 는 terminal 에서 실행되는 agentic assistant.

The agentic loop

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 로 구동됨.

Models

Claude Code 는 Claude model 을 사용해서 code 와 작업에 대한 추론 (두뇌 역할) 을 할 수 있게 함.

목적마다 model 을 다르게 선택 가능. /model 을 통해 모델을 변경할 수 있음

Tools

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 도 갖고 있음.

Tool 목록

Claude 는 prompt 에 따라, 또 배우는 것에 따라 tool 을 다르게 선택함.

e.g. “fix the failing tests” prompt

  1. test 를 실행해서 실패한 test 확인
  2. error output 읽음
  3. 관련 source file 찾음
  4. 해당 file 을 읽어서 코드를 이해함
  5. file 을 수정해서 이슈 수정
  6. test 를 다시 수행해서 검증

Base-capabilities 확장 : 내장된 tool 은 foundation. 아래의 extension 을 사용

What Claude can access

특정 디렉토리에서 claude 를 실행하면 아래에 대한 접근을 얻음

Work with sessions

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 에 넣을 수 있음.

Work across branches

각 Claude Code conversation 은 현재 directory 에 엮인 session 이고, resume 할 경우 해당 directory 의 세션들만 볼 수 있음.

Claude 는 현재 branch 의 파일들을 봄. Branch 를 switch 할경우 Claude 는 새로운 branch 의 파일을 보지만 conversation history 는 그대로 유지됨. Claude 는 switching 된 이후에도 논의된 것을 기억함.

Session 이 디렉토리에 묶여져 있기 때문에 git worktrees 를 사용해서 parallel Claude session 을 실행할 수 있음.

Resume or fork sessions

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 을 사용할 것을 추천

The context window

Claude 의 context window 가 hodling 하고 있는 것들

작업하면서 context 는 채워지고, Claude 는 자동으로 압축을 하는데 conversation 앞부분의 instruction 이 잊혀질 수 있음. Persistent rule 을 CLAUDE.md 에 넣고, /context 를 실행해서 차지하는 공간 확인 가능

When context fills up

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 가 얼마나 드는지 확인.

Manage context with skills and subagents

압축과는 별개로 어떤 것들이 context 에 들어갈지를 다른 기능을 사용해서 제어할 수 있음.

Stay safe with checkpoints and permissions

Claude 는 두 가지 safety 매커니즘이 있음

Undo changes with checkpoints

모든 파일 수정은 reversible. Claude 가 어떤 파일을 수정하기 전에 현재 내용을 snapshot 을 찍음. 뭔가 잘못되면 Esc 를 두 번 눌러 이전 상태로 돌아가게 하거나 Claude 에게 undo 하라고 할 수 있음

Checkpoint 는 git 과는 별개로 session 에 local 함. 파일 변경에 대해서만 커버함. Remote system (database, API, 배포) 에 대한 변경은 checkpoint 될 수 없기 때문에 Claude 는 외부 side effect 를 일으키는 명령을 실행할 때 사용자에게 먼저 물어봄

Control what Claude can do

Shift+Tab 을 눌러 권한 모드를 switching 할 수 있음

특정 command는 .claude/settings.json 에 넣어서 Claude 가 매번 물어보지 않게 할 수 있음.

Work Effectively with Claude Code

Ask Claude Code for help

Claude Code 는 어떻게 사용해야 하는지를 알려줄 수 있음 e.g. “hook 를 어떻게 설정해?” / “CLAUDE.md 를 구성하는 가장 좋은 방법이 뭐야”

내장된 command

It’s a conversation

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]

Interrupt and steer

어떤 시점이든 Claude 를 interrupt 할 수 있음. 올바르지 않은 길로 가고 있으면 수정된 내용을 입력하고 엔터 입력. Claude 는 현재하고 있는 작업을 멈추고 input 을 바탕으로 접근 방법을 수정할 것. 완료되기까지 기다리거나 처음부터 실행할 필요가 없다!

Be specific upfront

초기 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 가 좋음

Give Claude something to verify against

Claude 는 자신의 작업을 확인할 수 있을 때 성능이 좋음. Test case, 예상되는 UI 스크린샷, 예상되는 output 을 포함시키는 것이 좋음

> Implement validateEmail. Test cases: 'user@example.com' → true,
> 'invalid' → false, 'user@.com' → false. Run the tests after.

Explore before implementing

복잡한 문제의 경우 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 를 만드는 것보다 좋은 결과를 불러옴

Delegate, don’t dictate

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?

Extend Claude Code

Claude Code 는 code 에 대한 추론을 하는 model + 내장된 tool (for file operation, search, execution, web access). 내장된 tool 은 대부분의 코딩 작업을 커버함.

Extension layer : Claude 가 아는 것을 customize, 외부 service 에 연결, workflow 를 자동화하는 기능

Overview

Extensions 는 agentic loop 의 다른 부분에 plug 됨

Skills : 가장 유연한 extension. Skill 은 지식, workflow, instruction 을 포함한 markdown 파일. Skill 은 /deploy 와 같은 command 로 실행할 수 있고, Claude 가 판단했을 때 관련있는 경우 자동으로 load 함. 현재 conversation 이나 subagent 를 통한 고립된 context 에서 skill 이 실행될 수 있음

Match features to your goal

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 할 수 있음.

Compare similar features

Skill vs Subagent

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 에서 실행될 수 있음

CLAUDE.md vs Skill

모두 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

Rule of thumb : CLAUDE.md 는 500 줄 이하로 유지. 만약 증가하는 경우 reference content 를 skill 로 이동

Subagent vs Agent team

둘 다 작업을 병행화시키지만 구조적으로 다름

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 vs Skill

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

e.g. MCP 서버는 Claude 를 database 에 연결함. Skill 은 Claude 에게 data model, common query patterns, 어떤 tables 을 사용해야 하는지를 알려줌

Understand how features layer

Feature 는 여러 level 에서 정의될 수 있음 : user-wide, per-project, via plugin, managed policies. Subdirectories 에서 CLAUDE.md 파일을 nesting 할 수 있고, 모노레포에서 특정 package 에 skill 을 위치시킬 수 있음. 여러 레벨에서 같은 feature 가 등장할 경우에는 아래와 같이 동작함

Combine features

각 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 노티를 보냄

Understand context costs

모든 feature 는 Claude 의 context 를 소모함. 너무 많으면 context 를 채우고 Claude 를 덜 효율적으로 만드는 noise 를 만들 수도 있음. Skill 이 올바르게 실행되지 않을 수도 있고, Claude 가 conversation 을 제대로 추적하지 못할 수도 있음.

Context cost by feature

각 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 를 줄여줌

Understand how features load

각 feature 는 session 의 다른 point 에서 load 됨.