티스토리 뷰

Chapter 1 — Overview 완전정리 (개념 + 실습 + 심화)

CLAUDE CODE DEEP DIVE WORKSHOP · 시리즈 1/6

① Overview — Claude Code 전체 그림 잡기

터미널에서 동작하는 에이전틱 코딩 도구, Claude Code의 정체와 설치·인증·핵심 도구·메모리·워크플로까지 한 번에 정리합니다.

이 글의 결론 — Claude Code는 터미널 기반 자율 에이전트입니다. 도구를 스스로 호출해 코드를 고치되, 권한 모델로 통제하고, CLAUDE.md로 규칙을 주입하며, Plan 모드로 큰 변경을 검토하고, Headless(-p)로 자동화합니다.

1. What is Claude Code

자동완성(Copilot)이나 IDE 채팅(Cursor)과 달리, Claude Code는 파일을 직접 읽고·수정하고·명령을 실행하며 여러 단계 작업을 자율 수행합니다. 대표적인 5가지 활용:

  • 디버깅 — 에러를 주면 원인 추적 → 수정 → 검증
  • 리팩토링 — 구조 개선을 다중 파일에 안전하게 반영
  • 신기능 개발 — 계획 후 구현
  • 코드베이스 학습 — 낯선 프로젝트 구조·역할 파악
  • 테스트 작성 — 커버리지 보강

2. Architecture — Agentic Harness의 내부 구조

Claude Code의 본질은 Agentic Harness입니다 — 맥락 수집 → 행동(도구 실행) → 검증을 반복하는 루프죠. 이 루프를 아래 3계층이 떠받칩니다.

  • Client Layer (Agent SDK) — CLI/IDE/SDK 진입점
  • Tool System — Read·Edit·Write·Bash·Grep·Glob·Web 등을 에이전트가 스스로 선택 호출
  • Permission Model — 도구 실행 시 승인 요청으로 안전성 확보

3. Installation

  • npmnpm install -g @anthropic-ai/claude-code
  • Native Installer — OS별 독립 설치본
  • Node 버전 관리자 — nvm/fnm/Volta 사용 시 sudo 불필요(권장)
  • Docker / WSL2 / Devcontainer — 격리·팀 표준 환경

검증: claude --version, claude doctor(System/Network/Auth/Config 자가 진단).

4. Authentication — 인증 경로 (최신 에디션 6경로)

방식 특징
① OAuth (구독)Max/Pro 계정 브라우저 로그인, 가장 빠름. 사용량 모니터링 제공
② Anthropic API KeyANTHROPIC_API_KEY 환경변수, 종량제
③ AWS BedrockCLAUDE_CODE_USE_BEDROCK=1 + IAM 정책, AWS 청구
④ Vertex AIGCP 프로젝트 + ADC 자격증명

세션 내 /login·/logout으로 전환. (구독 로그인 시 "Max/Pro required"가 뜨면 계정 등급 문제입니다.)

🆕 최신 20260703 에디션은 인증을 6경로로 확장합니다 — 위 4가지 + ⑤ LLM Gateway(사내 프록시, ANTHROPIC_BASE_URL) + ⑥ Enterprise SSO 흐름. 자세한 표는 아래 심화 섹션 참고.

5. Quick Start

  • 대화형 REPL 진입(claude), 핵심 명령: /init /help /status /clear
  • 3대 시나리오: 디버깅 / 기능 추가(Plan 모드) / 리팩토링
  • Plan 모드 — 실행 전 계획 제시(Shift+Tab)
  • 세션 관리 — /resume, --continue

6. Core Capabilities — 핵심 도구

  • 파일: Read(라인 범위·멀티모달) · Edit(찾기-바꾸기·다중 파일) · Write · NotebookEdit
  • 실행: Bash(백그라운드 포함)
  • 탐색: Grep(정규식) · Glob · WebSearch · WebFetch
  • Git: 워크플로·커밋 메시지·PR 생성 자동화
  • 권한 모드: allow/deny → ask(매번 확인) → auto-accept → yolo(전체 자동, 위험)

7. Interfaces — IDE 통합

  • VS Code — 확장 설치, 명령 팔레트, 선택 영역을 컨텍스트로 전달
  • JetBrains — 플러그인 설치
  • 외부 에디터 — Vim / Emacs / Neovim 연동

8. CLAUDE.md & Memory

  • 메모리 계층: Enterprise → User(~/.claude) → Project(./CLAUDE.md) → Local, 우선순위로 병합
  • 매 세션 자동 로드되어 규칙·명령·컨벤션 주입
  • 생성/편집: /init · /memory · #(빠른 추가), @경로 import
  • 적정 분량 500~1500 단어, 실행 가능한 명령 위주로 간결하게

9. Workflow Patterns — 실무 패턴 10선

① 기본 프롬프트 · ② TDD · ③ 코드 리뷰 · ④ 멀티 에이전트 · ⑤ Visual(스크린샷) · ⑥ Headless(-p) · ⑦ Pipeline/JSON 출력 · ⑧ CI/CD 통합 — 여기에 최신 에디션은 ⑨ 컨텍스트 관리(/clear·/compact)⑩ 비용 최적화(모델 선택)를 더해 실무 패턴 10선으로 정리합니다. Cost Management--model haiku·도구 제한으로 비용 절감.

실습 체크리스트

☐ PDF 1챕터(약 200슬라이드) 훑어보기
☐ Claude Code 설치 + 본인 계정 인증
☐ ch1-overview 스니펫 10개 파트 직접 실행
☐ 샘플 프로젝트에 CLAUDE.md 작성
☐ Plan 모드로 기능 하나를 계획 → 승인 → 실행
☐ git log로 chore→fix→feat 커밋 이력 남기기

🧪 핸즈온 랩 — 설치부터 Headless까지 (약 40분)

작업 폴더 ~/claude-lab/ch1. 설치·인증 → 버그 수정 → 자동화까지 end-to-end로 진행합니다.

Task 내용 체크포인트
00 사전 준비OS/Node18+/Git 확인node -v, git -v 정상
01 설치·검증claude --version, claude doctorerrors 0
02 인증4방식 중 택1 → /statusAuth 항목 표시
03 프로젝트·첫 세션샘플 생성(의도된 버그) → Read/Glob 관찰Read 도구 호출 관찰
04 CLAUDE.md/init → 규칙 편집 → 새 세션서 반영규칙 근거로 답함
05 디버깅·Plan에러 전달 → Read→Grep→Edit→Bash → Plan 모드 soft deletenpm test 전부 PASS
06 Headlessclaude -p + --output-format json + review.shreview.md 생성

산출물 — CLAUDE.md 포함 프로젝트 + Plan 모드 기능(soft delete) + Headless 스크립트(review.sh)


🧪 핸즈온 상세 실습 기록

진행 요약

Task 내용 상태
00 사전 준비node v24.13.0 · git 2.50.1 확인
01 설치·검증claude --version → 2.1.220
02 인증앱 세션 인증 사용(구독 로그인 등급 이슈 확인)
03 프로젝트·첫 세션샘플 생성 + 의도된 버그 재현
04 CLAUDE.md프로젝트 규칙 작성
05 디버깅·Plan버그 수정 + soft delete 기능
06 Headlessclaude -p 패턴 학습

Task 00–01 · 환경 확인

node --version   # v24.13.0 (요구 18+ 충족)
git --version    # 2.50.1
claude --version # 2.1.220
claude doctor    # System/Network/Auth/Config 자가 진단

Task 03 · 실습 프로젝트 (의도된 버그)

src/userService.jsgetUserPlan이 profile 없는 사용자(id 3, Park)에서 크래시:

TypeError: Cannot read properties of undefined (reading 'plan')
    at getUserPlan (src/userService.js:9)

Test 1(pro)·Test 2(free)는 PASS, Test 3(profile 없음)에서 크래시 — 이걸 Task 5에서 고칩니다.

Task 04 · CLAUDE.md 작성

5개 섹션(Overview / Stack / Commands / Conventions / Don't)으로 규칙 정의. 특히 두 규칙이 이후 설계를 좌우했습니다:

  • Conventions: "존재하지 않는 데이터는 예외를 던지지 말고 기본값을 반환"
  • Don't: "src/users.js의 데이터 구조를 임의로 변경하지 않기"

Task 05 · 디버깅 + Plan 모드

① 버그 수정 (Read → Grep → Edit → Bash)

옵셔널 체이닝 + 기본값으로 수정:

// Before
return user.profile.plan;
// After
return user?.profile?.plan ?? "unknown";

→ npm test 3개 전부 PASS. 커밋 931292e (fix).

② Plan 모드로 soft delete 추가

계획 검토 → 승인 → 구현. CLAUDE.md의 "Don't(users.js 변경 금지)" 규칙과 충돌을 감지해, 데이터 구조를 건드리지 않고 런타임에 deletedAt을 부여하는 방식으로 설계:

export function getUser(id) {
  return users.find((u) => u.id === id && !u.deletedAt); // 삭제 제외
}
export function removeUser(id) {
  const user = users.find((u) => u.id === id);
  if (!user) return false;
  user.deletedAt = new Date().toISOString(); // soft delete
  return true;
}

test.js에 삭제 시나리오 2개 추가 → 5/5 PASS. 커밋 4daada8 (feat).

Task 06 · Headless 자동화

# 기본
claude -p "이 프로젝트의 구조를 3줄로 요약" --output-format text
# 읽기전용 도구 제한 + JSON
claude -p "코드 품질 이슈 분석" \
  --allowed-tools "Read,Grep,Glob" --output-format json > report.json
# 자동화 스크립트 (직전 커밋 diff 리뷰)
DIFF=$(git diff HEAD~1); echo "$DIFF" | \
  claude -p "이 diff를 코드 리뷰" --allowed-tools "" > review.md

🔒 --allowed-tools "Read,Grep,Glob" = 읽기 전용만 허용 → 무인 실행 중 파일 수정 차단. 💰 간단한 작업은 --model haiku.

최종 산출물 & 커밋 이력

4daada8  feat: soft delete 기능 추가 (removeUser)
931292e  fix: getUserPlan에 옵셔널 체이닝으로 profile 없는 사용자 처리
f0a5e90  chore: initial lab project
🔑 핵심 교훈
1. 좋은 프롬프트 = 대상·목표·제약·검증
2. CLAUDE.md는 살아있는 규칙 — "Don't" 한 줄이 설계를 바꿈
3. 큰 변경은 Plan 모드, 작은 수정은 Auto
4. Headless는 읽기전용 도구 제한이 안전장치

📚 심화 · 비교 · 트러블슈팅 · FAQ

🆚 Copilot · Cursor · Claude Code, 뭐가 다른가

구분 GitHub Copilot Cursor Claude Code
형태에디터 자동완성AI 내장 IDE터미널 에이전트
작업 단위줄/블록 제안파일 편집다단계 작업 자율 수행
도구 실행일부파일·Bash·Git·Web 직접 호출
자동화(CI)Headless(-p)로 파이프라인 통합
한 줄 요약"타이핑을 돕는다""IDE 안에서 돕는다""일을 대신 한다"

⌨️ 자주 쓰는 슬래시 커맨드 치트시트

명령 동작 언제
/initCLAUDE.md 자동 생성프로젝트당 1회
/status인증·모델·컨텍스트 사용량점검 시
/clear컨텍스트 초기화작업 전환 시
/compact오래된 메시지 요약 압축컨텍스트 부족 시
/cost토큰·비용 확인주기적
Shift+TabPlan 모드 토글큰 변경 전

✍️ 좋은 프롬프트의 4요소 — 대상·목표·제약·검증

에이전트의 정확도는 프롬프트 구조에서 갈립니다. 이 4가지를 명시하세요.

❌ 나쁜 예 — "코드 좀 봐줘"
✅ 좋은 예 — "src/userService.js의 getUserPlan(대상)을 검토하고, null 안전성 문제가 있으면 고쳐줘(목표). 기존 데이터 구조는 바꾸지 말고(제약), 수정 후 npm test가 모두 PASS 해야 해(검증)."

🔐 권한 모드 4단계 — 언제 무엇을

모드 동작 추천 상황
allow/deny패턴별 허용/차단 사전 정의팀 표준
ask민감 작업마다 승인 요청기본·안전 (권장)
auto-accept승인 없이 자동 실행신뢰된 반복 작업
yolo전체 자동 (제한 없음)⚠️ 격리 환경만

💰 비용, 이렇게 아낀다

  • 간단한 작업은 --model haiku — 빠르고 저렴
  • /cost로 세션 비용 주기적 확인, /compact로 컨텍스트 압축
  • Headless에서 --allowed-tools "Read,Grep,Glob"로 불필요한 도구 호출 차단
  • 반복되는 긴 컨텍스트는 Prompt Caching(Ch6에서 심화)으로 절감

🧯 자주 막히는 지점 & 처방

증상 원인 · 처방
"Claude Max or Pro is required"구독 로그인을 골랐는데 계정이 Free 등급. → Max/Pro 계정으로 로그인하거나 API 키/Bedrock 방식으로 전환
npm 설치 권한 오류npm config get prefix가 /usr/local이면 sudo 필요. nvm/fnm/Volta 쓰면 sudo 불필요
인증/네트워크가 이상함claude doctor로 System/Network/Auth/Config 자가 진단
엉뚱한 파일을 건드림CLAUDE.md의 Don't 섹션에 금지 규칙 명시 + 권한 ask 모드 유지

🏗️ Architecture 다시 보기 — Agentic Harness 루프

Claude Code를 "AI 채팅"이 아니라 에이전틱 하네스(Agentic Harness)로 보면 동작이 명확해집니다. 매 턴마다 아래 루프를 돕니다.

맥락 수집(Gather) — Read·Grep·Glob로 필요한 파일·정보 탐색
행동(Act) — Edit·Write·Bash로 실제 변경·명령 실행 (권한 승인 개입)
검증(Verify) — 테스트·빌드·재조회로 결과 확인 → 실패 시 ①로 되돌아 반복

이 루프를 Client Layer(SDK) · Tool System · Permission Model 3계층이 떠받칩니다. "왜 도구를 여러 번 호출하지?"의 답이 바로 이 검증-반복 루프입니다.

🔑 인증 6경로 (최신 20260703 에디션)

경로설정주 용도
① 구독(OAuth)브라우저 로그인개인 Max/Pro
② API KeyANTHROPIC_API_KEY종량제
③ BedrockCLAUDE_CODE_USE_BEDROCK=1AWS 조직
④ Vertex AIGCP + ADCGCP 조직
⑤ LLM GatewayANTHROPIC_BASE_URL (프록시)사내 게이트웨이
⑥ Enterprise SSOIdP 연동(SSO 로그인)대규모 조직

⑤⑥은 사내 프록시·조직 인증 시나리오로, 대부분 Ch3(Admin)에서 심화됩니다.

🔁 워크플로 실무 패턴 10선

#패턴#패턴
기본 프롬프트Headless(-p)
TDDPipeline / JSON
코드 리뷰CI/CD 통합
멀티 에이전트컨텍스트 관리(/clear·/compact)
Visual(스크린샷)비용 최적화(모델 선택)

🗂️ 실습을 자산으로 — JOURNEY.md & SUMMARY.md

실습을 그때그때 흘려보내지 말고 누적 기록 문서로 남기면 복습·포트폴리오가 됩니다. Hook(SessionStart/Stop)이나 CLAUDE.md 규칙으로 자동 업데이트되게 설정할 수 있습니다.

  • JOURNEY.md — 진행 현황 표 · 버전 · 리소스 아키텍처 · 트러블슈팅 이력(날짜·문제·원인·해결)을 case마다 한 줄씩 누적
  • SUMMARY.md — 챕터별 요약 · 아키텍처 · 트러블슈팅 · 현업 운영 고려사항(DevOps)을 정리

→ "무엇을, 왜, 어떻게 고쳤는가"가 남아 다음 챕터·실무에서 그대로 재사용됩니다.

🧪 확장 핸즈온 — 공식 랩 너머 Case 1~6

공식 랩(Task 1~6)은 기본기입니다. 여기에 직접 시나리오를 만들어 Claude Code의 폭을 넓혀 보세요.

Case내용
1 복구손상된 파일(잘못 섞인 코드 조각) 진단·복구
2 기능 추가soft delete(deletedAt·removeUser) — Plan 모드
3 결함 수정저장소 분석 → null 예외·테스트 종료코드 결함 수정
4 데이터 보강누락 데이터 보강 + 회귀 테스트 갱신
5 코드베이스 학습낯선 프로젝트를 대화로 파악 + 테스트 커버리지 갭 분석
6 DevOps 자동화스크립트·IaC·파이프라인 작성과 점검

❓ FAQ

Q. 구독 없이 써볼 수 있나요?
A. 네. Anthropic Console에서 API 키를 발급해 ANTHROPIC_API_KEY로 종량제 사용하거나, AWS Bedrock/Vertex를 쓸 수 있습니다.

Q. 코드를 마음대로 바꾸면 위험하지 않나요?
A. 기본 ask 모드에서 파일 수정·명령 실행마다 승인을 요청합니다. Git으로 관리하면 되돌리기도 쉽습니다.

Q. VS Code에서도 되나요?
A. 확장으로 연동됩니다. 선택 영역을 컨텍스트로 넘길 수 있습니다.

다음 편 예고 → ② Agents & Subagents
역할별 전문 에이전트(code-reviewer·test-writer 등)를 .claude/agents/에 정의하고, Task 툴로 자동·병렬 위임하는 법을 다룹니다.

📚 참고 — Claude Code 공식 문서 · claude doctor로 언제든 상태 점검.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함