같은 Claude Code를 쓰는데, 나는 오후 한 나절을 통째로 태운 작업을 옆자리 동료는 점심 전에 PR로 올린다. 처음엔 모델 차이인 줄 알았는데 아니었다. CLAUDE.md 한 장과 hook 두 줄, 그리고 작업을 쪼개는 방식이 달랐다.

이 글은 매일 Claude Code로 일하면서 정리한 노트다. 기능 백과사전이 아니라 운영 시스템에 가깝다. 처음 결제 고민 중인 개발자, 이미 쓰지만 더 잘 쓰고 싶은 사용자, 팀 도입을 고민하는 리드까지 — 어디에 있든 오늘 바로 한 줄 바꿔볼 만한 지점이 있을 것이다.

Claude Code가 다른 이유 — “에이전트가 사이클을 끝까지 민다”

Claude Code는 터미널에서 자연어로 작동하는 에이전틱 코딩 도구다. Copilot 같은 인라인 자동완성이 아니라, 목표 한 줄을 받으면 코드베이스를 읽고 → 계획을 세우고 → 여러 파일을 가로지르며 수정하고 → 테스트를 돌리고 → 커밋까지 미는 식이다. 한 번에 끝나지 않으면 실패 로그를 보고 다음 시도를 한다.

2026년 5월 기준 기본 모델은 Claude Opus 4.7Sonnet 4.6. Anthropic 자체 보고로 Opus 4.7은 SWE-bench Verified 87.6%, 직전 세대 4.6의 80.8%에서 1년 새 가장 큰 폭으로 점프했다. 다만 터미널 환경 벤치마크(Terminal-Bench 2.0)에선 OpenAI Codex가 앞서 있다는 점은 정직하게 짚고 가야 한다. Claude Code의 강점은 단일 벤치 점수가 아니라 1M 토큰 컨텍스트와 워크플로우 통합이다.

요금제는 다음과 같이 정리된다.

플랜 가격(월) 적합한 사용 패턴
Pro $20 1인 개발자, 하루 1~2시간 집중 세션
Max 5x $100 풀타임 사용, 멀티에이전트 가볍게
Max 20x $200 대형 모노레포, 장시간 백그라운드 작업
API 종량제 사용량 기반 팀 배포, CI 통합

시장 점유율 자체는 GitHub Copilot이 29%로 1위지만, 시니어 개발자가 “가장 사랑하는 도구”로 Claude Code를 꼽은 비율은 46%로 압도적이다. 결국 단일 도구가 아니라 조합이 2026년의 일반적인 운영 방식이다. IDE 인라인은 Copilot/Cursor에 맡기고, 멀티파일 작업과 리팩토링은 Claude Code로 넘기는 식.

30분이면 익히는 핵심 사이클 — “한 방 프롬프트”를 버려라

설치는 npm install -g @anthropic-ai/claude-code 한 줄, 인증은 claude login이면 끝이다. 진짜 학습 곡선은 그 다음이다.

내가 가장 후회하는 초기 습관이 “한 방 프롬프트”다. “이 리포지토리를 마이크로서비스로 분리해줘” 같은 요청은 거의 실패한다. 컨텍스트가 망가지고, 환각이 끼고, 결국 사람이 처음부터 다시 짚어야 한다.

대신 다음 5단계 사이클로 끊는 것이 정석이다.

1. 탐색  → /plan "auth 모듈의 의존성을 먼저 분석해줘"
2. 계획  → 사람이 검토, 잘못된 가정 잡아냄
3. 구현  → "분석한 plan 그대로 진행. 한 번에 한 모듈씩."
4. 검증  → 테스트 실행, 실패 시 같은 세션에서 디버그
5. 커밋  → 논리적 단위로 분할 커밋

여기서 Plan 모드가 진짜 무기다. /plan을 켜면 Claude가 파일을 읽기만 하고 수정하지 않는다. 큰 작업은 일단 plan으로 설계 → 사람이 한 번 보고 → 그 다음 accept-edits 모드로 실행한다. 이 한 번의 추가 단계가 나중에 롤백할 일을 절반으로 줄인다.

권한 모드는 네 가지를 기억하면 된다.

  • Normal — 위험 작업마다 확인. 새 프로젝트 디폴트.
  • Plan — 읽기 전용, 분석·설계 전용.
  • Auto-accept — 파일 편집 자동 승인. 신뢰하는 작업에만.
  • Don’t Ask — 사전 허가된 도구 외 전부 차단. CI/백그라운드 작업용.

rm -rfgit push --force 같은 위험 명령은 권한 규칙으로 명시적으로 deny에 넣는다. 평가 순서는 deny → ask → allow이므로, deny에 한 번 걸리면 어떤 모드에서도 안 돌아간다.

CLAUDE.md, Hooks, MCP — 운영 환경 설계 3종 세트

이 글에서 가장 중요한 부분이다. 도구 자체보다 이 세 가지를 어떻게 짜는가가 결과를 가른다.

CLAUDE.md — 지시가 아니라 맥락을 적는 곳

CLAUDE.md는 프로젝트 루트에 두는 마크다운 파일이고, 세션이 열릴 때마다 가장 먼저 읽힌다. “프로젝트의 헌법”이라는 표현이 굳어졌다. 들어가야 할 건 아키텍처 개요, 코딩 컨벤션, 실행 명령, 도메인 용어, 자주 틀리는 함정이다.

내가 자주 보는 실수는 두 가지다. 첫째, 너무 길다. CLAUDE.md가 2,000줄이 넘어가면 Claude는 사실상 절반을 무시한다. 짧고 행동 중심으로 가지치기해야 한다. 둘째, 이미 잘하는 걸 굳이 적는다. “함수에는 의미 있는 이름을 써라” 같은 건 안 적어도 잘 한다. 적어야 할 건 이 프로젝트가 특이한 부분이다.

좋은 CLAUDE.md 예시 (실제 사용 중):

# 프로젝트 컨텍스트

## 빌드/테스트
- `pnpm dev` — 로컬 서버 (포트 3000)
- `pnpm test:unit` — 단위 테스트만
- `pnpm test:e2e` — 변경 후 반드시 실행

## 컨벤션
- 모든 API 응답은 `{ ok, data, error }` 형태. 예외 던지지 말 것.
- DB 접근은 `src/db/` 안에서만. 라우터에서 직접 호출 금지.
- 시간은 UTC ISO 문자열. `new Date()` 직접 사용 금지.

## 함정
- `legacy/` 디렉토리는 절대 수정하지 말 것. 별도 마이그레이션 계획 있음.
- `users.email`은 PII. 로그에 찍지 말 것.

핵심 룰만 한국어로, 기술 용어는 영문 그대로다. 일주일에 한 번 정도 리뷰하면서 안 지켜진 부분을 추가하거나 이미 자연스러워진 부분을 지운다.

Hooks — “반드시 일어나야 할 일”의 자리

CLAUDE.md 지시는 LLM이 “참고”한다. 반드시 실행되어야 하는 건 hook으로 옮긴다. 둘의 결정성은 본질적으로 다르다. 지시는 확률, hook은 100% 실행이다.

자주 쓰는 hook 패턴 세 가지.

# .claude/hooks/PostToolUse.sh — 파일 수정 후 자동 포맷
case "$CLAUDE_TOOL_NAME" in
  Edit|Write)
    if [[ "$CLAUDE_FILE_PATH" == *.ts || "$CLAUDE_FILE_PATH" == *.tsx ]]; then
      pnpm prettier --write "$CLAUDE_FILE_PATH" 2>/dev/null
    fi
    ;;
esac

# .claude/hooks/PreToolUse.sh — 위험 디렉토리 보호
if [[ "$CLAUDE_TOOL_NAME" == "Bash" && "$CLAUDE_COMMAND" == *"rm -rf"* ]]; then
  echo "BLOCKED: rm -rf 차단됨" >&2
  exit 1
fi

# .claude/hooks/UserPromptSubmit.sh — 사내 보안 디렉토리 사전 경고
if grep -q "secrets/" <<< "$CLAUDE_USER_PROMPT"; then
  echo "주의: secrets/ 디렉토리 접근 요청입니다. 권한 확인 후 진행." >&2
fi

2026년 5월 기준 18종 이상의 hook 타입을 지원한다. 최근 추가된 것 중 pre-session injection(세션 시작 시 컨텍스트 주입)과 post-compaction(컨텍스트 압축 후 에이전트 정체성 재주입)이 특히 유용하다. 긴 작업 중에 Claude가 “원래 뭐 하던 중이었지?”로 빠지는 사고를 막아준다.

원칙: hook으로 자동화할 수 있는 건 CLAUDE.md에 적지 마라. 그 자리는 hook이 못 하는 맥락만 채워야 한다.

MCP — 외부 세계와 대화시키기

MCP(Model Context Protocol)는 Anthropic이 표준화한 오픈 프로토콜이다. 외부 도구·DB·API를 Claude에게 노출시킨다. 한 줄 효과는 “복붙 통로의 제거”다.

자주 붙이는 서버 예시:

# GitHub — 이슈/PR 직접 조작
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer $GITHUB_PAT"

# Sentry — 에러 모니터링
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

# PostgreSQL — 운영 DB 읽기 전용
claude mcp add --transport stdio db -- npx @bytebase/dbhub --readonly \
  --uri "postgres://readonly:pw@db.internal/app"

마지막 줄의 --readonly가 핵심이다. MCP는 강력한 만큼 공격면이 넓어진다. 운영 DB는 반드시 읽기 전용 자격으로 붙이고, 자격 증명은 환경변수로 분리한다.

내가 가장 자주 보는 효과는 이슈 → PR 사이클의 단축이다. Linear MCP를 붙이고 “ENG-1247 이슈를 보고 브랜치 만들어서 구현해줘”라고 하면, 이슈 본문을 읽고 → 브랜치를 만들고 → 구현하고 → PR 본문에 이슈 번호를 자동으로 연결한다. 손으로 하던 5분짜리 컨텍스트 스위칭이 사라진다.

멀티에이전트와 팀 운영 — 혼자가 아니라 팀으로

서브에이전트(subagents)는 자체 시스템 프롬프트와 도구 권한, 그리고 별도 컨텍스트 윈도우를 가진 분리된 Claude 인스턴스다. 메인 에이전트가 위임한다.

먼저 정직하게 말하면, 대부분의 일상 작업에는 서브에이전트가 필요 없다. 무작정 늘리면 코디네이션 비용이 더 커진다. 효과가 분명한 경우는 다음 셋이다.

  1. 도메인이 명확히 갈리는 작업 — 백엔드/프론트/테스트가 동시에 변경되는 리팩토링
  2. 컨텍스트가 무거운 탐색 — 메인 세션의 토큰을 아끼고 싶을 때
  3. 검증자(validator) 분리 — 같은 컨텍스트의 셀프 리뷰는 약하다. 별도 에이전트가 훨씬 잘 잡는다

자주 쓰이는 패턴 다섯 가지를 한 줄씩 정리하면:

  • Sequential — 단계가 순서대로 흐르는 일. 기본형.
  • Operator — 메인이 지휘하고 서브들이 실행.
  • Split-and-Merge — 큰 작업을 쪼개서 병렬로 진행 후 통합. 대형 리팩토링에 강력.
  • Agent Teams — 역할 기반 팀(구현/테스트/리뷰)으로 한 사이클을 돈다.
  • Headless — UI 없이 CI/스크립트에서 호출.

실전 팀 구성은 보통 메인 1 + 구현 서브 1~2 + 테스트 1 + 리뷰 1로 3~5인이 적당하다. 더 키우면 컨텍스트 동기화 비용이 빠르게 폭증한다.

여기서 한 가지 경험칙. 단일 에이전트의 컨텍스트가 60%를 넘으면 분할 신호다. 90%를 넘기고도 계속 진행하면 그때부터 환각이 들어오기 시작한다. 길어졌다 싶으면 /clear 또는 /compact로 끊고 새 세션으로 넘긴다.

병렬 실행은 명시적으로 지시해야 한다. “이 다섯 모듈을 각각 서브에이전트로 병렬 분석해줘” 같은 명령형 문장이 필요하다. 안 그러면 안전한 순차 실행이 기본이다.

진짜로 빨라지는가 — 데이터와 한계

여기서 솔직해질 차례다. AI 코딩 도구의 효과는 양면적이다.

긍정 측 데이터 (Anthropic 자체 보고):

작업 효과
보안 엔지니어링 스택 트레이스 분석 10–15분이 3배 빨라짐
인퍼런스 익숙치 않은 언어(Rust) 학습 1시간 → 10–20분, 약 80% 단축
데이터 인프라 쿠버네티스 장애 진단 시스템 다운 중 20분 단축
성장 마케팅 광고 카피 배치 변환 수 시간 → 0.5초
법무 사내 라우팅 도구 자체 빌드 개발 리소스 없이 비개발자가 직접

/security-review 슬래시 명령으로 Anthropic이 자사 코드베이스에서 실제 DNS 리바인딩 RCE 취약점을 발견한 사례도 공개됐다. 마케팅 멘트가 아니라 공식 보고된 케이스다.

부정 측 데이터도 봐야 한다.

METR이 2025년 발표한 연구는 더 엄격했다. 숙련 개발자가 익숙한 코드베이스에서 작업할 때 AI 코딩 도구 사용 시 실제 소요 시간이 19% 증가했다. 본인들은 20% 빨라졌다고 답했지만 실측은 반대였다. 체감과 산출물 사이의 간극이 크다는 신호다.

또 한 현장 분석에서 DORA 4지표(배포 빈도/리드 타임/실패율/복구 시간)는 변하지 않은 채 코드 리뷰 시간만 91% 증가한 사례도 보고됐다. 해석은 단순하다. “생성은 빨라졌지만 그 아래 단계(계획·디자인·리뷰)는 그대로다. 병목이 옮겨갔다.”

내가 이걸 본 뒤로 한 가지가 분명해졌다. Claude Code는 익숙치 않은 영역에서, 명확한 사양과 함께, 사이클로 쪼개서 쓸 때 가장 빛난다. 익숙한 코드를 손보는 일에 무작정 떠넘기면 오히려 느려질 수 있다. 그리고 리뷰 비중이 늘어난다는 건 PR이 작아져야 한다는 뜻이다 — 큰 덩어리 PR을 그대로 두면 사람 쪽이 병목이 된다.

비용도 정직하게. Pro $20는 개인 집중 세션용이고, 풀타임 멀티에이전트로 가면 Max 5x($100)나 20x($200)으로 빠르게 올라간다. 5시간 단위 토큰 버짓이 있고, 2026년 초부터 Pro/Max의 5시간 한도가 두 배로 늘어났지만 그래도 한도는 있다.

매일 쓰는 사람의 10가지 습관과 자주 만나는 5가지 함정

매일 쓰면서 정착된 10가지

  1. 컨텍스트는 신선할수록 좋다 — 길어지면 미련 없이 /clear
  2. 큰 작업은 plan 모드로 먼저 → 사람이 검토 → 그 다음 실행
  3. CLAUDE.md는 매주 한 번 가지치기. 안 지켜진 룰은 더 짧게 다시 쓴다
  4. 커밋은 논리적 단위로 분할 — Claude가 잘하는 영역이다
  5. 코드 리뷰는 별도 서브에이전트에. 같은 컨텍스트의 셀프 리뷰는 약하다
  6. 테스트가 통과한다고 기능이 동작하는 건 아니다. UI는 직접 눌러본다
  7. 위험 명령(rm -rf, push --force, drop table)은 권한 규칙으로 deny
  8. hook으로 자동화 가능한 건 CLAUDE.md에 적지 말 것
  9. 외부 서비스는 MCP로. 복붙 루프를 끊는다
  10. TDD를 쓴다 — 테스트 먼저, 실패 확인 후 커밋, 그 다음 구현. Claude가 테스트를 임의로 고쳐 통과시키는 사고를 막아준다

자주 만나는 5가지 함정

  • 함정 1: 거대한 CLAUDE.md. 절반은 무시된다.
  • 함정 2: “한 방에 다 해줘” 프롬프트. 큰 작업일수록 실패율이 높다.
  • 함정 3: 무분별한 서브에이전트 남발. 코디네이션 비용이 더 든다.
  • 함정 4: 권한 모드 미설정 상태로 auto-accept. 자동 승인이 사고를 부른다.
  • 함정 5: 컨텍스트 90% 넘기고도 계속 진행. 환각의 시작점이다.

마무리 — 도구는 같다, 운영 설계가 다를 뿐

Claude Code 활용법의 핵심은 신기능 목록을 외우는 게 아니다. 컨텍스트를 어떻게 짜고, 결정성이 필요한 자리에 무엇을 놓고, 작업을 어떤 크기로 끊는가 — 운영 시스템의 문제다.

당장 오늘 적용해볼 만한 세 가지를 남긴다.

  1. CLAUDE.md를 한 페이지로 가지치기. 이미 잘하는 건 다 지운다.
  2. 가장 반복되는 자동화 하나를 hook으로 옮긴다. 포맷, 린트, 위험 명령 차단 중 하나면 충분하다.
  3. 다음 큰 작업은 /plan으로 시작한다. 실행은 사람이 한 번 본 다음.

다음 글에서는 Claude Skills로 팀 표준 워크플로우를 묶어 배포하는 방법을 다룰 예정이다. 같은 도구를 팀 전체가 같은 방식으로 쓰게 만드는 단계다. birdspring.com의 AI/개발 카테고리에서 이어 만날 수 있다.

좋은 도구는 잘 부리는 사람을 위해 진화한다. 이 글의 한 줄이라도 오늘의 워크플로우를 바꾸는 데 닿았다면, 그게 가장 큰 보람이다.