최근 Claude 스터디에서 다른 회사에서는 AI를 어떻게 사용하고 있는지 이야기를 나누고 있는데요. 이 과정에서 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 이번 포스팅은 동작 원리 보다 어떻게 잘 사용하는지 에 대한 방법을 다루는 글이기 때문에 SKILL 에 대한 내용을 주로 다룹니다. 🚀
1
$ npx @anthropic-ai/claude-code
1. Claude 기본 사용법
코딩 어시스턴트는 LLM 자체가 파일을 읽는 게 아니라, Claude Code가 파일을 읽어서 텍스트로 LLM에 전달하는 구조입니다.
1-1. 모델과 thinking effort
/model 명령을 치면 모델과 thinking effort를 한 화면에서 같이 조절할 수 있습니다. 모델은 번호로 선택하고, thinking effort 는 방향키로 조절한 뒤 Enter로 확정합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
──────────────────────────────────────────────────────────────────────────────────────
❯ /model
──────────────────────────────────────────────────────────────────────────────────────
/model Set the AI model for Claude Code (currently Opus 4.6)
──────────────────────────────────────────────────────────────────────────────────────
[Select model]
Switch between Claude models. Applies to this session and future Claude Code sessions.
For other/previous model names, specify with --model.
❯ 1. Default (recommended) ✔ Opus 4.6 · Most capable for complex work
2. Sonnet Sonnet 4.6 · Best for everyday tasks
3. Haiku Haiku 4.5 · Fastest for quick answers
▌▌▌ Medium effort (default) ← → to adjust
extended thinking 토큰을 더 많이 쓰도록 트리거하는 방식입니다. 키워드별로 사용하는 thinking 예산이 다릅니다.
think: 낮음think hard: 중간think harder: 높음ultrathink: 최대
특정 모델을 바로 지정하고 싶다면 실행 시 플래그로 넘길 수도, .settings.json에 추가할 수도 있습니다. 다양한 방법이 많은데, 이에 대한 방법은 해당 문서를 참조해주세요.
1
$ claude --model claude-sonnet-4-6
1-2. 주요 모드
Plan mode 는 넓은 범위의 코드를 살펴보거나 여러 단계 작업이 필요할 때 동작하며, Shift + Tab 으로 auto-accept와 번갈아 사용할 수 있습니다. Thinking mode 는 까다로운 버그를 해결할 때 사용하며 기본은 비활성화 상태입니다. 이에 대한 상세한 설명은 해당 문서를 참조해주세요.
1
2
⏵⏵ accept edits on (shift+tab to cycle)
⏸ plan mode on (shift+tab to cycle)
Shift + Tab을 누를 때마다 auto-accept와 plan mode 두 가지를 번갈아 전환할 수 있습니다. auto-accept 는 묻지 않고 바로 수정하는 상태이고, plan mode 는 실제로 파일을 건드리지 않고 “이런 순서로 작업하겠습니다” 는 계획만 먼저 보여주는 모드입니다.
If you are in Normal Mode, Shift+Tab first switches into Auto-Accept Mode, indicated by ⏵⏵ accept edits on at the bottom of the terminal. A subsequent Shift+Tab will switch into Plan Mode, indicated by ⏸ plan mode on.
1-2. 컨텍스트 관리
1-2-1. clear
맥락을 많이 넣을수록 성능이 떨어지므로 /clear 로 주기적으로 정리합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
╭─── Claude Code v2.1.71 ─────────────────────────────────────────────╮
│ │ Tips for getting started │
│ Welcome back leo! │ Run /init to create a CLAUDE.md file │
│ │ with instructions for Claude │
│ │ ────────────────────────────────────────│
│ │ Recent activity │
│ ▐▛███▜▌ │ No recent activity │
│ ▝▜█████▛▘ │ │
│ ▘▘ ▝▝ │ │
│ Opus 4.6 · Claude Max │ │
│ ~/jun/jun-logs │ │
╰─────────────────────────────────────────────────────────────────────╯
❯ /clea
───────────────────────────────────────────────────────────────────────
───────────────────────────────────────────────────────────────────────
/compact Clear conversation history but keep a summary in context. Optional:
/compact [instructions for summarization]
1-2-2. compact
/compact 를 사용하면 지금까지 대화를 요약해 컨텍스트 크기를 줄일 수 있습니다. 이는 메모리 내 요약이므로, 대화 내용을 다음 세션에서도 참조하고 싶다면 Claude에게 직접 파일로 저장하도록 요청해야 합니다. 매 번 문서를 남기려면 PostToolUse나 PreCompact 훅에서 파일로 저장하는 명령을 넣으면 됩니다. 다만 이 방식은 Claude에게 지시를 주입하는 거라 Claude가 항상 따른다는 보장은 없습니다. 반드시 문서를 남겨야 한다면 커스텀 커맨드로 만드는 게 낫습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"hooks": {
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "echo '대화 내용을 요약한 뒤 docs/compact-summary.md 파일에 저장해줘.'"
}
]
}
]
}
}
.claude/commands/ 내부에 아래와 같이 커스텀 명령어를 만들 수 있습니다.
1
2
<!-- mycompact.md -->
현재까지의 대화 내용을 docs/compact-$(date +%Y%m%d-%H%M%S).md 파일로 저장한 뒤 /compact를 실행해줘.
1-2-3. rewind
추가로 작업을 하고 있을 때, ESC 2번을 누르면 어떤 맥락부터 다시 시작할지 지정 가능합니다.
1
2
3
4
5
6
7
8
───────────────────────────────────────────────────────────────────────────────
[Rewind]
Restore the code and/or conversation to the point before
Claude 코드에 대해 설명해 줘
Claude 코드와 GPT의 차이가 뭐야?
No code changes
❯ (current)
──────────────────────────────────────────────────────────────────────────────
2. MCP
Claude의 경우 MCP(Model Context Protocol)를 사용해 AI를 외부 데이터 시스템에 연결할 수도 있는데요. LLM은 학습 데이터만으로 동작하기 때문에 실제 작업 환경의 맥락이 부족하다는 한계가 있었는데, 다양한 데이터 소스를 하나의 프로토콜로 통합합니다. 덕분에 개발 도구, 데이터 분석, AI 챗봇 등 다양한 분야에서 AI의 활용도를 높일 수 있습니다.
Claude Code 전역 설정 기준으로 아래 경로에 파일을 만듭니다.
1
$ mkdir -p ~/.claude && vi ~/.claude/mcp.json
.mcp.json 을 프로젝트 루트에 두면 특정 프로젝트에서 Jira/Confluence, Slack과 같은 mcp를 사용할 수 있습니다. mcp.json 에 토큰이 평문으로 들어가므로, 프로젝트 내 사용하는 경우 반드시 .gitignore에 추가합니다. 단, Slack의 경우 민감 정보 가 있을 수 있기 때문에 조심해서 사용해야 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"ATLASSIAN_URL": "ATLASSIAN_URL",
"ATLASSIAN_EMAIL": "${ATLASSIAN_EMAIL}",
"ATLASSIAN_TOKEN": "${ATLASSIAN_TOKEN}"
}
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
"SLACK_TEAM_ID": "${TEAM_ID}"
}
}
}
}
3. Hooks
lint, test, 접근 제한 같이 작업 전후에 매번 실행할 작업을 정의합니다. 설정 위치는 아래 세 곳입니다.
~/.claude/settings.json: 전역 적용.claude/settings.json: 프로젝트 공유.claude/settings.local.json: 개인 설정
사용할 수 있는 이벤트는 PreToolUse, PostToolUse, UserPromptSubmit, PermissionRequest, ClaudeLog Stop, SubagentStop, SessionEnd 등이 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// .env, package-lock.json 수정 차단
"PreToolUse": [{ "matcher": "Edit|Write", ... }]
// 파일 수정 후 prettier 자동 실행
"PostToolUse": [{ "matcher": "Edit|Write|MultiEdit", ... }]
// rm -rf 같은 위험 명령 차단
"PreToolUse": [{ "matcher": "Bash", ... }]
// 프롬프트 제출 전 컨텍스트 주입
"UserPromptSubmit": [{ ... }]
// 작업 완료 후 알림
"Stop": [{ ... }]
4. 서브 에이전트
서브 에이전트는 .claude/agents/ 디렉토리에 마크다운 파일을 만들어서 사용합니다. 예를 들어, .claude/agents/readme-updater.md 같은 서브 에이전트를 만들어두고 역할을 코드 변경사항을 감지해서 README.md를 항상 최신 상태로 유지한다 고 정의해두면, Claude Code가 파일을 수정하는 작업을 할 때마다 이 에이전트가 자동으로 호출돼서 README에 반영합니다.
5. 정리
괜찮은 사용법을 알게 될 때마다 계속해서 업데이트 하도록 하겠습니다.