본문으로 건너뛰기

Claude Code 사용법


claude-code

Mode와 권장 워크 플로우

Mode

모드 이름터미널 표시 예시주요 특징
Normal Mode (기본 모드)별도 표시 없음 또는 기본 상태로 표시모든 파일 쓰기, 위험 명령 실행 등은 매번 사용자 승인 필요, 기본으로 가장 안전한 모드
Auto-Accept Mode (자동 승인 모드)⏵⏵ accept edits on 등이 하단에 보라색으로 표시파일 읽기·쓰기, 간단한 수정은 자동 승인, 쉘 명령이나 위험 작업은 여전히 확인을 요구하는 빠른 작업 모드
Plan Mode (플랜 모드, 읽기 전용)⏸ plan mode on 표시코드베이스는 자유롭게 읽고 검색하지만 파일 수정·생성·위험 명령은 모두 차단되는 읽기 전용 분석·계획 전용 모드
  • 각 모드는 Shift + tab 으로 전환

권장 워크 플로우 (중요)

  1. Explore
    • 코드베이스를 탐색하고 현재 구조를 이해합니다.
    • (Plan Mode) "read /src/auth and understand how sessions work"
  2. Plan
    • 변경 계획을 수립하고 접근 방식을 결정합니다
    • (Plan Mode) "I want to add Google OAuth. What files need to change? Create a plan."
  3. Implement
    • Plan Mode를 빠져나와 실제 구현을 시작합니다
    • (Normal Mode) "implement the OAuth flow. write tests. fix failures."
  4. Commit (나는 개인적으로 이건 수동으로 함)
    • 검증 후 커밋하고 PR을 생성합니다
    • (Normal Mode) "commit with a descriptive message and open a PR"

내가 이전에 사용하지 않았던 기능 -> /rewind 기존에 작성되었던 코드가 사라질까봐 커밋을 하고 시도해보고 아니면 커밋을 없애는 식으로 했었는데 앞으로는 과감하게 시도하고 /rewind를 사용하자.


Claude.md

Claude.md 란?

  • 프로젝트의 규칙, 컨벤션, 워크플로우를 정의하는 파일이다.
  • Claude Code가 매 세션 시작 시 자동으로 읽어 컨텍스트로 사용한다.
  • /init 명령으로 프로젝트를 분석하여 초안을 자동 생성할 수 있다.
위치적용 범위Git 공유
~/.claude/CLAUDE.md모든 프로젝트 전역
./CLAUDE.md프로젝트 루트O (팀 공유)
./CLAUDE.local.md프로젝트 개인 설정X (.gitignore)
./subdir/CLAUDE.md해당 디렉토리 작업 시O

작성 팁

결국 간결함이 핵심. 안적어도 AI가 알아서 할거같은 정보는 작성하지 않는다. -> 너무 길면 오히려 성능 저하

✓ 포함해야 할 것✕ 제외해야 할 것
Claude가 추측할 수 없는 Bash 명령어코드에서 이미 읽을 수 있는 것
기본값과 다른 코드 스타일 규칙Claude가 이미 아는 언어 표준 규칙
테스트 실행 방법 및 선호 테스트 러너상세 API 문서 (대신 링크 제공)
브랜치 명명, PR 컨벤션 등 팀 에티켓자주 바뀌는 정보
프로젝트 특유의 아키텍처 결정 사항"클린 코드 작성" 같은 자명한 지침
개발 환경 특이사항 (필수 환경 변수)파일별 코드베이스 설명
흔한 gotcha 및 비직관적 동작장황한 설명이나 튜토리얼

예시

# 코드 스타일
- ES 모듈(import/export) 사용, CommonJS(require) 금지
- 가능하면 구조 분해 할당 사용
- TypeScript strict 모드 사용

# 워크플로우
- 타입 체크: npm run typecheck (코드 변경 후 반드시 실행)
- 전체 테스트 스위트 말고 단일 테스트 실행: npm test -- path/to/test
- 중요: 항상 구현 전에 테스트 먼저 작성

# Git 컨벤션
- 브랜치: feature/[작업명], fix/[이슈번호]
- 커밋: 컨벤셔널 커밋 (feat:, fix:, docs:, refactor:)
- main 브랜치에 강제 푸시 금지

# 주의사항
- auth 미들웨어는 passport가 req.user를 설정해야 동작
- DB 마이그레이션은 반드시 npm run migrate로 실행

Context

관리 전략

Claude.md를 불필요하게 길게 작성하는 것이 성능을 저하시키는 것 처럼. Context가 너무 길어지면(하나의 대화 세션이 너무 길어지는) 성능이 저하된다. -> LLM은 Context(대화 세션)이 너무 길어지면 성능이 저하된다.

LLM 성능은 컨텍스트가 차면서 저하된다. 컨텍스트 윈도우는 당신이 관리해야 할 가장 중요한 리소스다. (Anthropic 공식 Best Practices)

명령어기능사용 시점
/clear컨텍스트 완전 초기화새 작업 전, 성능 저하 시
/compact <hint>지능형 압축/compact Focus on API changes
/context토큰 사용량 시각화현재 상태 확인
/rewind체크포인트 복원잘못된 방향 되돌리기
claude --continue최근 세션 이어서 시작중단된 작업 재개
claude --resume세션 목록에서 선택특정 세션 복귀
/rename세션에 이름 부여나중에 찾기 쉽게

cf) HANDOFF.md

Handoff 패턴

  • 아직 해당 작업이 마무리 되지 않았는데 성능 개선을 위한 Context를 초기화하고 싶을 경우 필요한 정보만 넘기는 HANDOFF.md를 작성해서 다음 세션에 필요 정보를 이어줄 수 있다.
  • 프롬프트: "Put the rest of the plan in HANDOFF.md. Explain what you tried, what worked, what didn't."

프롬프팅 기법

검증 수단, 레퍼런스 제공

(Anthropic 공식 문서) 테스트, 스크린샷, expected output 없이 구현을 요청하지 마세요. (이미지는 터미널에 드래그앤 드롭)

전략✕ 나쁜 예✓ 좋은 예
검증 기준 제공이메일 검증 함수 구현해줘validateEmail 작성. 테스트: user@example.com=true, invalid=false. 구현 후 테스트 실행
UI 시각 검증대시보드 보기 좋게 만들어[스크린샷 첨부] 이 디자인 구현. 결과 스크린샷 찍어서 비교하고 차이점 수정해
근본 원인 해결빌드가 실패해빌드 실패 에러: [에러 붙여넣기]. 수정하고 빌드 성공 확인. 증상 억제 말고 근본 원인 수정

인터뷰 기법

복잡한 기능을 구현하기 전에 Claude에게 인터뷰를 요청하면, 놓치기 쉬운 엣지 케이스와 트레이드오프를 사전에 발견할 수 있습니다.

"[간략한 설명]을 만들고 싶어.
자세히 인터뷰해줘.
기술 구현 방식, UI/UX,
엣지 케이스, 트레이드오프에 대해 질문해줘.
모든 내용을 다룰 때까지 계속 인터뷰하고,
완성된 스펙을 SPEC.md에 작성해줘."

구조화된 프롬프팅

역할 정의 + 컨텍스트 + 제약조건 + 예상 출력 + 검증 기준

"당신은 시니어 백엔드 개발자입니다.
컨텍스트: PostgreSQL 16, Node.js 22, 기존 users 테이블 존재
요구사항: 사용자 인증 미들웨어 작성
제약조건: JWT 사용, refresh token 포함, rate limiting 필수
출력: 코드 + 테스트 + 보안 고려사항
검증 기준: SQL injection 방어, 401/403 적절한 분리"

@ 참조 활용

필요한 파일만 명시적으로 지정하여 Context 낭비를 줄인다.

@src/auth/        # 디렉토리 참조
@package.json # 특정 파일 참조
@docs/api.md # 문서 참조

파이프 데이터 주입

# 에러 로그 주입
cat error.log | claude

# 특정 출력 분석
npm run build 2>&1 | claude

# diff 리뷰
git diff | claude "이 변경사항을 리뷰해줘"

확장 생태계

확장 유형설명로드 방식최적 용도
Skills마크다운 기반 지식 + 실행 가능 명령슬래시 명령 또는 자동 로드프로젝트별 워크플로우, 코딩 패턴
Pluginsnpm 패키지로 배포되는 확장설치 후 자동 활성화LSP 통합, 메모리, 브레인스토밍
MCPModel Context Protocol 서버설정 파일에 등록외부 도구/API 연동

Skills

정의 마크다운 파일 위치

  • 프로젝트 단위: ./.claude/skills/my-skill/SKILL.md
  • 유저 단위: ~/.claude/skills/my-skill/SKILL.md

예시

# Skills 예시: .claude/skills/security-review.md
---
name: security-review
description: 종합 보안 리뷰 실행
---

## 단계
1. 하드코딩된 시크릿 스캔: `grep -r "API_KEY\|SECRET\|PASSWORD"`
2. SQL 인젝션 패턴 확인
3. 모든 사용자 입력값 살균 여부 검증
4. 인증 미들웨어 커버리지 확인
5. 결과를 SECURITY_REPORT.md에 출력

Plugin

설치

  • /plugin 명령어로 원하는 플러그인 찾아서 설치/관리 가능

MCP

설치

관리

  • /mcp 명령어로 관리 가능

SubAgent

경고

skillssubagent의 차이

  • skills = 메인 에이전트의 컨텍스트에 특정 기능을하는 skill을 추가합니다. (Main Context 내부에서)
  • subagent = Main Context를 유지하고 별도의 Context에서 병렬적으로 특정 기능을 수행하기위해 사용됩니다. (별도의 Context에서 작업)

정의 방법

1. 대화형으로 생성

  • /agents

2. 직접 md 파일정의

예시

# .claude/agents/security-reviewer.md
---
name: security-reviewer
description: 코드 변경 후 보안 취약점 검토. 코드 변경 시 자동 실행.
tools: Read, Grep, Glob, Bash
model: opus
---

당신은 시니어 보안 엔지니어입니다. 다음 항목을 코드 리뷰하세요:
- 인젝션 취약점 (SQL, XSS, 커맨드 인젝션)
- 인증/인가 결함
- 코드 내 시크릿 또는 자격증명 노출
- 안전하지 않은 데이터 처리

특정 라인 번호와 수정 제안을 함께 제공하세요.
프론트매터 필드설명
modelhaiku / sonnet / opus — 작업 복잡도에 맞게
tools허용 툴 제한으로 안전성 확보
isolation: worktree격리된 git 워크트리에서 실행
memory: project세션 간 지식 지속
background: true항상 백그라운드 실행

기본 내장 SubAgent

에이전트모델역할도구 접근
ExploreHaiku (빠름)코드베이스 탐색 전용Read-only
Plan상속Plan Mode에서 컨텍스트 수집Read-only
General-purpose상속복합 작업 수행Full access

병렬 개발

여러 터미널 탭에서 동시에 Claude Code를 실행하여 병렬적으로 작업을 수행하게한다.

충돌을 방지하기위해 주로 브랜치를 나눠서 실행시킨다.

방법 예시

# 터미널 탭 3개에서 동시에 독립 기능 개발
Tab 1: claude --worktree feature-auth
Tab 2: claude --worktree feature-db
Tab 3: claude --worktree feature-ui

# 각 에이전트가 독립 브랜치에서 충돌 없이 작업
# 완료 후 PR 생성하여 병합

Agent Teams

경고

Agent Teams는 실험적 기능으로 기본 비활성화입니다. 세션 재개, 태스크 조율, 종료 동작에 알려진 제한이 있습니다. 같은 파일 편집, 순차적 작업, 의존성이 많은 작업에는 단일 세션이나 서브에이전트가 더 효과적입니다.

-> 나도 개인적으로 아직 이 기능을 신뢰하지 않아서 사용하지 않는다. 나중에 실험적 기능에서 안정적인 기능으로 업데이트가 되면 적극 사용해볼 예정

정의

Agent Teams는 여러 Claude Code 인스턴스가 팀으로 협업하는 기능입니다. Lead agent가 작업을 조율하고, 팀원들은 독립적으로 작업하며 서로 직접 소통합니다. 서브에이전트와 달리 팀원 간 직접 커뮤니케이션이 가능합니다.

SubAgent vs Agent Teams

비교 항목서브에이전트Agent Teams
커뮤니케이션메인에게만 보고팀원 간 직접 소통
컨텍스트메인 세션 내부각자 독립 컨텍스트 윈도우
조율메인 에이전트가 제어공유 태스크 리스트로 자율 조율
토큰 사용적음많음 (병렬 세션)
최적 용도빠른 포커스 작업리서치, 크로스 레이어, 경쟁 가설

활성 방법

# Agent Teams 활성화
# ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}

# 팀 생성 예시
"Create an agent team to explore this from different angles:
one teammate on UX, one on technical architecture,
one playing devil's advocate."

# 디스플레이 모드 설정
{
"teammateMode": "in-process" // 또는 "tmux"
}

팀 제어 단축키

  • Shift+Down — 팀원 간 순환 이동
  • Enter — 팀원 세션 보기
  • Escape — 팀원 현재 턴 중단
  • Ctrl+T — 공유 태스크 리스트 토글

Hooks

개념

Hooks는 Claude Code의 라이프사이클 이벤트에서 자동 실행되는 셸 명령입니다. CLAUDE.md 규칙은 확률적(LLM이 따를 수도, 안 따를 수도)이지만, Hooks는 결정론적으로 강제합니다. 린트, 포맷, 보안 스캔, 알림 등을 자동화하세요.

즉, CLAUDE.md는 LLM이 판단하여 특정 조건을 따를수도 따르지 않을 수도 있지만 Hooks는 강제한다. (쿠버네티스 스케줄링에서의 Extension Points를 떠올려보면 이해가 쉽다)

이벤트 발생 시점

이벤트트리거 시점활용 예시
PreToolUse도구 실행 전보호 파일 편집 차단, 위험 명령 필터링
PostToolUse도구 실행 후코드 자동 포맷 (Prettier), 린트 실행
NotificationClaude가 입력 대기macOS/Linux 네이티브 알림 전송
SessionStart세션 시작/재개컴팩션 후 컨텍스트 재주입
StopClaude 응답 완료자동 커밋, 품질 체크
ConfigChange설정 변경감사 로그 기록
UserPromptSubmit사용자 프롬프트 제출프롬프트 전처리

Handler 유형

유형설명
command셸 명령 실행 (알림, 포맷, 차단)
promptClaude 모델에 판단 위임 (Yes/No)
agent서브에이전트가 파일 읽기/명령 실행 후 판단

Exit Code

코드의미
0성공 — 계속 진행
2차단 — 도구 실행 중단
기타오류 — 경고 표시 후 계속

생성 방법

  • /hooks 명령어 입력 후 이후에 나오는 절차에 따라 정의
  • Hooks 또한 프로젝트단위(./.claude/settings.json) 혹은 유저단위(~/.claude/settings.json)으로 설정할 수 있다.

예시

아래의 예시 스크립트 혹은 명령어를 Hooks로 특정 시점에 실행하는 것을 보장할 수 있다.

# 실전 예시: 보호 파일 편집 차단
# protect-files.sh

#!/bin/bash
INPUT=$(cat)
FILE=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
PROTECTED=("package-lock.json" ".env" "docker-compose.yml")
for p in "${PROTECTED[@]}"; do
if [[ "$FILE" == *"$p"* ]]; then
echo "BLOCKED: $FILE is protected"
exit 2 # exit 2 = 차단
fi
done
exit 0
# 실전 예시: 편집 후 자동 포맷
# PostToolUse + matcher: "Edit|Write"

npx prettier --write "$TOOL_INPUT_FILE_PATH"
# 실전 예시: 알림 (macOS)
# Notification 이벤트

osascript -e 'display notification "Claude needs input" with title "Claude Code"'

필수 단축키 & 명령어

단축키 / 명령어설명
Esc작업 중단 (컨텍스트 유지)
Esc × 2리와인드 메뉴 열기
Shift+Tab모드 순환 (Normal → Auto-accept → Plan)
Ctrl+G플랜을 외부 에디터에서 열기
Ctrl+B현재 작업 백그라운드로 전환
Ctrl+TAgent Teams 태스크 리스트 토글
Shift+DownAgent Teams 팀원 간 순환
?모든 단축키 표시
/clear컨텍스트 완전 초기화
/compact지능형 컨텍스트 압축
/context토큰 사용량 시각화
/rewind체크포인트 복원
/initCLAUDE.md 자동 생성
/agents서브에이전트 관리
/permissions명령어 화이트리스트 설정
/hooks훅 설정
/config설정 UI 열기
/usage레이트 리밋 확인
/stats사용 통계 (GitHub 스타일 그래프)
/chrome네이티브 브라우저 통합 토글
--continue최근 세션 이어서 시작
--resume세션 목록에서 선택 복귀
--dangerously-skip-permissions권한 확인 없이 자유 실행 (컨테이너 내부 권장)

레퍼런스

  • https://claudeguide-dv5ktqnq.manus.space/
  • 위 문서에서 최신 업데이트 내용이 주기적으로 정리되고 있으며, 위 글에서 작성한 기능 외에도 여러 패턴들이 소개되고 있으므로 필요할 때 마다 참고