Claude Code 사용법 & 프롬프트 팁

자연어 프롬프트만 쓰던 사람을 위한 전체 기능 가이드 + 좋은 코드를 생성하는 프롬프트 작성법 — 2026-09 기준(changelog 2.1.266)

🆕 2026-09 기준 변경 요약 — 예전 설명에서 바뀐 것

이 가이드를 이전에 읽었다면 아래 다섯 가지를 먼저 갱신하세요. 나머지 골격(@/!/#, /goal, 서브에이전트 기본기)은 그대로 유효합니다.

주제 예전 설명 2026-09 현재
권한 모드 Default / Plan / Auto-Accept 3단 Manual · Accept edits · Plan · Auto · dontAsk · Bypass 6종. 2026-08-14부터 Pro/Max/Team의 시작 모드가 auto(분류기 기반)로 바뀌었다. ↓ 7장
모델 Opus 4.6 + /fast Sonnet 5(1M 컨텍스트) · Opus 5 · Fable 5.1. Fast mode는 Opus 5·4.8 전용. ↓ 2-3
에이전트 운영 세션 안에서 서브에이전트만 claude agents Agent view, 백그라운드 기본, 중첩 spawn, 세션 간 메시징. ↓ 8장
실행 환경 CLI 중심 Chrome GA · Desktop · Remote Control · 샌드박스. ↓ 16·18장
/ultraplan 클라우드 계획 세션 명령 제거됨 — 현행으로 쓰지 말 것. ↓ 15-1
읽는 방법
각 챕터 상단에 가장 자주 쓰는 항목을 먼저 배치했고, ⭐ 표시로 빈도를 나타냈습니다.
  • ⭐⭐⭐ — 매일 쓰는 필수 기능
  • ⭐⭐ — 주 단위로 자주 씀
  • ⭐ — 특정 상황에서 유용

⭐ 가장 자주 쓰는 것 (3개만 익혀도 작업이 달라짐)

처음 시작한다면 이 세 가지만 먼저 익히세요. 가장 효과가 빠릅니다.

Shift+Tab
권한 모드 순환. 구독 플랜에서는 Auto로 시작해서 Manual → Accept edits → Plan → … 로 돕니다. 작업 성격에 맞춰 모드를 바꾸는 것이 가장 큰 차이를 만듭니다.
@파일경로
파일/폴더를 프롬프트에 첨부. @app.py처럼 입력하면 Claude가 그 파일을 읽고 응답합니다. Tab으로 자동완성됨.
Plan 모드 (Shift+Tab)
계획 승인 전까지 편집을 막는 모드. Shift+Tab을 눌러 Plan에 도달하면 됩니다. 큰 작업 시작 전에 먼저 계획을 세우고 검토받으면 실수가 크게 줄어듭니다.
/clear
컨텍스트 초기화. 다른 작업으로 넘어갈 때 무조건 실행. 안 하면 이전 대화가 새 작업에 간섭합니다.
!명령어
셸 명령 직접 실행. ! npm test, ! git status — Claude를 안 거치고 빠르게 출력 확인.
/init
프로젝트에 한 번만 실행. CLAUDE.md를 자동 생성해서 프로젝트 규칙을 영구 저장합니다.
claude agents
Agent view. 돌고 있는 에이전트를 한 화면에서 보고(peek), 붙고(attach), --bg로 백그라운드에 넣습니다. 여러 작업을 병렬로 굴릴 때 필수.
/fork
현재 세션을 백그라운드로 복사해 다른 갈래를 실험합니다. 옛날의 "포크 서브에이전트"는 이제 /subtask입니다.
핵심 워크플로우
Shift+Tab으로 Plan Mode 진입 → 계획 검토 → 다시 Shift+Tab으로 Auto/Accept edits 전환 → 구현 → /clear로 정리. 이 사이클을 익히는 것이 Claude Code 마스터로 가는 가장 빠른 길입니다.

1. Claude Code 개요

Claude Code는 자연어로 코드를 작성하는 CLI 도구지만, 단순한 채팅 인터페이스 이상입니다. 4가지 종류의 입력 방식이 있습니다.

접두사 용도 예시
/ 슬래시 명령어 (빌트인 기능) /init, /clear, /review
@ 파일/폴더 참조 @app.py, @src/components
! 셸 명령 직접 실행 ! npm test, ! git status
# CLAUDE.md에 메모리 추가 (레거시) # pytest를 사용한다
(없음) 자연어 프롬프트 "로그인 기능 구현해줘"

2. 슬래시 명령어 (/)

프롬프트 맨 앞에 /를 입력하면 사용 가능한 명령어 목록이 표시됩니다. 카테고리별로 자주 쓰는 것부터 배치했습니다.

2-1. 세션 관리

빈도 명령어 용도
⭐⭐⭐ /clear 컨텍스트 초기화. 새 작업 시작 전 필수.
⭐⭐ /init 프로젝트 분석 후 CLAUDE.md 자동 생성. 새 프로젝트에서 처음 한 번.
⭐⭐ /resume 저장된 세션 중에서 골라 재개.
⭐ /continue 가장 최근 세션 즉시 재개.
⭐ /rename 현재 세션에 이름 부여 (나중에 찾기 쉽게).
사용 예시 — 작업 간 전환
# 로그인 기능 구현 완료 후 대시보드 작업 시작
/clear
# → 깨끗한 상태에서 새 작업 시작

# 어제 하던 작업 이어서
/resume
# → 저장된 세션 목록에서 선택
사용 예시 — 새 프로젝트 시작
# 1. 프로젝트 폴더로 이동
! cd ~/projects/my-new-app

# 2. CLAUDE.md 자동 생성
/init
# → Claude가 프로젝트 구조 분석 후
#   언어/프레임워크/테스트 도구를 감지하고
#   CLAUDE.md 초안을 만들어줌

# 3. 세션에 이름 부여
/rename initial-setup
사용 예시 — 여러 세션 병렬 작업
# 터미널 1: 백엔드 API 작업
claude
> /rename backend-auth

# 터미널 2: 프론트엔드 UI 작업 (병렬)
claude
> /rename frontend-login

# 나중에 어느 세션이든 /resume으로 복귀

2-2. 컨텍스트 관리

빈도 명령어 용도
⭐⭐⭐ /context 컨텍스트 윈도우 사용량 시각화. 정기적으로 확인.
⭐⭐ /compact [지시] 컨텍스트 요약/압축. 80% 이상 차면 실행.
⭐ /btw [질문] 히스토리에 남지 않는 사이드 질문.
사용 예시 — 기본 사용
/context
# → 현재 컨텍스트 사용량 표시 (예: 82% 사용)

/compact "최근 결제 로직 구현과 테스트 결과만 보존하고 나머지는 요약"
# → 중요한 부분만 유지하면서 공간 확보

/btw 그 환경변수 이름이 뭐였더라?
# → 작업 흐름 방해 없이 빠른 확인
사용 예시 — /compact 활용 (보존할 정보 명시)
# 좋은 예시 — 무엇을 보존할지 구체적으로
/compact 현재 진행 중인 OAuth 구현 코드와
        @src/auth/oauth.ts 의 최신 버전을 보존하고
        나머지 토론 내용은 요약해줘

# 나쁜 예시 — 막연한 지시
/compact 정리해줘  ← 중요 정보가 사라질 수 있음
사용 예시 — /btw 활용
# Claude가 큰 작업을 하는 중에...

/btw package.json의 react 버전이 뭐야?
# → 빠르게 확인하고 메인 작업으로 복귀
#   히스토리에 남지 않아서 컨텍스트가 깨끗

/btw 방금 만든 함수 이름이 뭐였지?

2-3. 모델 & 추론 강도

참고
권한 모드(Manual / Plan / Auto …)는 슬래시 명령어가 아니라 Shift+Tab 키보드 단축키로 바꿉니다. 자세한 내용은 7. 권한 모드 참고.

모델 별칭 (2026-09 라인업)

별칭 해석 특징 · 최소 버전
sonnet Sonnet 5 네이티브 1M 컨텍스트, adaptive thinking 기본. Pro / Team Standard의 기본. ≥ v2.1.197
opus Opus 5 Max / Team Premium / Enterprise / API 종량제의 기본. ≥ v2.1.219
fable Fable 5.1 장시간 자율 작업·난제용. 어느 계정의 기본도 아니며 대개 usage credits를 쓴다. ≥ v2.1.255 (Fable 5는 ≥ 2.1.170)
haiku 최신 Haiku 단순·빠른 작업, 저비용
opusplan Opus → Sonnet 계획은 Opus, 실행은 Sonnet
best Fable, 없으면 opus 가용한 최상위를 알아서 고른다
default 런타임 기본 Max/Premium/Enterprise/API → Opus 5, Pro/Team Standard → Sonnet 5
⚠️ 프로바이더 별칭은 뒤처질 수 있다
Bedrock·Vertex·Foundry 같은 경유 경로에서는 별칭이 구세대를 가리킬 수 있습니다(예: Foundry의 opus가 4.6, sonnet이 4.5). 확실히 하려면 전체 모델 ID를 직접 쓰거나 ANTHROPIC_DEFAULT_OPUS_MODEL · ..._SONNET_MODEL · ..._HAIKU_MODEL · ..._FABLE_MODEL 로 핀을 박으세요.

모델 관련 명령·설정

빈도 명령 / 설정 용도
⭐⭐ /model [이름] 모델 전환. 복잡한 설계엔 opus, 빠른 작업엔 haiku.
⭐⭐ /effort 추론 강도 조절 (xhigh 등). Opus·Fable 계열에서 의미가 크다.
⭐ /fast Fast mode 토글. Opus 전용 — 현재 Opus 5와 4.8만 지원한다.
⭐ /advisor · --advisor 실험적. 주 모델이 어려운 결정에서 더 강한 모델에게 자문을 구한다.
⭐ ANTHROPIC_DEFAULT_MODEL 다른 설정이 없을 때 새 세션의 시작 모델. ≥ v2.1.236
⭐ fallbackModel / --fallback-model 주 모델을 못 쓸 때 넘어갈 대체 모델 (최대 3개)
Fast mode에서 알아둘 것
  • Sonnet·Haiku에는 fast mode가 없다. Opus 5 / Opus 4.8 전용이며, Opus 4.7의 fast mode는 2026-07-24에 제거됐다.
  • 공개 가격은 MTok당 $10 / $50이고, 구독에서 쓰면 usage credits가 소모된다.
  • 게이트웨이 뒤에서 쓸 때 주의 — fast 사용 가능 여부 확인이 ANTHROPIC_BASE_URL과 무관하게 api.anthropic.com을 직접 찌른다. ↓ 19장
조직 차원의 모델 통제
Enterprise에서는 availableModels · enforceAvailableModels · 조직 기본 모델 · effort 상한을 관리형 설정으로 강제할 수 있습니다. 사용자가 /model로 목록 밖 모델을 고를 수 없게 됩니다.

2-4. 코드 품질

빈도 명령어 용도
⭐⭐ /review 미커밋 변경사항 검토. 위험 패턴, 누락 테스트 탐지.
⭐⭐ /simplify 중복 제거, 패턴 최적화, 불필요한 변수 제거.
⭐⭐ /diff NEW 미커밋 변경을 전체 화면 diff 패널로 본다. 커밋 직전 점검용. (≥ v2.1.260)
⭐ /security-review 보안 취약점 종합 검토.
⭐ /code-review · /ultrareview 번들 스킬 리뷰 / 클라우드 멀티에이전트 심층 리뷰.
사용 예시 — 작업 완료 직전 루틴
# 1. 구현이 끝났으면 자동으로 코드 다듬기
/simplify
# → 중복 제거, 더 좋은 패턴 제안

# 2. PR 만들기 전 마지막 점검
/review
# → 누락된 테스트, 위험 패턴 탐지

# 3. 인증 / 결제 / 데이터 처리 코드면 반드시
/security-review
# → 보안 취약점 종합 검토

# 4. 모두 통과하면 커밋
! git add . && git commit -m "feat: OAuth 추가"
사용 예시 — 특정 파일만 리뷰
# 특정 파일/폴더로 범위 좁히기
@src/api/payment.ts 만 /review 해줘

@src/auth 폴더에 대해 /security-review 진행해줘
특히 토큰 처리 부분을 집중적으로.

2-5. 워크플로우 자동화

빈도 명령어 용도
⭐⭐⭐ /goal <완료조건> NEW 완료 조건을 정해두면 Claude가 여러 턴에 걸쳐 자율적으로 작업. (v2.1.139~) ↓ 2-7 참고
⭐⭐ /agents 서브에이전트 관리 (실행/중단). 생성 위자드는 제거됐다 — 정의는 .claude/agents/*.md를 직접 쓴다.
⭐⭐ /fork 변경 세션 자체를 백그라운드로 복사한다. (≥ v2.1.212부터 의미가 바뀜)
⭐⭐ /subtask 변경 예전의 "포크 서브에이전트". 대화를 물려받은 자식에게 하위 작업을 맡긴다.
⭐⭐ /cd <경로> NEW 세션의 작업 디렉터리 이동. 프롬프트 캐시를 유지한 채 옮긴다.
⭐ /tasks 백그라운드 작업 목록 확인.
⭐ /background 현재 세션을 백그라운드로 전환.
⭐ /loop [간격] [명령] 명령어 반복 실행 (예: /loop 5m /check-tests).
⭐ /schedule cron 기반 예약 실행.
⭐ /rewind 이전 상태로 되감기. /clear 이후에도 clear 이전 지점으로 돌아갈 수 있다.
⭐ /design 리서치 프리뷰 아트보드에서 UI를 잡고 그대로 구현으로 넘긴다 (Artifacts 연동). ≥ v2.1.234
⚠️ /fork의 의미가 바뀌었다
v2.1.212 전까지 /fork는 "대화를 물려받은 서브에이전트"를 뜻했지만, 지금은 /fork = 백그라운드 세션 복사, /subtask = 옛 포크 서브에이전트입니다. 예전 메모나 블로그 글을 따라 하다 헷갈리기 쉬운 지점입니다.
⚠️ 없어진 명령 — /ultraplan
클라우드 계획 세션을 만들던 /ultraplan은 제거됐습니다. 계획은 Plan 모드나 /design·/goal 쪽으로 대체하세요.
사용 예시 — /loop로 반복 실행
# 5분마다 테스트 자동 실행
/loop 5m npm test

# 30초마다 빌드 상태 확인
/loop 30s ! curl -s http://localhost:3000/health

# 1시간마다 PR 상태 점검
/loop 1h gh pr list --author @me
사용 예시 — 백그라운드 작업
# 1. 시간이 오래 걸리는 작업 시작
@src 전체에 대해 마이그레이션 작업을 진행해줘.
모든 .js 파일을 .ts로 변환.

# 2. Ctrl+B로 백그라운드 전환
# 3. 다른 작업 진행

# 4. 진행 상태 확인
/tasks
# → 실행 중인 백그라운드 작업 목록 표시

2-6. 설정 및 구성

빈도 명령어 용도
⭐⭐ /config 테마, 모델, 에디터 모드, 언어 설정.
⭐⭐ /permissions 도구 권한 관리 (특정 Bash 명령 허용 등).
⭐⭐ /memory CLAUDE.md 편집 인터페이스.
⭐ /hooks 자동화 훅 관리.
⭐ /mcp MCP 서버 추가/관리.
⭐ /plugin 플러그인 관리.
⭐ /skills 스킬 활성화/비활성화.
⭐ /skill-doctor NEW 안 쓰는 스킬과 스킬이 잡아먹는 컨텍스트 비용을 짚어준다. (≥ v2.1.261)
⭐ /terminal-setup Shift+Enter 등 키 바인딩 설치.
⭐ /doctor · /checkup 변경 설정 진단. 예전엔 읽기 전용 점검이었지만 지금은 발견한 문제를 고치는 것까지 한다.
⭐ /debug 디버그 로그 활성화.
⭐ /help 전체 도움말.
사용 예시 — 권한 관리
/permissions

# UI에서 다음을 설정:
# - npm/pytest/git 명령 자동 허용
# - rm -rf, sudo 차단
# - .env 파일 읽기 차단
사용 예시 — 모델 / 효율성 조정
/config
# → 일반 작업: Sonnet (균형)
# → 복잡한 알고리즘: Opus
# → 빠른 단순 작업: Haiku

/fast
# → Fast mode 토글 (Opus 5 / 4.8에서만 동작)

/model haiku
# → 단순 작업은 Haiku로 (속도·비용 우선)

/effort xhigh
# → 어려운 설계·검증 구간에서만 추론 강도를 올림
사용 예시 — 트러블슈팅
# 문제가 생겼을 때 진단
/doctor
# → CLAUDE.md, 권한, 스킬, MCP 등 설정 검증

/debug
# → 상세 로그 출력 (다음 명령부터)

/hooks
# → 현재 등록된 훅 목록 확인

2-7. /goal — 자율 실행 모드 NEW · v2.1.139

2026년 5월 11일 출시된 Claude Code v2.1.139의 핵심 기능. 완료 조건(completion condition)을 한 줄로 정해두면, Claude가 매 턴마다 사용자의 새 프롬프트 없이도 스스로 다음 턴을 이어가며 그 조건이 충족될 때까지 작업한다. 기존 "한 번 시키고 → 답 받고 → 다시 시키는" 턴 기반 흐름을 장시간 자율 에이전트 흐름으로 바꿔주는 명령어.

한 줄 개념
매 턴 종료 후 별도의 검증 모델(기본 Haiku)이 대화 전체를 읽고 "완료 조건이 충족됐는가?" 만 판단한다.
  • 아니오 → 그 이유를 다음 턴의 지침으로 전달 + Claude가 작업 계속
  • 예 → 목표 자동 해제, 제어권이 사용자에게 복귀

기본 문법

# 목표 설정 (= 조건문 자체가 첫 지시문)
/goal All tests passing in CI, no TypeScript errors, server.ts bug fixed

# 현재 상태 보기 — 조건 / 경과 시간 / 턴 수 / 토큰 / 마지막 평가 사유
/goal

# 목표 해제 (다음 별칭들도 동일하게 동작)
/goal clear
/goal stop
/goal off
/goal reset
/goal none
/goal cancel

스크립트 / CI 용 — -p 플래그

# 비대화식 실행 (CI 파이프라인이나 야간 배치 작업에 활용)
claude -p /goal "npm test가 exit 0이 될 때까지 lib/parser.ts의 회귀 버그를 수정"
좋은 완료 조건의 3요소
  1. 측정 가능한 종료 상태 — 테스트 결과, 빌드 exit code, lint 0 warnings
  2. 검증 방법 명시 — "npm test가 exit 0", "tsc --noEmit 에러 없음"
  3. 지켜야 할 제약 — "공개 API는 변경하지 말 것", "DB 스키마는 그대로"
실전 예시 — 좋은 /goal
/goal test/auth/* 의 모든 테스트가 통과하고 ESLint warning이 0이 될 것.
검증: `pnpm test:auth` 가 exit 0, `pnpm lint` 가 exit 0.
조건: 공개 export 시그니처는 변경하지 말 것.
턴 상한: 30턴 또는 60분이 경과하면 중단.
⚠️ 비용 폭주를 막는 안전 패턴
반드시 턴 / 시간 상한을 조건문 안에 넣어라.
한 개발자가 모호한 목표로 14시간 만에 $200을 태운 사례가 보고됨. /goal에는 자체 하드 비용 캡이 없다 — 사용자가 직접 조건에 적어 넣어야 한다.
# 권장 표현
... or stop after 40 turns
... or stop if 90 minutes elapse
... or stop after $5 in token spend
⚠️ 절대 피해야 할 패턴 (Anti-patterns)
  • /goal 코드를 더 좋게 만들어줘 — 검증 불가, 무한 루프 위험
  • /goal 사용자 경험을 개선 — 평가 모델이 대화만 보고 판단 못 함
  • /goal 멋진 디자인으로 리팩토링 — 주관적 종료 조건 → 토큰 무한 소모
평가 모델은 대화 기록(transcript)에서만 판단한다 — 외부 사실에 의존하는 조건은 영영 "no"가 떠서 무한히 돌아간다.
잘 맞는 활용 시나리오
  • 코드 마이그레이션 — "모든 .js → .ts 변환, tsc 통과까지"
  • 테스트 커버리지 끌어올리기 — "coverage 80% 달성, 모든 테스트 green"
  • 리팩토링 — 완료 기준을 객관 지표로 묶을 수 있을 때
  • 야간 / 주말 자율 실행 — 가드레일을 명확히 걸어둔 경우
  • 회귀 버그 추적 — "이 테스트 케이스가 통과할 때까지"

턴 진행 중 표시되는 정보

실전 흐름 예제 — 턴이 자동으로 이어지는 모습
# 목표 설정
/goal tests/parser.test.ts 가 전부 통과할 것. 검증: `npm test`가 exit 0.
      제약: parser.ts의 공개 API 시그니처는 유지. 상한: 20턴 또는 30분.

# ── 턴 1 ── Claude가 스스로 시작
npm test 실행 → 3건 실패 (null 입력 처리 누락)
parser.ts의 parse() 에 null 가드 추가
[평가자] ❌ no — 아직 2건 실패 (빈 배열 케이스). 계속.

# ── 턴 2 ── 사용자가 아무것도 안 쳐도 자동 진행
빈 배열 분기 추가 → npm test 재실행 → 1건 실패 (중첩 객체)
[평가자] ❌ no — 1건 남음. 계속.

# ── 턴 3 ──
재귀 파싱 수정 → npm test → exit 0 (전부 통과)
[평가자] ✅ yes — 조건 충족. 공개 API도 그대로.

# → 목표 자동 해제, 제어권이 사용자에게 복귀 (3턴 만에 종료)
🔗 /goal + 서브에이전트 결합
자율 루프 안에서 무거운 조사는 서브에이전트에 위임하면, 메인 세션 컨텍스트가 30턴 동안 오염되지 않는다.
/goal 전 코드베이스에서 deprecated된 `oldClient` 호출을 전부 `newClient`로
      교체할 것. 검증: `grep -r oldClient src/`가 0건, `npm run build`가 exit 0.
      방법: 먼저 Explore 서브에이전트로 모든 호출 지점을 수집한 뒤 교체.
      상한: 25턴 또는 45분.

주변 명령어와의 관계

명령차이점
/loop 고정된 간격으로 같은 명령을 반복 (시간 기반). /goal은 조건 충족까지(상태 기반).
/agents 특정 작업을 별도 에이전트로 위임. /goal은 현재 세션 자체를 자율 모드로 전환.
/background + /tasks 긴 작업을 백그라운드로 돌리는 컨테이너. /goal과 결합 가능 (조건부 + 백그라운드).
Plan Mode 실행 전 계획 확정. /goal은 계획이 아니라 종료 조건을 미리 못박아두는 것.
참고 — 출시 맥락
OpenAI Codex CLI가 2026-04-30에 먼저 /goal을 출시했고, Anthropic이 11일 뒤인 2026-05-11에 Claude Code v2.1.139로 동등 기능을 추가했다. 양쪽 모두 "verifiable finish line(검증 가능한 종료점) 기반 멀티턴 자율 실행"이라는 같은 패러다임을 따른다.

3. @ 파일 참조 매우 자주 사용

@ 뒤에 파일 경로를 입력하면 Claude가 그 파일을 읽고 응답합니다. Tab으로 자동완성됩니다.

기본 사용

사용 예시
# 단일 파일
@app.py 이 파일의 라우트 구조를 설명해줘

# 여러 파일
@src/auth/session.ts 와 @src/api/login.ts 의 관계는?

# 폴더 전체
@src/components 이 폴더의 컴포넌트들을 나열해줘

# 홈 디렉토리
@~/.zshrc 내 셸 설정 확인해줘

# 특정 줄 부근
@src/auth/session.ts 의 47번 줄 로직 설명해줘
팁
  • 한 번에 3~5개 파일까지만 참조 (너무 많으면 컨텍스트 낭비)
  • Tab 키로 자동완성됨 — @pac + Tab → @package.json
  • CLAUDE.md 안에서도 @docs/git-rules.md 같은 임포트 가능
  • MCP 리소스도 @ 메뉴에 표시됨 (@github:issues/123)

실전 활용 예시

상황 1 — 버그 수정
@src/api/payment.ts 에서 결제 실패 시 트랜잭션이
롤백되지 않는 버그가 있어. @tests/payment.test.ts 의
테스트 패턴 참고해서 재현 테스트 작성하고 수정해줘.
상황 2 — 새 기능 추가
@src/components/Button.tsx 와 동일한 스타일 패턴으로
@src/components/IconButton.tsx 컴포넌트를 만들어줘.
Props는 @types/icon.ts 의 IconName을 사용.
상황 3 — 코드 이해
@src/utils/auth.ts 의 refreshToken 함수가
@src/middleware/session.ts 의 어떤 흐름에서 호출되는지
순서대로 설명해줘. 다이어그램으로 그려도 좋아.
상황 4 — 패턴 따라 만들기
@src/api/users.ts 의 CRUD 패턴을 그대로 따라서
@src/api/products.ts 를 만들어줘. 다만 products는
재고(stock) 필드가 추가로 필요해.
상황 5 — 설정 파일 참조
@.env.example 의 환경변수들을 보고 @docs/setup.md 의
설치 가이드 섹션을 업데이트해줘. 누락된 변수가 있으면 추가.

4. ! Shell Mode 자주 사용

!를 프롬프트 맨 앞에 붙이면 Claude를 거치지 않고 셸 명령이 바로 실행되고, 결과가 대화에 추가됩니다.

사용 예시
! npm test
! git status
! ls -la
! python app.py
! cat .env.example
! pytest tests/test_auth.py -v
언제 유용한가
  • 빠른 상태 확인 (git status, ls)
  • 출력을 컨텍스트에 넣고 Claude에게 분석 요청할 때
  • Claude의 해석 단계가 필요 없는 단순 명령
종료: Esc 또는 빈 프롬프트에서 Backspace

활용 시나리오

시나리오 1 — 에러 메시지 분석
# 1. 에러를 직접 실행
! python app.py

# 2. (에러 출력이 컨텍스트에 추가됨)
# 3. Claude에게 분석 요청
위 에러의 원인이 뭐야? 어떻게 고쳐?
시나리오 2 — 테스트 결과 분석
! pytest tests/test_auth.py -v
# → 실패한 테스트 출력

실패한 테스트 케이스만 골라서
원인을 분석하고 수정 방안을 제시해줘.
시나리오 3 — 의존성 확인
! pip list | grep -i flask
! npm ls react

# 버전 확인 후
이 버전들로 호환 가능한 OAuth 라이브러리 추천해줘.
시나리오 4 — 빠른 파일 작업
! cat .env.example
! find . -name "*.log" -mtime -1
! du -sh node_modules
! git log --oneline -10
시나리오 5 — DB / API 빠른 확인
! curl -s http://localhost:3000/api/health | jq
! psql -d mydb -c "SELECT COUNT(*) FROM users;"
! redis-cli ping

5. # 메모리 추가 가끔 사용

CLAUDE.md에 빠르게 메모를 추가합니다. 최신 버전에서는 /memory가 권장됩니다.

사용 예시
# 이 프로젝트는 FastAPI를 사용한다 (Flask 아님)
# 모든 테스트는 pytest로 실행
# 가상환경: poetry 사용

6. 키보드 단축키

필수 단축키 (자주 사용 순서)

빈도 키 기능
⭐⭐⭐ Shift+Tab 권한 모드 순환. Auto로 시작했다면 첫 입력에서 Auto → Manual → Accept edits → Plan → …
⭐⭐⭐ Esc Claude 작업 중단
⭐⭐ Esc Esc 되감기 메뉴 (이전 상태로 복원)
⭐⭐ Ctrl+R 명령어 히스토리 역검색
⭐⭐ Ctrl+G 외부 에디터에서 프롬프트 편집 (긴 프롬프트에 유용)
⭐ Ctrl+O 트랜스크립트 뷰어 (도구 실행 상세)
⭐ Ctrl+B 장시간 명령을 백그라운드로
⭐ Ctrl+C 입력/생성 취소
⭐ Ctrl+D 세션 종료

줄바꿈 (멀티라인 입력)

방법 비고
\ + Enter 모든 터미널에서 동작 (안전한 선택)
Shift+Enter iTerm2/Terminal.app/Windows Terminal 등 — /terminal-setup 후 사용
Ctrl+J 모든 터미널 호환 (대안)
Option+Enter 맥에서 Option을 Meta로 설정 시

맥 Option 키 조합

키 기능
Option+P 모델 빠른 전환 (확인 건너뜀)
Option+T Extended Thinking 토글
Option+O Fast Mode 토글

7. 권한 모드 (Permission Modes) 매우 중요

Shift+Tab으로 순환하는 이 축은 "무엇을 물어보고 무엇을 그냥 할지"를 정합니다. 예전 가이드의 "Default / Plan / Auto-Accept 3단"은 이제 맞지 않습니다 — 모드가 6종으로 늘었고, 그중 Auto는 이름만 비슷할 뿐 옛 Auto-Accept와 완전히 다른 물건입니다.

7-1. 6가지 모드

설정값 UI 라벨 동작
default
(별칭 manual)
Manual 읽기만 자동. 편집·실행은 매번 승인. 가장 보수적.
acceptEdits Accept edits 작업 폴더 안의 편집과 일부 파일시스템 명령을 자동 승인. — 이것이 예전에 "Auto-Accept"라 부르던 그 모드다.
plan Plan 계획을 승인받기 전까지 편집을 차단. 분석·설계 전용.
auto Auto 기본 분류기(classifier)가 백그라운드에서 각 동작의 안전성을 검토해 통과시킨다. 위험하다고 판단되면 그때만 묻는다.
dontAsk — 사전에 allow한 것만 실행하고 나머지는 묻지 않고 거부. 무인 CI용.
bypassPermissions Bypass 프롬프트를 전부 건너뛴다. 컨테이너·일회용 VM에서만 쓰는 게 권장이다.
Auto ≠ Accept edits
Accept edits는 "편집이면 무조건 통과"라는 규칙이고, Auto는 "이 동작이 안전한가"를 매번 판단합니다. 그래서 Auto는 위험한 셸 명령 앞에서는 여전히 멈춰 서고, 안전한 편집은 조용히 지나갑니다. 옛 Auto-Accept의 감각으로 Auto를 이해하면 어긋납니다.

7-2. Auto가 기본이 된 이유와 예외

2026-08-14부터 Pro / Max / Team 계정의 터미널·VS Code에서 내장 시작 모드가 auto가 됐습니다 (플래그·설정·플랜이 허용하는 경우).

조건 시작 모드
Pro / Max / Team, CLI ≥ v2.1.228 (macOS·Linux·WSL)
네이티브 Windows는 ≥ v2.1.233
Auto
그보다 낮은 버전 Manual
Enterprise · Console API 키 · Bedrock/Vertex/Foundry · apps 게이트웨이 · -p/SDK Manual (자동 전환 대상 아님)
⚠️ 프로젝트 설정으로는 Auto·Bypass를 켤 수 없다
프로젝트의 .claude/settings.json에 "defaultMode": "auto"나 "bypassPermissions"를 적어도 무시됩니다. 저장소를 클론하는 것만으로 권한이 열리는 사고를 막기 위한 설계입니다. 필요하면 user/managed 설정이나 --permission-mode 플래그를 쓰세요.
Shift+Tab 순환 순서
Auto로 시작한 세션은 첫 입력 이후 Auto → Manual → Accept edits → Plan → … 순으로 돕니다. 화면 하단의 모드 표시를 확인하는 습관을 들이세요.
권장 워크플로우 (복잡한 작업)
1단계: Plan 모드로 이동
Shift+Tab → Plan
→ "@src/auth 분석 후 OAuth 추가 계획 세워줘"

2단계: 계획 검토
Ctrl+G로 에디터에서 계획 수정/보강

3단계: 실행 모드로 전환
Shift+Tab → Auto (안전 검토를 맡김)
   또는 Accept edits (편집만 몰아서 통과시킬 때)

4단계: 구현
"계획대로 구현해줘"

5단계: 정리
/clear (다음 작업 준비)

7-3. 모드별 실전 시나리오

Manual이 적합한 경우
# 예시 1: 처음 보는 코드를 신중하게 수정
@legacy/billing.py 의 calculate_tax 함수
버그 수정해줘. 각 변경마다 보여줘.

# 예시 2: 프로덕션 코드 수정
@src/payment 의 결제 로직을 수정해야 해.
변경 전후를 확인하면서 진행해줘.
Plan이 적합한 경우
# 예시 1: 큰 리팩토링 (수정 전 분석만)
Shift+Tab → Plan
@src 전체에서 사용 중인 콜백 패턴을
async/await로 마이그레이션하려고 해.
영향받는 파일 목록과 변경 순서를 계획해줘.

# 예시 2: 처음 보는 코드베이스 파악
Shift+Tab → Plan
이 프로젝트의 인증 흐름을 파악해줘.
관련 파일 목록과 각 파일의 역할,
요청 흐름을 다이어그램으로 정리해줘.
Accept edits가 적합한 경우
# 편집이 대량으로, 예측 가능하게 발생하는 작업
Shift+Tab → Accept edits
@src/components 의 모든 .jsx 파일을
.tsx로 변환하고 타입 추가해줘.

# 이미 Plan에서 승인된 계획을 그대로 밀어붙일 때
방금 검토한 계획대로 구현해줘. 중간에 멈추지 말고 끝까지.
dontAsk / Bypass가 적합한 경우
# 무인 CI — allow 목록 밖은 조용히 거부
claude -p "테스트 실패 원인 요약" --permission-mode dontAsk \
        --allowedTools "Read,Grep,Bash(npm test)"

# 격리된 컨테이너 안에서 전체 자동화
claude --permission-mode bypassPermissions
Auto·Accept edits·Bypass를 쓸 때 지킬 것
  • 인증·결제·DB 마이그레이션 같은 되돌리기 어려운 코드는 Manual로 내려서 진행하세요.
  • git 상태를 자주 확인 (! git status, ! git diff, /diff)
  • 위험한 명령(rm, git reset)은 /permissions의 deny 규칙으로 미리 막아두세요. deny는 어떤 모드에서도 우선합니다.
  • 더 확실하게 막고 싶다면 권한이 아니라 샌드박스로 감싸세요 — 권한 모드와 독립적으로 조합됩니다.

8. 서브에이전트 & 멀티에이전트 운영 중급

특정 작업을 위한 격리된 AI. 자체 컨텍스트와 도구 집합을 가져 메인 세션의 컨텍스트를 보호합니다.

내장 서브에이전트

이름 용도
Explore 코드베이스 탐색 (읽기 전용). 메인 컨텍스트 절약. 메인 세션의 모델을 상속한다(상한 있음).
Plan 구현 계획 수립.
general-purpose 일반 작업. 균형잡힌 권한.

커스텀 서브에이전트 만들기

.claude/agents/security-reviewer.md 파일 생성:

---
name: security-reviewer
description: 보안 취약점 검토 전문가
tools: Read Grep Glob Bash
model: opus
---

당신은 시니어 보안 엔지니어입니다.
SQL/XSS/Command injection, 인증/인가 결함, 시크릿 노출 등을 검토합니다.

각 이슈에 대해:
1. 코드 위치와 심각도 (Critical/High/Medium/Low)
2. 수정 방법 (코드 예시 포함)
3. 추가 테스트 제안

frontmatter 필드

필드필수설명
name ✅ 호출 이름. 파일명과 같게 두는 게 관례 (security-reviewer.md → security-reviewer).
description ✅ 가장 중요한 필드. Claude가 "언제 이 에이전트를 자동으로 부를지" 판단하는 근거다. 구체적으로 쓸수록 자동 위임이 잘 된다. PROACTIVELY, MUST BE USED 같은 표현을 넣으면 더 적극적으로 위임한다.
tools 선택 공백 또는 쉼표로 구분. 생략하면 메인 세션의 모든 도구를 상속한다. 검토용 에이전트라면 Read Grep Glob처럼 최소 권한으로 좁히는 게 안전하다.
model 선택 opus / sonnet / haiku / inherit. 단순 탐색은 haiku(빠르고 저렴), 정밀 검토는 opus처럼 작업 난이도에 맞춘다.
💡 description이 "자동 위임"을 좌우한다
Claude는 매 요청마다 등록된 에이전트들의 description만 훑어보고 "이 작업에 딱 맞는 전문 에이전트가 있나?"를 판단한다. 본문(프롬프트)이 아무리 좋아도 description이 모호하면 영영 자동으로 안 불린다.
# 나쁜 예 — 언제 써야 할지 모름
description: 코드를 검토합니다

# 좋은 예 — 트리거 상황이 분명함
description: 보안 취약점 검토 전문가. 인증/인가 코드, API 엔드포인트,
  사용자 입력 처리부를 수정하거나 추가한 직후 PROACTIVELY 호출할 것.
호출 방법
security-reviewer 서브에이전트로 @src/auth 코드를 검토해줘
# 또는
/agents
# → security-reviewer 선택
예제 2 — 테스트 작성 전문 에이전트 (.claude/agents/test-writer.md)
---
name: test-writer
description: 테스트 작성 전문가. 새 함수/모듈을 추가했거나 "테스트 짜줘"
  라고 할 때 PROACTIVELY 사용. 엣지 케이스와 실패 경로까지 커버한다.
tools: Read, Grep, Glob, Edit, Bash
model: sonnet
---

당신은 테스트 작성 전문 엔지니어입니다.

작업 규칙:
1. 먼저 대상 코드와 기존 테스트 컨벤션(파일 위치·네이밍·assert 스타일)을 읽고 맞춘다.
2. 정상 경로 1~2개 + 엣지 케이스(빈 입력, 경계값, null, 예외)를 반드시 포함한다.
3. 테스트 작성 후 실제로 실행해 통과를 확인하고, 실패 시 원인을 보고한다.
4. 프로덕션 코드는 수정하지 않는다 — 버그를 발견하면 테스트로 드러내고 보고만 한다.

서브에이전트 활용 시나리오

시나리오 1 — 큰 코드베이스 탐색 (Explore)
# 메인 컨텍스트를 보존하면서 조사
Explore 서브에이전트로 이 프로젝트의 데이터베이스
모델 구조를 파악해줘. 모든 모델 파일을 찾고,
각 모델의 필드와 관계를 표로 정리해줘.

# → 서브에이전트가 별도 컨텍스트에서 탐색
# → 결과 요약만 메인 세션에 반환
# → 메인 세션 컨텍스트는 깨끗하게 유지
시나리오 2 — 병렬 작업
# 한 번에 여러 조사를 병렬로
다음을 병렬로 진행해줘:
1. Explore 에이전트로 @src/api 의 모든 엔드포인트 목록 수집
2. Explore 에이전트로 @tests 의 테스트 커버리지 분석
3. 위 두 결과를 비교해서 테스트 없는 엔드포인트 찾기
시나리오 3 — 도메인별 전문 에이전트
# 보안 검토
security-reviewer로 @src/auth 검토해줘

# 성능 분석
performance-engineer로 @src/api/search 의
N+1 쿼리 문제를 찾아줘

# 테스트 작성
test-writer로 @src/utils/parser.ts 의
엣지 케이스 테스트를 추가해줘
시나리오 4 — 호출부터 결과 반환까지 (전체 흐름)
# 메인 세션에서 한 줄로 위임
> security-reviewer로 @src/auth/login.ts 를 검토해줘

# ── 서브에이전트가 별도 컨텍스트에서 실행 ──
#   login.ts, 관련 미들웨어, 환경변수 사용처를 읽고 분석
#   (이 과정의 토큰은 메인 세션 컨텍스트에 쌓이지 않음)
#
# ── 메인 세션에는 "요약 결과"만 돌아옴 ──

[High] login.ts:42 — 비밀번호를 평문으로 로깅함
  → console.log 제거, 마스킹 처리 필요
[Medium] login.ts:58 — 로그인 실패 횟수 제한 없음 (brute-force)
  → rate limiter 미들웨어 추가 권장
[Low] login.ts:13 — JWT 만료시간이 30일로 과도하게 김

# → 메인 세션 컨텍스트는 깨끗하게 유지된 채
#   핵심 결론(3건)만 받아 후속 작업을 이어감
언제 서브에이전트를 쓸까 / 피할까
쓰면 좋은 경우안 쓰는 게 나은 경우
대량 파일 탐색·조사로 컨텍스트가 오염될 때 (결론만 필요) 한두 파일만 보면 끝나는 가벼운 작업 (위임 오버헤드가 더 큼)
독립적 작업을 병렬로 동시에 돌릴 때 중간 결과를 보며 대화형으로 방향을 바꿔야 할 때
반복되는 전문 작업을 고정된 규칙으로 위임 (보안검토·테스트) 메인 세션의 누적 맥락을 그대로 이어가야 할 때

핵심은 컨텍스트 격리다. 서브에이전트는 자기 컨텍스트에서 일하고 요약만 돌려주므로, 메인 세션의 토큰·집중도를 아낀다.

실전 — 4단계 멀티에이전트 파이프라인 활용

"무언가를 만들 때 자료 탐색 → 자료 검토 → 제작 → 결과 검증을 각각 전담 에이전트에게 맡길 수 있나?" — 그렇다. 각 역할을 .claude/agents/ 아래 별도 .md 파일로 정의하면, 한 작업을 4명의 전문가가 분업해 처리하는 파이프라인이 된다.

⚠️ 먼저 알아야 할 작동 원리 — "지휘자는 메인 세션"
서브에이전트는 서로를 직접 호출하지 못한다 (기본 도구 집합에 다른 에이전트를 부르는 권한이 없음). 4개를 잇는 지휘자(orchestrator)는 메인 Claude 세션이다.
  • 메인 세션이 researcher를 부르고 → 그 출력을 받아
  • fact-checker의 입력으로 넘기고 → 통과한 자료를
  • builder에게 주고 → 산출물을
  • qa-verifier로 검증한다.
그래서 각 .md의 description에 "무엇을 입력받아 무엇을 돌려주는지"를 분명히 적어두면 메인 세션이 더 잘 엮는다.
🧑‍✈️ 메인 세션 = 오케스트레이터 (각 단계 출력을 다음 단계 입력으로 전달)
▼
1
🔍 탐색
researcher.md
자료·코드·문서를 출처와 함께 수집
→
2
🔎 검토
fact-checker.md
수집 자료의 정확성·최신성 교차검증
→
3
🔧 제작
builder.md
검증된 자료로만 실제 구현
→
4
✅ 검증
qa-verifier.md
테스트·요구사항 충족 확인

아래는 "결제(payment) 모듈을 새로 구현"하는 작업에 쓰는 4개 파일의 실제 예시다.

① 자료 탐색 — .claude/agents/researcher.md
---
name: researcher
description: 자료·코드 탐색 전문가. 구현/문서 작업을 시작하기 전, 관련 코드·API
  문서·기존 패턴을 출처와 함께 모을 때 PROACTIVELY 사용. 코드는 작성하지 않는다.
tools: Read, Grep, Glob, WebFetch
model: sonnet
---

당신은 자료 조사 전문가입니다. 코드를 작성하지 않습니다.

작업 규칙:
1. 요청 주제와 관련된 코드·문서·API를 빠짐없이 찾는다.
2. 각 항목에 출처를 반드시 붙인다 (파일:줄 번호, URL, 라이브러리 버전).
3. 확실한 사실과 추정을 구분해 표시한다.
4. 반환 형식: "사실 목록 + 출처 + 아직 미확인인 항목".
② 자료 검토 — .claude/agents/fact-checker.md
---
name: fact-checker
description: 조사 결과 검증 전문가. researcher가 모은 자료의 정확성·최신성을
  교차검증할 때 사용. deprecated API·버전 불일치·근거 없는 주장을 걸러낸다.
tools: Read, Grep, Glob, WebFetch, Bash
model: opus
---

당신은 팩트체커입니다. 주어진 "사실 목록"을 의심하는 것이 임무입니다.

각 항목에 대해:
1. 출처를 직접 확인해 참 / 거짓 / 근거부족으로 판정한다.
2. deprecated 되었거나 더 최신 방법이 있으면 지적한다.
3. 검증된 사실만 통과시키고, 탈락 항목은 사유와 함께 따로 보고한다.
③ 제작 — .claude/agents/builder.md
---
name: builder
description: 구현 전문가. fact-checker가 검증한 자료를 바탕으로 실제 코드/문서를
  작성할 때 사용. 전달받은 검증 자료 범위 안에서만 작업하고 추측하지 않는다.
tools: Read, Grep, Glob, Edit, Write, Bash
model: opus
---

당신은 구현 엔지니어입니다.

규칙:
1. 전달받은 '검증된 사실'만 근거로 쓴다. 자료가 부족하면 추측하지 말고
   무엇이 더 필요한지 보고한다 (→ 메인 세션이 researcher를 다시 돌림).
2. 기존 코드 컨벤션·디렉터리 구조를 따른다.
3. 변경한 파일과 그 이유를 요약해 반환한다.
④ 결과 검증 — .claude/agents/qa-verifier.md
---
name: qa-verifier
description: 산출물 검증 전문가. builder가 만든 결과가 요구사항을 충족하고
  정상 동작하는지 확인할 때 PROACTIVELY 사용. 빌드·테스트·요구사항 대조를 수행한다.
tools: Read, Grep, Glob, Bash
model: sonnet
---

당신은 QA 검증자입니다. 만든 사람을 신뢰하지 않고 직접 확인합니다.

검증 절차:
1. 빌드·테스트·린트를 실제로 실행한다 (npm test, tsc --noEmit 등).
2. 원래 요구사항을 항목별 체크리스트로 하나씩 대조한다.
3. 통과/실패를 명확히 보고한다. 실패 시 builder가 다시 고칠 수 있도록
   구체적 위치·원인을 남긴다 (# → 메인 세션이 ③으로 되돌림).
파이프라인 실행 — 메인 세션에 순서를 지시
> 결제(payment) 모듈을 새로 구현해줘. 다음 순서로 진행:
  1. researcher 로 결제 API 문서와 기존 결제 코드를 조사
  2. 그 결과를 fact-checker 로 검증 (deprecated API 거르기)
  3. 검증된 자료로 builder 가 모듈 구현
  4. qa-verifier 로 테스트·요구사항 통과 확인
  5. qa-verifier가 실패를 보고하면 builder로 돌아가 통과까지 3·4 반복
🔗 /goal로 이 파이프라인을 "자동 반복"시키기
검증 통과를 완료 조건으로 걸면, 사람이 매 단계를 챙기지 않아도 4단계 루프가 스스로 돈다 (/goal + 서브에이전트).
/goal payment 모듈이 qa-verifier 검증을 통과할 것.
      검증: `npm test`가 exit 0 + 요구사항 체크리스트 전부 OK.
      방법: researcher→fact-checker→builder→qa-verifier 순으로 진행하고,
            검증 실패 시 builder 단계로 돌아가 반복.
      상한: 25턴 또는 60분.
왜 한 에이전트가 다 하지 않고 4개로 쪼개나
  • 역할 분리 = 품질 — "만드는 자(builder)"와 "검사하는 자(qa-verifier)"를 분리해야 자기 결과를 무비판적으로 통과시키는 일을 막는다.
  • 컨텍스트 격리 — 탐색 단계의 방대한 원자료가 제작 단계 컨텍스트를 오염시키지 않는다. 각 단계는 요약만 다음으로 넘긴다.
  • 모델 최적화 — 탐색·검증은 sonnet, 정밀한 검토·제작은 opus처럼 단계별로 비용/성능을 맞출 수 있다.
  • 재사용 — 한 번 만든 researcher.md·qa-verifier.md는 다른 작업에도 그대로 재활용된다.

백그라운드 기본 · 중첩 · fork 2026 변경

서브에이전트의 실행 방식이 크게 바뀌었습니다. "부르면 메인이 멈춰서 기다린다"는 옛 그림은 더 이상 맞지 않습니다.

변경 내용 기준 버전
백그라운드가 기본 서브에이전트는 기본적으로 백그라운드에서 돌고, 메인 세션은 계속 진행한다. 권한 프롬프트는 메인 세션으로 올라온다 — 자식이 조용히 멈춰 있는 게 아니라, 물어볼 게 생기면 내 화면에 뜬다. ≥ v2.1.198
중첩 spawn 자식이 다시 자식을 띄울 수 있다. 백그라운드 깊이 상한은 5. —
Fork 모드 대화형 세션의 기본 동작. 포크된 쪽이 지금까지의 대화를 물려받는다 — 맥락을 다시 설명할 필요가 없다. —
/fork vs /subtask /fork는 세션 자체를 백그라운드로 복사, /subtask는 옛 포크 서브에이전트. ≥ v2.1.212
언제 무엇을 쓰나
  • 맥락이 필요 없는 조사 → 일반 서브에이전트 (Explore). 깨끗한 컨텍스트에서 시작한다.
  • 지금까지의 대화를 물려받아야 하는 하위 작업 → /subtask.
  • "이 방향도 한번 해볼까" 하는 갈래 실험 → /fork. 원래 세션을 망치지 않고 병렬로 시도한다.

Agent view · Agent teams · 세션 간 메시지 NEW

claude agents — Agent view

돌고 있는 에이전트를 한 화면에서 관리하는 뷰입니다. 여러 작업을 동시에 굴리기 시작하면 사실상 필수가 됩니다.

claude agents            # 에이전트 목록 화면

# 화면에서 할 수 있는 것
#  peek    — 진행 상황을 잠깐 들여다보기
#  attach  — 그 에이전트 세션에 직접 붙기
#  --bg    — 백그라운드로 내려보내기
#  worktree — 별도 작업 트리에서 돌리기

세션 간 메시징 ≥ v2.1.224

실행 중인 다른 세션에게 메시지를 보내고, 목록을 조회할 수 있습니다. 도구 이름은 ListAgents · SendMessage이고, 프롬프트에서는 @로 다른 세션을 멘션할 수도 있습니다(≥ v2.1.232).

활용 — 조사 세션과 구현 세션을 분리해두고 연결하기
# 세션 A: 마이그레이션 영향 범위를 계속 조사 중
# 세션 B: 실제 구현 담당

# 세션 B에서
@세션A 지금까지 찾은 oldClient 호출 지점 목록을 넘겨줘
플랫폼 지원
세션 간 메시징은 macOS·Linux가 v2.1.224부터, Windows가 v2.1.234부터입니다. 안 보이면 claude --version부터 확인하세요.

Agent teams 실험적

여러 에이전트를 팀으로 묶어 협업시키는 실험 기능입니다. 환경변수로 켭니다.

export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
⚠️ 실험 기능이다
플래그로 가려져 있는 기능이므로 동작과 인터페이스가 바뀔 수 있습니다. 또한 -p(헤드리스)에서는 팀이 생성되지 않습니다 — CI 파이프라인의 설계 전제로 삼지 마세요.

9. 훅 (Hooks) 고급

중요한 차이점
CLAUDE.md는 권장사항이지만 훅은 확정적입니다. Claude가 무시할 수 없습니다.

생명주기 이벤트에 자동 실행되는 셸 명령. .claude/settings.json에 설정합니다.

주요 이벤트

이벤트 타이밍 활용 예
PreToolUse 도구 실행 전 위험 명령 차단
PostToolUse 도구 실행 후 파일 저장 후 lint 자동 실행
Stop Claude 대기 상태 완료 알림
SessionStart 세션 시작 초기 설정
PreModelSwitch
PostModelSwitch NEW
모델 전환 전후 비싼 모델로 올라갈 때 기록·경고 (≥ v2.1.251)
team 이벤트 에이전트 팀 생명주기 팀 단위 로깅 (실험 기능과 함께)
조건부 훅
훅 정의에 if 조건을 붙여 특정 상황에서만 돌게 할 수 있습니다. "모든 편집마다 전체 테스트"처럼 무거운 훅을 조건으로 좁히면 체감 속도가 크게 달라집니다.
사용 예시 — 파일 저장 후 자동 lint + 알림
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "npm run lint:fix"
      }]
    }],
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "osascript -e 'display notification \"Claude 대기 중\"'"
      }]
    }]
  }
}
사용 예시 — Python 자동 포맷 (Black + isort)
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [
        { "type": "command", "command": "black ." },
        { "type": "command", "command": "isort ." }
      ]
    }]
  }
}
사용 예시 — 위험 명령 차단
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "grep -E '(rm -rf /|sudo|git push.*--force)' && exit 1 || exit 0"
      }]
    }]
  }
}
# → 위험 명령이 감지되면 차단됨
사용 예시 — 세션 시작 시 환경 검증
{
  "hooks": {
    "SessionStart": [{
      "hooks": [
        { "type": "command", "command": "test -f .env || echo '⚠️  .env 파일 없음'" },
        { "type": "command", "command": "node --version | grep -q v18 || echo '⚠️  Node 18 필요'" }
      ]
    }]
  }
}

10. MCP (Model Context Protocol) & Channels 선택 사항

외부 도구/서비스 연동 표준. GitHub, Gmail, Notion, Slack, PostgreSQL 등.

설치와 로그인

claude mcp add github
claude mcp add notion
claude mcp add gmail

# OAuth가 필요한 서버는 셸에서 바로 로그인 (≥ v2.1.186)
claude mcp login <서버>
claude mcp logout <서버>

전송 방식과 운영

Channels — 세션으로 밀어 넣는 MCP NEW

일반 MCP가 "Claude가 필요할 때 당겨오는" 구조라면, Channels는 반대로 외부에서 세션으로 밀어 넣는 통로입니다. Telegram·Discord·웹훅 같은 소스를 붙여 바깥 이벤트가 세션을 깨우게 만들 수 있습니다.

claude --channels <설정>
언제 쓰나
장시간 도는 세션에 "빌드 깨졌다", "이슈가 올라왔다" 같은 외부 신호를 실시간으로 주입하고 싶을 때. /loop처럼 주기적으로 물어보는 대신, 사건이 찾아오게 만드는 방식입니다.
사용 예시 — GitHub 통합
# 이슈 자동 구현
이슈 ENG-4521의 요구사항대로 구현하고 PR 만들어줘.
관련 코드 검색 → 구현 → 테스트 → 커밋 → PR 생성까지.

# PR 리뷰 자동화
PR #234의 변경사항을 리뷰하고 댓글로 피드백 남겨줘.

# 이슈 정리
'bug' 라벨이 붙은 오픈 이슈를 우선순위별로 정렬해줘.
사용 예시 — 멀티 서비스 워크플로우
# 시나리오: 신규 기능 출시 알림
다음을 순서대로 진행해줘:
1. GitHub에서 v2.0 마일스톤의 머지된 PR 목록 가져오기
2. Notion '릴리즈 노트' DB에 v2.0 페이지 생성
3. PR 제목과 설명을 요약해서 페이지에 정리
4. Slack #releases 채널에 알림 보내기
5. Gmail로 베타 사용자들에게 안내 메일 초안 작성
사용 예시 — 데이터베이스 작업
# PostgreSQL MCP 활용
PostgreSQL DB에서 최근 24시간 이내
가입한 사용자 수와 활성 비율을 조회해줘.

# 결과를 코드에 반영
위 쿼리 결과를 바탕으로 @src/dashboard/stats.ts 의
가입자 통계 표시 로직을 업데이트해줘.

11. 설정 파일 계층

파일 위치 용도 커밋?
CLAUDE.md 프로젝트 루트 프로젝트 지식/규칙 (마크다운) O
CLAUDE.local.md 프로젝트 루트 개인 메모 X
~/.claude/CLAUDE.md 홈 디렉토리 전역 지식 (모든 프로젝트) —
.claude/settings.json 프로젝트 권한/훅/MCP (JSON) O
.claude/settings.local.json 프로젝트 개인 동작 설정 X
~/.claude/settings.json 홈 디렉토리 사용자 전역 설정 —
managed settings OS별 관리형 경로 조직이 강제하는 설정 (모델·권한·MCP·프록시). 사용자 설정으로 못 푼다 —

우선순위: managed > local > project > user (위쪽이 아래를 덮음)

💡 환경변수는 셸 export가 아니라 settings.json의 env에
Claude Code는 백그라운드 supervisor 프로세스를 함께 띄우기 때문에, 셸에서 export한 값이 모든 하위 프로세스에 전달된다고 보장할 수 없습니다. 프록시·CA 인증서 같은 설정은 settings.json의 env 블록이나 관리형 설정에 넣으세요. ↓ 19장
일시적으로 전부 끄고 싶을 때 — --safe-mode
claude --safe-mode로 실행하면 CLAUDE.md · 스킬 · 플러그인 · 훅 · MCP가 모두 비활성화된 채로 시작합니다. "내 설정 때문인가?"를 가려낼 때 가장 빠른 방법입니다.

좋은 CLAUDE.md 예시

# CLAUDE.md

## 응답 언어
- 한국어로 응답 (존댓말)

## 코드 스타일
- TypeScript strict mode (any 금지)
- ES2024 modules (import/export)
- 2칸 들여쓰기, 80자 라인

## 테스트
- 프레임워크: pytest
- 단일 테스트만 실행 (전체 X, 속도 문제)
- 테스트 파일: `tests/test_*.py`

## 자주 하는 실수
- .env 파일 누락 확인 필수
- DB 마이그레이션 후 반드시 테스트 실행

## 안티패턴 (금지)
- console.log → `@src/logger` 사용
- 직접 fetch → `@src/api/client` 사용
CLAUDE.md 작성 원칙
  • 포함: 빌드/테스트 명령어, 코드 스타일, 자주 하는 실수, 아키텍처 결정
  • 제외: 코드를 보면 알 수 있는 것, 자주 변하는 정보
  • 길이: 500줄 이하 권장

12. 스킬 (Skills) & 플러그인 (Plugins)

커스텀 명령어는 스킬로 통합됐다
예전에 .claude/commands/에 두던 커스텀 슬래시 명령은 이제 스킬 체계로 흡수됐습니다. 기존 .claude/commands/ 경로는 계속 호환되므로 급히 옮길 필요는 없지만, 새로 만들 때는 스킬로 쓰는 게 맞습니다. /doctor·/code-review·/loop·/design 같은 내장 명령들도 실제로는 번들된 스킬입니다.

스킬 만들기

.claude/skills/fix-issue/SKILL.md 생성:

---
name: fix-issue
description: GitHub 이슈를 분석하고 수정
argument-hint: "[issue-number]"
allowed-tools: Bash(gh *) Read Write Edit
---

GitHub 이슈 #$ARGUMENTS를 수정한다:
1. `gh issue view $ARGUMENTS`로 이슈 읽기
2. 관련 코드 검색
3. 구현 및 테스트
4. PR 생성
호출
/fix-issue 123

알아두면 좋은 frontmatter 필드

필드효과
context: fork메인 대화를 물려받은 포크된 컨텍스트에서 실행
background스킬을 백그라운드로 실행
paths특정 경로를 다룰 때만 활성화 — 컨텍스트 낭비를 줄인다
model · effort스킬 단위로 모델·추론 강도를 고정
스킬이 컨텍스트를 먹고 있진 않은지
스킬은 활성화될 때 설명이 컨텍스트에 들어갑니다. 개수가 늘면 조용히 비용이 됩니다 — /skill-doctor로 안 쓰는 스킬과 그 컨텍스트 비용을 주기적으로 점검하세요.

스킬 vs 플러그인

측면 스킬 플러그인
저장소 .claude/skills/ 독립 디렉토리
배포 프로젝트에 직접 마켓플레이스
호출 /skill-name /plugin:skill-name
포함 가능 스킬, 훅 스킬, 훅, MCP, LSP

플러그인 배포·개발 경로

13. 프롬프트 작성 팁

좋은 프롬프트의 3대 요소
  1. 컨텍스트: @ 문법으로 관련 파일 명시 + 제약 조건
  2. 명세: 입력/출력 예시 + 엣지 케이스 + 검증 기준
  3. 단계 분해: Plan → Implement → Verify 사이클

13-1. 명확한 컨텍스트 제공 ⭐⭐⭐ 가장 중요

@ 멘션으로 관련 파일 지정

❌ BAD
로그인 기능 구현해줘.
이전 코드 패턴이랑 맞춰서 JWT 사용해야 해.
✅ GOOD
@src/auth/session.ts 의 기존 JWT 흐름을 유지하면서
@docs/auth-architecture.md 의 Google OAuth 흐름을 추가해줘.

참고:
- @src/auth/middleware.ts (미들웨어 패턴)
- @src/config/env.example (환경변수)
- @tests/auth.test.ts (테스트 스타일)

제약 조건 명시

❌ BAD
대시보드 만들어줘.
✅ GOOD
대시보드 구현. 제약 조건:
- UI: 기존 @shadcn/ui만 사용 (새 라이브러리 X)
- 상태: @src/store의 Zustand 패턴
- 스타일: Tailwind CSS만 (CSS-in-JS 금지)
- 아이콘: lucide-react만

환경변수:
- NEXT_PUBLIC_API_URL (필수)
- DASHBOARD_ENABLE_ANALYTICS (선택, 기본 false)

13-2. 명세 기반 프롬프팅 ⭐⭐⭐

입력/출력 예시 (Few-shot)

❌ BAD
이메일 유효성 검사 함수 만들어줘.
✅ GOOD
validateEmail(email: string): boolean 만들어줘.
RFC 5322 표준 준수.

✅ "user@example.com" → true
✅ "john.doe+tag@company.co.uk" → true
❌ "user@.com" → false (@앞 비어있음)
❌ "user@domain" → false (도메인 누락)
❌ "user space@x.com" → false (공백 불가)
❌ "" → false

엣지 케이스 명시 (가장 중요!)

사용 예시
login(email, password): Promise<AuthToken> 구현.

정상: 일치 → 토큰 반환

엣지 케이스 (반드시 처리):
1. 존재하지 않는 사용자 → 404
2. 비밀번호 틀림 → 401
3. 3회 연속 실패 → 30분 잠금
4. 이미 로그인 → 새 토큰 발급 (기존 무효화)
5. 이메일 미인증 → 403 + 인증 메일 재전송
6. 빈 문자열 → 400
7. null/undefined → TypeError

검증 기준 제공

공식 문서 핵심 원칙
"Claude performs dramatically better when it can verify its own work."
→ 테스트, 스크린샷, 메트릭으로 완성 기준을 측정 가능하게 만들어주세요.
UI 작업 검증 예시
@apps/web/src/pages/profile.tsx 리뉴얼.

디자인 목표:
- 세로 → 가로 2컬럼
- 배경: 흰색 → 그라데이션
- 버튼: 파란색 → 보라색

검증 방법:
1. 스크린샷 비교 (before/after.png)
2. 반응형 (375px/768px/1200px)
3. 접근성: 색상 대비 4.5:1 이상

완성 기준:
- 스크린샷에서 의도와 일치
- npm run test:a11y 통과

13-3. 단계적 작업 분해 ⭐⭐

공식 가이드의 Explore → Plan → Implement → Commit 워크플로우.

❌ BAD
Google OAuth 통합해줘.
✅ GOOD
# 1단계: 분석 (Shift+Tab으로 Plan 모드)
@src/auth/session.ts 읽고 현재
JWT 흐름을 설명해줘.

# 2단계: 계획
- 콜백 엔드포인트 위치
- 토큰 매핑 방식
- 필요 환경변수
- DB 스키마 변경

# 3단계: 구현 (Shift+Tab으로 Auto 또는 Accept edits)
계획대로 구현 + 테스트

# 4단계: 검증 후 PR 생성

Plan Mode 사용 시점

Plan Mode 사용 (하나만 해당돼도) 건너뛰기 가능 (모두 해당)
5+ 파일 수정
DB 스키마 변경
아키텍처 패턴 변경
처음 보는 코드베이스
단일 파일 수정
논리 단순 (오타, 이름 변경)
테스트 있음
잘 아는 코드베이스

13-4. 역할 부여 ⭐⭐

❌ BAD
코드 리뷰해줘.
✅ GOOD
senior backend engineer로서
@src/api/users/create.ts 를 리뷰해줘.

체크 포인트:
- 보안 (SQL injection, XSS, CSRF)
- 성능 (N+1 쿼리, 무거운 작업)
- 에러 처리 (누락 케이스)
- 테스트 가능성

각 이슈마다 코드 위치와 수정 방법 명시.

역할 선택 가이드

역할 포커스
senior engineer 아키텍처, 패턴, 최적화
security expert 취약점, 인증, 암호화
performance engineer 속도, 메모리, DB
QA engineer 엣지 케이스, 커버리지
technical writer 명확성, 예시, 구조

13-5. 출력 형식 제어 ⭐⭐

사용 예시 — 코드 스타일 지정
TypeScript로 구현. 다음 스타일:

코드 스타일:
- ES2024 modules
- strict 타입 (any 금지)
- 함수형 (mutable 최소화)
- 2칸 들여쓰기, 80자 라인

이름 규칙:
- 함수: camelCase
- 상수: UPPER_SNAKE_CASE
- 클래스/인터페이스: PascalCase

에러:
- 예외 throw (undefined 반환 금지)
- @src/errors의 커스텀 에러 클래스 사용

13-6. TDD 스타일 프롬프팅 ⭐⭐

사용 예시 — 테스트부터 작성
processPayment()를 TDD로 구현해줘.

1단계: @tests/payment.test.ts에 테스트 작성
- ✅ 정상: amount, currency → 성공
- ❌ 잔액 부족 → PaymentInsufficientError
- ❌ 미지원 통화 → PaymentCurrencyError
- ❌ 부정 거래 → PaymentSuspiciousError
- ⚠️ 네트워크 3회 실패 → 롤백

2단계: 테스트 통과하는 코드 구현
- 각 테스트 먼저 실행 (실패 확인)
- 통과시키는 최소 구현
- 진행 보고: "X/7 통과"

3단계: 전체 테스트 실행
4단계: PR 생성

13-7. 반복 개선 패턴 ⭐⭐

점진적 개선 사이클
1차: "로그인 함수 구현해줘"
  → 기본 구현 완료

2차: "DB 쿼리 관점에서 개선점 찾아줘"
  → N+1 쿼리 발견 → 수정

3차: "보안 문제 찾아줘 (입력 검증, 토큰)"
  → XSS 취약점 발견 → 수정

4차: "엣지 케이스 테스트 추가"
  → 테스트 보강

5차: /simplify + JSDoc 추가

13-8. 컨텍스트 관리 ⭐⭐⭐

컨텍스트 문제 신호
  • 이전 지시사항 무시하기 시작
  • 같은 실수 반복
  • "컨텍스트 거의 가득" 경고
상황별 대응
# 완전히 다른 작업 시작
/clear

# 같은 작업 계속하되 정리
/compact "최신 auth 구현과 테스트 결과 보존"

# 특정 시점부터 정리
Esc Esc → Summarize 선택
한 세션, 한 작업 원칙
한 세션에서 로그인, 대시보드, 마이그레이션을 모두 다루면 컨텍스트가 폭발합니다. 작업별로 worktree를 분리하거나, 작업 사이마다 /clear를 실행하세요.

13-9. 흔한 실수 패턴 (Anti-patterns)

너무 모호한 요청

❌ BAD
더 좋게 만들어줘
✅ GOOD
다음 관점에서 개선:
1. 성능: 쿼리 최적화
2. 보안: 입력 검증
3. 테스트: 엣지 케이스

한 번에 너무 많이 요구

❌ BAD
1. 인증
2. 대시보드
3. 결제
4. 이메일
5. 모바일앱
✅ GOOD
먼저 1번 인증만 구현
→ 완료/검증 후
→ 2번 대시보드 시작

검증 기준 부재

❌ BAD
검색 기능 만들어줘
✅ GOOD
검색 + 검증:
1. 단위 테스트
2. 성능: 100만 레코드 < 100ms
3. UI: 실시간 결과 + 로딩

컨텍스트 없는 프롬프트

❌ BAD
(새 세션) "이 함수 개선해줘"
✅ GOOD
@src/payment.ts 의 N+1 쿼리
문제 해결해줘

13-10. 고급 기법 중급+

Extended Thinking (복잡한 알고리즘)

키: Option+T (맥) / Alt+T로 토글

사용 예시
다음 문제 알고리즘 설계 (깊은 사고 단계 포함):

문제: 100만 주문 데이터에서 사기 거래 실시간 탐지
- 지연 < 100ms
- 메모리 < 500MB
- 오탐지율 < 1%
- 온라인 학습 지원

다양한 접근법 검토 → 장단점 분석 → 최선 솔루션 구현

Sub-agent로 병렬 조사

사용 예시
sub-agent로 @src/ 디렉토리를 탐색해줘.
주요 구조, 의존성, 데이터 흐름 파악 후 요약 보고.

# → 메인 컨텍스트 보존, 별도 컨텍스트에서 탐색

스크린샷/이미지 활용 (UI 작업)

사용 예시
[스크린샷 붙여넣기]

이 디자인을 React 컴포넌트로 구현해줘.
- Tailwind CSS
- 반응형 + 호버/포커스 상태
- 구현 후 스크린샷 찍어서 비교

맥 스크린샷: Cmd+Shift+4 → 영역 선택 → Claude Code에서 Ctrl+V

13-11. 언어/프레임워크별 팁

Python

사용 예시
Python 3.11+ 환경:
- poetry로 의존성 관리
- 사용 가능: requests, pandas, numpy, pydantic
- 테스트: pytest

스타일:
- PEP 8 준수
- Type hints 필수 (from typing import ...)
- Docstring: Google 스타일

TypeScript/React

사용 예시
타입 안정성:
- strict mode (tsconfig.json)
- any 금지
- React.FC 사용 X, 함수 + interface Props
- 제네릭은 extends로 제약

컴포넌트 구조:
UserList/
├── UserList.tsx (컨테이너)
├── UserListItem.tsx
├── UserDetailModal.tsx
└── useUserList.ts (훅)

상태: @src/store의 Zustand

Node.js/Express (API 명세)

사용 예시
POST /api/payments

요청:
{
  "userId": "uuid",
  "amount": number (센트),
  "currency": "USD" | "EUR" | "KRW",
  "idempotencyKey": "string"
}

응답 (200):
{
  "transactionId": "uuid",
  "status": "completed"
}

에러:
- 400: 형식 오류
- 402: 결제 거절
- 409: idempotencyKey 중복 → 이전 결과
- 503: 결제 서버 장애 + Retry-After

13-12. 코드 품질 향상 프롬프트 모음 ⭐⭐⭐

리팩토링 요청

사용 예시
다음 원칙으로 리팩토링:

1. DRY: 중복 로직 추출
2. SOLID:
   - 단일 책임 (한 함수 = 한 일)
   - 개방-폐쇄
   - 인터페이스 분리
3. 가독성:
   - 변수명 명확
   - 함수 길이 < 20줄
   - 중첩 < 3단계

리팩토링 후:
- 기존 테스트 모두 통과 확인
- Before/After 요약

성능 최적화

사용 예시
@src/features/search/search.ts 최적화:

측정 항목:
1. 응답 시간 목표 < 100ms
2. 메모리 사용
3. DB 쿼리 (N+1, 인덱스)

기법:
- 쿼리 배치 처리
- 캐싱 (Redis)
- 인덱싱 전략
- 알고리즘 개선

결과:
1. 벤치마크 전/후 비교
2. 메모리 프로파일
3. 쿼리 최적화 설명

보안 검토

사용 예시
보안 전문가로서 검토:

1. 입력 검증 (SQL injection, XSS, CSRF)
2. 인증/인가 (JWT, 권한, 세션)
3. 데이터 보호 (암호화, 로그)
4. API 보안 (rate limit, CORS)

결과:
- 심각도 (High/Medium/Low)
- 수정 방법 (코드 예시)

코드 리뷰

사용 예시
@src/auth/login.ts PR 리뷰:

항목:
1. 정확성
2. 테스트 커버리지
3. 성능 (병목)
4. 보안 (취약점)
5. 스타일 일관성
6. 문서화

결과:
[ ] 승인 가능
[ ] 변경 필요
[ ] 변경 + 재검토

각 항목별 구체적 피드백 + 코드 예시

14. 세션 운영 & 멀티세션 복원 활용

여러 작업을 위해 Claude 세션을 동시에 여러 개 띄워두고 쓰다 보면 "컴퓨터를 껐다 켜면 그 세션들을 전부 다시 띄우는 게 번거롭다"는 문제에 부딪힌다. 결론부터 말하면 — 세션을 계속 켜둘 필요가 없다. 모든 세션은 디스크에 저장되므로, 이 문제는 "유지"가 아니라 "복원"으로 풀면 된다.

14-1. 세션은 이미 저장되어 있다 — resume

저장 위치
모든 세션 대화는 자동으로 디스크에 기록된다. 터미널을 닫거나 재부팅해도 사라지지 않는다.
~/.claude/projects/<프로젝트 경로>/<세션ID>.jsonl

그래서 재부팅 후엔 세션을 다시 만드는 게 아니라 이어서 여는 것이다.

# 그 작업을 하던 프로젝트 폴더로 이동해서
cd ~/projects/my-app

claude -c            # --continue : 이 폴더의 "가장 최근 세션"을 바로 이어서 열기
claude -r            # --resume   : 이 폴더의 세션 목록에서 골라 열기
claude -r <세션ID>  # 특정 세션을 ID로 직접 지정해 열기
💡 핵심
세션 안에서는 /resume 으로도 다른 세션으로 갈아탈 수 있다. 재부팅은 세션을 지우지 않는다 — 복원만 편하게 만들면 문제 끝.

14-2. 한 번에 복원하기 — 런처

프로젝트마다 cd → claude -c 를 손으로 반복하는 대신, 부팅 후 명령 하나(또는 더블클릭)로 모든 세션을 한꺼번에 여는 방법이다. 세 가지 접근이 있다.

방법특징재부팅 생존
셸 스크립트 + 터미널 탭
(osascript)
macOS에서 Terminal/iTerm 탭을 여러 개 자동으로 열고 각 탭에서 cd … && claude -c 실행. 가장 직관적. 스크립트만 다시 실행하면 됨
tmux (터미널 멀티플렉서) 여러 세션을 한 창의 분할/창으로 묶어 관리. 터미널을 닫아도 detach로 살아있음. 기본은 X. tmux-resurrect/continuum 플러그인으로 레이아웃 복원 가능
셸 함수/별칭 ~/.zshrc 에 claude-work 같은 함수 하나 정의해 자주 쓰는 세트를 한 단어로 호출. 함수만 다시 호출
개념 예시 — tmux로 프로젝트별 창을 한 번에 띄우기
# 세션 하나에 프로젝트별 window를 만들고 각각 claude -c 실행
tmux new-session  -d -s work -c ~/projects/app-a   # 창1
tmux send-keys    -t work 'claude -c' C-m
tmux new-window   -t work    -c ~/projects/app-b   # 창2
tmux send-keys    -t work 'claude -c' C-m
tmux attach       -t work                          # 한 화면에서 창 전환하며 사용
개념 예시 — macOS 터미널 탭을 자동으로 여러 개 열기
# 각 프로젝트를 새 Terminal 탭에서 이어서 열기 (osascript)
for dir in ~/projects/app-a ~/projects/app-b ~/projects/api; do
  osascript -e "tell application \"Terminal\" to do script \"cd $dir && claude -c\""
done
자동 실행까지 원하면
위 스크립트를 macOS 로그인 항목(Login Items) 이나 LaunchAgent 에 걸면 부팅 후 자동으로 열린다. 다만 대화형 TUI라 "부팅 시 자동 시작"보다 "더블클릭/한 단어 호출"이 더 안전하다 — 의도치 않은 작업 재개를 막을 수 있다.

14-3. 애초에 세션 수를 줄이기 — 서브에이전트로 컨텍스트 분리

세션을 여러 개로 나눈 이유가 순수하게 "컨텍스트 오염 방지"라면, 세션을 늘리는 대신 서브에이전트로 푸는 게 더 깔끔하다.

관점 전환
여러 세션 = 컨텍스트 격리 라고 생각했지만, 1개 세션 + 서브에이전트 로도 같은 격리를 얻는다. 서브에이전트는 자기만의 컨텍스트에서 일하고 요약만 돌려주기 때문이다.
  • 관리할 터미널/세션 수가 줄어든다 → 복원 부담도 함께 감소
  • 탐색·검토·제작 같은 작업은 멀티에이전트 파이프라인으로 한 세션 안에서 처리
  • 정말로 독립적인 "진행 중 대화"만 별도 세션으로 남기면 된다

14-4. 컴퓨터를 꺼도 되는 경우 — 클라우드 예약 실행

작업이 반복적이거나 자동화 가능하다면(예: 매일 아침 PR 점검, 야간 테스트 수선, 정기 리포트), 내 컴퓨터에 세션을 띄워둘 이유가 없다. cron 기반 원격 에이전트로 옮기면 컴퓨터가 꺼져 있어도 클라우드에서 실행된다.

방향
  • /schedule 류의 예약 실행(routine) — 정해진 시각/주기에 원격에서 에이전트 실행
  • 로컬에서 길게 도는 작업은 /loop(주기 반복) · /background(백그라운드 태스크)와 조합
  • 돌아가는 상태를 보고 싶으면 claude agents(Agent view)에서 peek·attach
  • 폰에서 확인·조작하려면 Remote Control(claude remote-control) — 단, 커스텀 게이트웨이와는 충돌한다 (18장)
  • 조직 인프라 위에서 돌려야 한다면 self-hosted environments(claude self-hosted-runner, Team/Enterprise 퍼블릭 베타)
  • 핵심: "사람이 지켜봐야 하는 대화"는 로컬 세션, "스스로 돌아도 되는 일"은 클라우드 예약으로 분리

14-5. 어떤 방법을 고를까

상황추천 방법
독립적인 진행 중 대화가 여럿 꼭 필요하다 14-2 런처 — 부팅 후 한 명령으로 claude -c 일괄 복원
세션을 나눈 이유가 컨텍스트 분리뿐이다 14-3 서브에이전트 — 1세션으로 통합, 복원 대상 자체를 줄임
그 작업들이 반복적/자동화 가능하다 14-4 클라우드 예약 — 컴퓨터를 꺼도 실행
대부분의 현실적인 경우 조합 — 불필요한 세션은 14-3로 줄이고, 남은 건 14-2로 빠르게 복원
⚠️ 흔한 오해
"세션을 끄면 작업 맥락을 잃는다"는 틀렸다. 대화는 .jsonl로 보존되어 claude -c/-r로 그대로 돌아온다. 진짜 비용은 "띄워둔 세션 개수만큼의 메모리·주의력"이므로, 세션 수를 줄이고 복원을 자동화하는 쪽이 거의 항상 낫다.

15. ultra 키워드 & 스킬·메모리 — 무엇을 언제 쓰나 활용

"항상 자연어 프롬프트로만" 작업하던 사람이 자주 듣는 단어들 — ultrathink, /ultraplan, Superpowers — 의 정체와 진위를 정리하고, 스킬·메모리·프롬프트 중 무엇을 언제 쓰면 좋은지 의사결정 기준을 제시합니다.

핵심 한 줄
반복 작업이 많다면 메모리(규칙 고정) + 스킬 1~2개(절차 자동화) 가 가장 남는 장사다. ultrathink는 정확도가 필요할 때 가볍게 한 단어, Superpowers는 선택이다. /ultraplan은 제거됐으니 이제 후보가 아니다.

15-1. ultra 계열 키워드 — 실재 여부와 사용법

키워드 실재 / 종류 어떻게 쓰나 · 무엇을 하나
ultrathink ✅ 네이티브 매직 키워드 프롬프트 아무 곳에나 ultrathink라고 적으면 그 턴 한 번만 추론을 깊게 한다. 슬래시 명령이 아니다. ("think / think hard" 같은 단계 사다리는 현재 공식 보장 X — ultrathink 하나만 확실)
/ultraplan ❌ 제거됨 브라우저에서 계획을 검토하던 클라우드 계획 세션 명령이었으나 현재는 없다. 오래된 글에서 이 명령을 보면 그대로 따라 하지 말고, Plan 모드·/design·/goal로 대체하라.
ultracode ✅ 네이티브 설정 추론을 xhigh로 올리고 워크플로(멀티에이전트) 자동 오케스트레이션을 켠다. 큰 작업용.
effort levels ✅ 별도 개념 low · medium · high · xhigh · max. 세션 전체의 추론 강도. (위 키워드들과 다른 축)
사용 예시 — ultrathink는 "정확도가 필요한 순간"에만
# 광학 수차 다이어그램의 물리 검수처럼 틀리면 안 되는 작업
ultrathink 비점수차 그림에서 자오/구결 초점선 방향이 표준과 맞는지 검증해줘

# 평범한 작업엔 굳이 붙일 필요 없다 (지연·토큰만 늘어남)
central_bank.html 맨 아래에 page-tools 블록 추가해줘

15-2. Superpowers — 서드파티 플러그인

Superpowers는 Jesse Vincent(obra)가 만든 서드파티 Claude Code 플러그인입니다. Anthropic 공식이 아니므로 공식 마켓플레이스 검색에는 잡히지 않습니다(= "없는 기능"이 아니라 "공식이 아님"). 브레인스토밍·계획·TDD·git 워크플로 등 스킬 묶음을 제공하며, 소프트웨어 개발 지향이 강합니다.

설치 (obra 자체 마켓플레이스)
# 1) obra 마켓플레이스 등록
/plugin marketplace add obra/superpowers-marketplace
# 2) 플러그인 설치
/plugin install superpowers
# 설치 후 /plugin 으로 포함된 스킬·명령 확인
⚠️ 정적 HTML 학습 사이트라면
Superpowers는 TDD·git 중심이라 문서/HTML 위주 작업엔 효용이 작습니다. 쓸 만한 부분(브레인스토밍·계획 스킬)은 직접 만든 작은 스킬로 대체하는 편이 더 깔끔합니다.

15-3. 프롬프트 vs 스킬 vs 메모리 — 무엇이 다른가

방식 무엇 언제 강한가
자연어 프롬프트 매번 직접 지시 일회성·탐색적 작업. 매번 "어떻게"를 다시 설명해야 함
메모리
(CLAUDE.md / MEMORY.md)
세션을 넘어 유지되는 규칙·맥락 매번 같은 규칙을 다시 말하기 싫을 때. 작성 컨벤션·폴더 구조·선호(다이어그램 우선 등)를 한 번 박아두면 매 세션 자동 적용
스킬
(/my-skill)
반복 절차를 한 명령으로 고정 같은 다단계 작업을 반복할 때. 문단짜리 지시를 명령 하나로 압축·공유
에이전트 vs 스킬 vs 메모리 한 줄 구분
에이전트 = "누가(분리된 일꾼)" · 스킬 = "절차를 고정" · 메모리 = "규칙·맥락을 기억". 셋은 경쟁이 아니라 층이다.

15-4. 추천 우선순위 (반복 작업이 많은 경우)

순위 무엇 왜 / 예시
① 메모리 / CLAUDE.md 가장 ROI 큼. 반복 규칙(컴포넌트 클래스·index 등록 형식·팔레트·다크모드)을 프로젝트 CLAUDE.md에 고정 → 매 세션 재설명 불필요
② 스킬 1~2개 가장 반복적인 기계적 작업을 명령화. 예: /new-page <주제>(골격+목차+등록 스캐폴딩), /add-diagram(겹침 방지 규칙 자동 적용)
③ ultrathink 상황용. 정확도가 중요한 순간에만 단어 하나(검수·까다로운 계산·다중 파일 동기화)
④ /advisor · /effort 가끔. 판단이 갈리는 설계 결정에서 더 강한 모델 자문(/advisor, 실험적)이나 추론 강도 상향(/effort xhigh). 점진적 섹션 추가엔 과함
⑤ Superpowers 선택. 개발(TDD·git) 지향이라 문서 사이트엔 효용 작음 — 보류 또는 아이디어만 차용

16. 샌드박스 (Sandboxing) NEW

권한 모드가 "물어볼까 말까"를 정한다면, 샌드박스는 "애초에 못 하게" 만드는 장치입니다. Bash 실행을 OS 수준에서 격리하며, macOS는 Seatbelt, Linux는 bubblewrap을 씁니다.

권한 모드와 샌드박스는 다른 축이다
둘은 독립적이고, 조합해서 씁니다. 실무에서 가장 쓸 만한 조합은 "Auto 모드 + 샌드박스" — 승인 피로는 분류기가 줄여주고, 실제 파괴 가능 범위는 커널이 막아줍니다. 승인 프롬프트를 눌러주는 것만으로는 안전하지 않습니다.
기능 설명
/sandbox 세션 안에서 샌드박스 상태 확인·전환
네트워크 allowlist 샌드박스 안에서 어떤 호스트로 나갈 수 있는지를 목록으로 제한
credential mask 자격 증명이 샌드박스 프로세스에 노출되지 않도록 가린다
네이티브 Windows WSL2 사용을 권장한다
언제 켜나
# 남의 저장소를 처음 돌려볼 때
# 설치 스크립트·빌드가 무엇을 하는지 모를 때
# 자율 루프(/goal, /loop)를 오래 돌려둘 때

→ 권한을 느슨하게 풀더라도 샌드박스는 켜두는 편이 낫다.
  "Bypass + 샌드박스 없음"이 가장 위험한 조합이다.

17. 헤드리스 · CI · Agent SDK 자동화

대화형 TUI 없이 스크립트에서 호출하는 방식입니다. CI 파이프라인, 야간 배치, 훅 안에서의 재귀 호출 등에 씁니다.

기본 형태

claude -p "스테이징된 변경을 리뷰해줘"        # --print 와 동일

# 출력 형식
claude -p "…" --output-format text | json | stream-json
claude -p "…" --json-schema schema.json      # 구조화된 결과 강제
claude -p "…" --forward-subagent-text            # 자식 출력까지 흘려보내기

CI에서는 --bare

💡 CI 권장 플래그
--bare는 훅 · 스킬 · MCP · CLAUDE.md 자동 로드를 건너뜁니다. 로컬 개발 환경의 설정이 CI 결과에 섞여 들어가는 걸 막아주므로, 재현 가능한 파이프라인을 만들려면 사실상 필수입니다. 공식 문서는 향후 -p에서 이 동작이 기본이 될 예정이라고 밝히고 있습니다.

헤드리스에서의 권한

플래그 역할
(기본) -p의 시작 권한은 Manual이다 — Auto 자동 전환 대상이 아니다
--permission-mode <모드> dontAsk 등으로 명시 지정
--allowedTools "…" 쓸 수 있는 도구를 화이트리스트로 제한
--permission-prompts none NEW 프롬프트를 띄우는 대신 자동으로 거부. 무인 실행에서 세션이 멈춰 있는 사고를 막는다 (≥ v2.1.259)
CI 예시 — 재현 가능하고 멈추지 않는 실행
claude -p "테스트 실패 원인을 요약하고 수정 패치를 제안해줘" \
  --bare \
  --output-format json \
  --permission-mode dontAsk \
  --allowedTools "Read,Grep,Glob,Bash(npm test)" \
  --permission-prompts none
⚠️ 헤드리스에서 안 되는 것
Agent teams는 -p에서 생성되지 않습니다. 병렬 협업이 필요한 파이프라인이라면 팀 대신 서브에이전트·/fork 또는 외부 오케스트레이션으로 설계하세요.

Agent SDK

Python·TypeScript용 Agent SDK는 CLI와 같은 엔진을 씁니다. 셸 명령을 문자열로 조립하는 대신 프로그램 안에서 세션을 다루고 싶을 때 쓰며, 동작 모델(권한·도구·서브에이전트)은 위에서 설명한 것과 동일합니다.

18. 플랫폼 — CLI 밖의 Claude Code

이 가이드는 CLI 중심이지만, 같은 엔진이 여러 표면(surface)에서 돌아갑니다. 무엇이 정식 기능이고 무엇이 아직 프리뷰인지 구분해 두는 게 중요합니다.

표면 상태 비고
Claude in Chrome 정식(GA) --chrome 또는 /chrome으로 붙인다. claude.ai 로그인이 필요하다.
Desktop 확장 중 Linux 베타, 내장 브라우저, iOS Simulator 패널(베타)
Remote Control 프리뷰 졸업 claude remote-control — 폰에서 device card로 세션을 조작한다
Computer use 리서치 프리뷰 CLI는 macOS의 Pro/Max, Desktop은 macOS·Windows. 안정 기능으로 전제하지 말 것
Screen reader mode 제공 VoiceOver·NVDA를 위한 선형 텍스트 UI
Windows 개선됨 Git Bash가 더 이상 필수가 아니다. PowerShell 도구를 지원한다
VS Code 지속 개선 Focus view, 아카이브, Remote Control, MCP UI
⚠️ Remote Control과 커스텀 게이트웨이는 충돌한다
Remote Control은 Anthropic API에 직접 연결돼야 동작합니다. ANTHROPIC_BASE_URL로 사내 LLM 게이트웨이를 태워 놓은 환경에서는 기대대로 동작하지 않습니다. ↓ 19장

19. 기업 네트워크 · 게이트웨이 · 자체 호스팅 조직 환경

사내망·프록시 뒤에서 Claude Code를 돌릴 때 반복해서 걸리는 지점들입니다.

항목 내용
프록시 HTTPS_PROXY · HTTP_PROXY · NO_PROXY
SOCKS 공식 미지원. SOCKS만 열려 있는 망이라면 HTTP(S) 프록시를 따로 마련해야 한다
CA · mTLS OS 인증서 저장소 + NODE_EXTRA_CA_CERTS. 클라이언트 인증서·키 지원, 인증서가 갱신되면 다시 읽는다
Allowlist api.anthropic.com, claude.ai, platform.claude.com, mcp-proxy.anthropic.com, bridge.claudeusercontent.com(Chrome), Artifacts 호스트 등
설정 위치 백그라운드 supervisor 때문에 셸 export만으로는 부족하다 → settings.json의 env 또는 관리형 설정에 넣을 것
ANTHROPIC_BASE_URL 추론 트래픽을 사내 LLM 게이트웨이로 보낸다. 모델 선택 로직은 바꾸지 않는다. Remote Control은 직접 연결이 필요해 충돌한다
Self-hosted environments Team/Enterprise 퍼블릭 베타. claude self-hosted-runner로 클라우드 세션을 조직 인프라 위에서 돌린다
프로세스 래퍼 CLAUDE_CODE_PROCESS_WRAPPER / processWrapper — 사내 런처를 앞단에 끼운다
⚠️ 게이트웨이 뒤에서 /fast가 안 될 때
Fast mode의 사용 가능 여부 확인은 ANTHROPIC_BASE_URL과 무관하게 api.anthropic.com을 직접 호출합니다. 게이트웨이만 열어두고 이 호스트를 막아뒀다면 /fast가 동작하지 않습니다 — allowlist를 확인하세요.

20. 체크리스트 & 요약

프롬프트 작성 체크리스트

시작 전

프롬프트 작성 시

시작할 때 — 환경 점검 추가

실행 중

완료 후

핵심 한 줄 요약

  • Shift+Tab(권한 모드) + @파일 + /clear — 이 세 가지만 익혀도 Claude Code 작업이 달라집니다.
  • 좋은 프롬프트 = 컨텍스트 + 명세 + 검증 기준. 3박자가 맞으면 한 번에 끝납니다.
  • 반복 규칙은 CLAUDE.md에. 매번 프롬프트에 쓰지 마세요.
  • 한 세션 = 한 작업. 끝나면 /clear.
  • 모호하면 Plan 모드로 시작. 계획을 검토한 뒤 Auto 또는 Accept edits로 실행.
  • 안전은 승인 클릭이 아니라 격리에서 온다. 위험한 작업일수록 deny 규칙과 샌드박스로 감싸세요.

실전 워크플로우 시나리오 모음

시나리오 A — 새 기능 구현 (정석 코스)
1. 새 세션 시작
claude

2. 작업 이름 부여
/rename feature-google-oauth

3. Plan 모드로 이동
Shift+Tab → Plan

4. 분석 및 계획
@src/auth/session.ts 와 @docs/oauth-spec.md 를 보고
Google OAuth를 추가하는 계획을 세워줘.
- 수정할 파일 목록
- 필요한 환경변수
- 새 테스트 케이스
- 배포 시 주의사항

5. 계획 검토 (Ctrl+G로 에디터에서 편집)

6. 실행 모드로 전환
Shift+Tab → Auto (또는 Accept edits)

7. 구현 진행
계획대로 구현해줘. 각 단계마다 테스트 통과 확인.

8. 코드 정리
/simplify

9. 보안 검토 (인증 코드라서)
/security-review

10. 최종 리뷰
/review

11. 커밋 & PR
! git commit -am "feat: Google OAuth 추가"
! gh pr create --fill
시나리오 B — 버그 수정 (빠른 코스)
1. 에러 재현
! python app.py
# → 에러 출력

2. 원인 분석 (관련 파일 제시)
위 에러의 원인을 @src/api/payment.ts 에서 찾아줘.
스택 트레이스 기준으로 정확한 위치 짚어줘.

3. 재현 테스트 먼저 작성
이 버그를 재현하는 테스트를 @tests/payment.test.ts 에
추가해줘 (실패하는 상태로).

4. 테스트 실행 (실패 확인)
! pytest tests/test_payment.py::test_bug_repro -v

5. 수정 진행
이제 버그를 수정해서 위 테스트가 통과하도록 해줘.

6. 전체 테스트 실행
! pytest

7. 커밋
! git commit -am "fix: 결제 실패 시 트랜잭션 롤백 안 되던 버그"
시나리오 C — 코드 리뷰 받기 (전문가 관점)
1. 변경 사항 확인
! git diff main..HEAD --stat
! git diff main..HEAD

2. 종합 리뷰
/review

3. 도메인별 추가 리뷰
security-reviewer 서브에이전트로 검토해줘.

performance-engineer 관점에서
@src/api/search.ts 의 쿼리 최적화 포인트를 찾아줘.

4. 테스트 커버리지 점검
QA engineer로서 @src/api/search.ts 의 엣지 케이스
중 테스트가 누락된 것을 찾아줘.

5. 문서 점검
technical writer로서 @docs/api.md 가
@src/api 의 변경사항과 동기화되어 있는지 확인해줘.
시나리오 D — 큰 리팩토링 (안전한 코스)
1. 백업
! git checkout -b refactor/callback-to-async

2. Plan Mode로 영향 분석
Shift+Tab → Plan Mode

Explore 서브에이전트로 @src 에서 콜백 패턴을
사용하는 모든 파일을 찾아줘. 다음 정보를 표로:
- 파일 경로
- 콜백 사용 함수
- 외부에서 호출하는 위치
- async/await 마이그레이션 난이도 (상/중/하)

3. 단계 분해
위 결과를 바탕으로 의존성 없는 leaf부터
순서대로 마이그레이션할 계획을 세워줘.
한 PR에 묶을 단위도 나눠줘.

4. 단계별 구현 (각 PR마다)
Shift+Tab → Accept edits
1단계 PR: @src/utils 폴더만 마이그레이션해줘.
기존 테스트가 모두 통과하는지 확인.

5. 검증 후 PR 생성
/review
! gh pr create --fill

6. 다음 단계로 (/clear 후 새 세션)
/clear
시나리오 E — 처음 보는 코드베이스 파악
1. /init으로 CLAUDE.md 생성
/init

2. Plan Mode로 전체 구조 탐색
Shift+Tab → Plan Mode

이 프로젝트의 아키텍처를 파악해줘:
- 사용 언어/프레임워크
- 디렉토리 구조와 각 폴더의 역할
- 진입점(entry point)과 라우팅
- 데이터베이스 모델
- 인증 흐름
- 외부 의존성

3. 핵심 흐름 다이어그램
사용자가 회원가입을 하면 어떤 순서로 어떤
파일들이 호출되는지 시퀀스 다이어그램으로 그려줘.

4. README 보충
위 분석 결과를 바탕으로 @README.md 의 빠진
부분을 보충해줘 (특히 신규 개발자 온보딩 섹션).

5. CLAUDE.md 업데이트
/memory
# 발견한 패턴, 주의사항, 명령어를 CLAUDE.md에 저장

학습 추천 순서 (초보자용)

  1. /init으로 현재 프로젝트에 CLAUDE.md 생성
  2. Shift+Tab으로 모드 전환 연습
  3. @파일경로 참조 연습
  4. ! Shell mode로 빠른 명령 실행 익히기
  5. /review, /simplify 빌트인 명령어 써보기
  6. 자주 하는 작업을 스킬로 만들기 (.claude/skills/)
  7. 필요시 MCP 서버 추가 (GitHub, Notion)
  8. 자동화는 훅으로 (.claude/settings.json)
기준: changelog 2.1.266 (2026-09) · 참고 자료: 공식 문서 · Changelog · Permission modes · Model config · Sandboxing · Headless · awesome-claude-code

버전에 묶인 기능이 많습니다. 설명대로 동작하지 않으면 claude --version부터 확인하세요.