Recent Posts
Recent Comments
반응형
«   2025/12   »
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
Archives
Today
Total
관리 메뉴

오늘도 공부

Claude Code 2.0 완벽 가이드: AI 코딩 에이전트 200% 활용하기 본문

카테고리 없음

Claude Code 2.0 완벽 가이드: AI 코딩 에이전트 200% 활용하기

행복한 수지아빠 2025. 12. 29. 09:54
반응형

 


들어가며

요즘 개발자들 사이에서 가장 핫한 도구가 뭔지 아시나요? 바로 Claude Code입니다. CLI 기반 AI 코딩 에이전트의 대명사가 된 이 도구를 제대로 활용하는 방법을 알려드리겠습니다.

Karpathy가 최근 트위터에서 "AI 도구의 발전 속도를 따라가기 힘들다"고 토로했죠. 하지만 걱정하지 마세요. 이 글을 통해 Claude Code의 핵심 기능들을 체계적으로 이해하고, 여러분의 개발 워크플로우에 바로 적용할 수 있습니다.

"따라가기"보다는 "함께 성장하기"로 마인드를 바꿔보세요. AI 도구로 자신을 **증강(augment)**하는 것이 핵심입니다.


왜 Opus 4.5인가?

2025년은 AI 모델 출시의 해였습니다. OpenAI의 GPT-5 시리즈, Anthropic의 Claude 4.5 시리즈가 쏟아졌죠. 그 중에서도 Opus 4.5가 제 메인 드라이버가 된 이유를 정리하면:

특징 Opus 4.5 GPT-5.2 Codex

속도 빠름 ⚡ 상대적으로 느림
코드 품질 우수 약간 더 우수
의사소통 탁월한 협업 파트너 지시 무시하는 경향
의도 파악 정확함 보통

핵심 포인트: Opus 4.5는 원시 코딩 능력에서 GPT-5.2보다 약간 뒤처질 수 있지만, 빠른 피드백 루프뛰어난 협업 능력 덕분에 실제 개발 경험이 훨씬 좋습니다.


기초 개념 정리 (입문자용)

Claude Code를 제대로 활용하려면 몇 가지 개념을 이해해야 합니다.

1. 컨텍스트 윈도우 (Context Window)

LLM이 한 번에 처리할 수 있는 토큰의 최대량입니다. 쉽게 말해 AI의 작업 메모리죠.

Opus 4.5: 200K 토큰 ≈ 약 15만 단어
GPT-5.2: 400K 토큰 ≈ 약 30만 단어

2. 도구 호출 (Tool Calling)

LLM이 텍스트 생성을 넘어 실제 행동을 수행하는 방식입니다.

# 예시: 날씨 조회 도구
def get_weather(city: str) -> dict:
    """특정 도시의 날씨 정보를 반환"""
    return {"temp": 22, "condition": "맑음"}

# LLM이 이 도구를 호출할 수 있음!

3. 에이전트 (Agent)

목표 달성을 위해 능동적으로 도구를 실행하는 LLM입니다.

┌─────────────────────────────────────┐
│              에이전트 루프            │
├─────────────────────────────────────┤
│  사용자 입력                          │
│       ↓                              │
│  LLM 추론 (어떤 도구를 쓸까?)          │
│       ↓                              │
│  도구 실행                            │
│       ↓                              │
│  결과 확인 → 목표 달성? → 종료        │
│       ↓ (아니면)                      │
│  다시 추론...                         │
└─────────────────────────────────────┘

Claude Code 2.0의 핵심 기능들

1. 문법 강조 (Syntax Highlighting)

2.0.71부터 추가된 기능으로, diff 확인이 훨씬 편해졌습니다.

- const oldFunction = () => { return null; }
+ const newFunction = (data: Data) => { 
+   return processData(data); 
+ }

2. Ultrathink 모드

어려운 작업이나 Claude가 더 신중하게 생각하길 원할 때 사용합니다.

# 프롬프트에 추가하면 됨
/ultrathink 이 버그의 근본 원인을 분석해줘

3. 컨텍스트 확인

/context  # 현재 컨텍스트 사용량 확인

: 총 60%에 도달하면 /compact 또는 새 대화 시작을 고려하세요.

4. 체크포인팅 (Checkpointing)

Cursor처럼 이전 상태로 되돌릴 수 있습니다!

Esc + Esc  # 빠르게 두 번 누르기
# 또는
/rewind

5. 프롬프트 히스토리 검색

Ctrl + R  # 이전 프롬프트 검색 (터미널 backsearch와 동일)

서브 에이전트 완전 정복

Explore 에이전트

읽기 전용 코드베이스 탐색 전문가입니다.

# 기본 사용
"이 프로젝트의 인증 로직을 찾아줘"

# Sonnet 사용 (더 빠른 탐색)
"Sonnet으로 Explore 에이전트 실행해서 API 엔드포인트 찾아줘"

중요: Explore 에이전트는 요약만 반환합니다. 복잡한 작업에서는 Claude가 직접 파일을 읽도록 요청하세요.

"Explore 결과 파일들을 네가 직접 다시 읽어봐"

왜냐하면 attention 메커니즘 때문입니다. 모델이 직접 모든 관련 컨텍스트를 읽어야 더 나은 추론이 가능합니다.

서브 에이전트 종류

타입 용도 컨텍스트 상속

general-purpose 복잡한 멀티스텝 작업 ✅ 전체 상속
Explore 코드베이스 탐색 ❌ 새로 시작
Plan 구현 계획 수립 ✅ 전체 상속
claude-code-guide 문서 조회 ❌ 새로 시작

Task Tool 스키마 예시

{
  "description": "API 리팩토링 계획",
  "prompt": "현재 REST API를 GraphQL로 마이그레이션할 계획을 세워줘",
  "subagent_type": "Plan",
  "model": "opus"
}

컨텍스트 엔지니어링 심화

토큰 소비 패턴

에이전트는 토큰 먹는 하마입니다. 왜 그런지 봅시다:

컨텍스트 윈도우 상태:
├─ User: "커피숍 랜딩페이지 만들어줘"
│
├─ Assistant: [tool_call: web_search("모던 커피숍 랜딩페이지 디자인")]
├─ Tool 결과: [10개 결과와 스니펫]           ← ~1.5K 토큰
│
├─ Assistant: [tool_call: read_file("brand-guidelines.pdf")]
├─ Tool 결과: [추출된 텍스트, 색상, 폰트]    ← ~4K 토큰
│
├─ Assistant: "따뜻하고 미니멀한 디자인으로..."
├─ Assistant: [tool_call: create_file("landing-page.html")]
├─ Tool 결과: [성공, 140줄]                  ← ~50 토큰
│
└─ Total: 단일 작업에 ~6K+ 토큰!

핵심: 도구 호출과 그 결과가 모두 컨텍스트에 추가됩니다. LLM은 상태가 없기(stateless) 때문입니다.

컨텍스트 부패 (Context Rot)

컨텍스트가 길어질수록 LLM의 성능이 저하됩니다.

         성능
          │
       100%├──────╮
          │      ╲
          │       ╲
        50%├────────╲──────
          │          ╲
          │           ╲____
          └───────────────────
              컨텍스트 길이

실용적 가이드라인: 유효 컨텍스트는 전체의 50-60% 정도로 생각하세요.

System Reminder 활용

Claude Code는 <system-reminder> 태그를 통해 목표를 반복 주입합니다.

<system-reminder>
현재 작업: API 리팩토링
진행 상태: 3/7 단계 완료
다음 단계: 인증 미들웨어 수정
</system-reminder>

Manus(AI 에이전트 회사)도 비슷한 전략을 씁니다. todo.md를 계속 업데이트하며 목표를 컨텍스트 끝에 배치하죠.


Skills와 Hooks 활용하기

Skills: 온디맨드 전문 지식

Skills는 필요할 때만 로드되는 전문 지식 모듈입니다.

.claude/skills/
└── api-patterns/
    └── SKILL.md

SKILL.md 예시:

---
name: api-patterns
description: REST/GraphQL API 설계 패턴과 베스트 프랙티스
---

## API 설계 원칙

1. 리소스 명명 규칙
   - 복수형 명사 사용 (/users, /orders)
   - 케밥 케이스 (/user-profiles)
   
2. 버전 관리
   - URL 경로: /v1/users
   - 헤더: Accept: application/vnd.api+json;version=1
   
...

Claude가 API 관련 작업을 감지하면 자동으로 이 skill을 로드합니다!

Hooks: 에이전트 라이프사이클 제어

Hooks로 Claude의 동작을 커스터마이징할 수 있습니다.

완료 알림 Hook 예시:

// .claude/hooks/stop.json
{
  "command": "afplay /path/to/notification.mp3"
}

재미있는 활용: "더 해"라는 프롬프트를 자동 주입해서 Claude를 계속 돌리기(!)

# Stop hook에 연결
echo "계속해서 다음 작업을 진행해" | claude-code --continue

Skills + Hooks 조합

Skills를 상황에 맞게 주입하는 고급 패턴:

UserPromptSubmit Hook
       │
       ▼
 프롬프트 분석
       │
       ▼
 관련 Skill 감지
       │
       ▼
<system-reminder>
  skill://api-patterns 참조하세요
</system-reminder>

실전 워크플로우

제가 사용하는 방식

  1. 탐색 단계: Opus 4.5에게 많은 질문을 던집니다
  2. "이 함수가 왜 이렇게 구현되어 있어?" "이 아키텍처 결정의 트레이드오프는?"
  3. 실행 단계: /ultrathink와 함께 구체적인 지시
  4. /ultrathink 다음 변경사항을 적용해줘: 1. UserService에 캐싱 레이어 추가 2. 기존 테스트 유지하면서 새 테스트 추가
  5. 리뷰 단계: Codex에게 검토 요청
  6. /review # GPT-5.2 Codex의 코드 리뷰

버려지는 첫 번째 드래프트 전략

복잡한 기능 개발시:

  1. 새 브랜치 생성
  2. Claude에게 전체 기능 구현 위임
  3. 결과물과 내 멘탈 모델 비교
  4. Claude의 결정/편향 파악
  5. 이 인사이트로 더 날카로운 프롬프트 작성
  6. 두 번째 이터레이션 실행

영화 테넷처럼, 역방향으로 배우고 순방향으로 실행합니다.


커스텀 명령어 만들기

Handoff 명령어 예시

컨텍스트가 차면 새 대화로 인계할 때 유용합니다.

<!-- .claude/commands/handoff.md -->
# Handoff Command

현재 세션의 진행 상황을 정리해주세요:

1. 완료된 작업
2. 진행 중인 작업
3. 남은 TODO
4. 중요한 결정사항과 그 이유
5. 다음 세션에서 알아야 할 컨텍스트

결과를 HANDOFF.md 파일로 저장해주세요.

사용법:

/handoff
# 그 다음
/clear
# 새 세션에서
"HANDOFF.md 읽고 이어서 진행해줘"

마무리: 핵심 정리

기능 언제 사용? 팁

/ultrathink 어려운 작업, 자기 검토 남발 OK
/context 60% 넘으면 확인 복잡한 작업 전 체크
/compact 컨텍스트 정리 /clear보다 연속성 유지
Explore 에이전트 코드베이스 탐색 Sonnet 사용 권장
Checkpointing 실수 복구 Esc+Esc 단축키

성장을 위한 3가지 축

  1. 도구 최신화: 새 기능 꾸준히 익히기
  2. 도메인 심화: 구현이 빨라진 만큼 설계에 더 투자
  3. 열린 마음으로 실험: "이건 못하겠지?"라는 선입견 버리기

참고 자료


이 글이 도움이 되셨다면, 오늘 하나의 새로운 기능을 직접 사용해보세요. Happy Coding! 🚀

반응형