Claude Code 작동 방식
에이전트 루프, 내장 도구, Claude Code가 프로젝트와 상호작용하는 방식을 이해합니다.
Claude Code는 터미널에서 실행되는 에이전트 어시스턴트입니다. 코딩에 탁월하지만, 문서 작성, 빌드 실행, 파일 검색, 주제 조사 등 커맨드 라인에서 할 수 있는 모든 작업을 도울 수 있습니다.
에이전트 루프
작업을 주면 Claude는 세 단계로 진행합니다: 컨텍스트 수집, 작업 실행, 결과 검증. 이 단계들은 서로 혼합됩니다. Claude는 코드를 이해하기 위해 파일을 검색하고, 변경을 위해 편집하고, 작업을 확인하기 위해 테스트를 실행하는 등 전 과정에서 도구를 사용합니다.
루프는 요청에 따라 적응합니다:
- 코드베이스에 대한 질문: 컨텍스트 수집만 필요할 수 있음
- 버그 수정: 세 단계를 반복적으로 순환
- 리팩토링: 광범위한 검증 포함
언제든지 Claude를 중단하고 다른 방향으로 이끌거나, 추가 컨텍스트를 제공하거나, 다른 접근 방식을 시도하도록 요청할 수 있습니다.
모델
Claude Code는 Claude 모델을 사용해 코드를 이해하고 작업을 추론합니다. 여러 모델을 사용할 수 있습니다:
- Sonnet: 대부분의 코딩 작업에 적합
- Opus: 복잡한 아키텍처 결정에 더 강한 추론 제공
세션 중 /model로 전환하거나 claude --model <name>으로 시작할 수 있습니다.
도구
도구는 Claude Code를 에이전트로 만드는 요소입니다. 도구 없이 Claude는 텍스트로만 응답합니다. 도구를 통해 Claude는 코드를 읽고, 파일을 편집하고, 명령을 실행하고, 웹을 검색하고, 외부 서비스와 상호작용할 수 있습니다.
| 카테고리 | Claude가 할 수 있는 것 |
|---|---|
| 파일 작업 | 파일 읽기, 코드 편집, 새 파일 생성, 이름 변경 및 재구성 |
| 검색 | 패턴으로 파일 찾기, 정규식으로 내용 검색, 코드베이스 탐색 |
| 실행 | 쉘 명령 실행, 서버 시작, 테스트 실행, git 사용 |
| 웹 | 웹 검색, 문서 가져오기, 오류 메시지 조회 |
| 코드 인텔리전스 | 편집 후 타입 오류와 경고 확인, 정의로 이동, 참조 찾기 |
Claude는 프롬프트와 이전 단계에서 학습한 내용을 바탕으로 어떤 도구를 사용할지 선택합니다.
예시: "실패하는 테스트를 수정해줘"라고 하면 Claude는:
- 테스트 스위트 실행해 실패 확인
- 오류 출력 읽기
- 관련 소스 파일 검색
- 코드 이해를 위해 파일 읽기
- 문제 수정을 위해 파일 편집
- 수정 검증을 위해 테스트 다시 실행
Claude가 접근할 수 있는 것
claude를 디렉토리에서 실행하면 Claude Code는 다음에 접근합니다:
- 프로젝트: 디렉토리와 서브디렉토리의 파일
- 터미널: 빌드 도구, git, 패키지 매니저, 시스템 유틸리티, 스크립트
- Git 상태: 현재 브랜치, 커밋되지 않은 변경, 최근 커밋 히스토리
- CLAUDE.md: 매 세션마다 Claude가 알아야 할 프로젝트별 지시, 규칙, 컨텍스트
- 설정된 확장: MCP 서버, 스킬, 서브에이전트, Chrome의 Claude
Claude가 프로젝트 전체를 볼 수 있기 때문에 여러 파일에 걸친 작업을 할 수 있습니다.
세션 작업하기
Claude Code는 작업하면서 대화를 로컬에 저장합니다. 각 메시지, 도구 사용, 결과가 저장되어 되감기, 재개, 포크가 가능합니다.
세션은 독립적입니다. 각 새 세션은 이전 세션의 대화 기록 없이 새로운 컨텍스트 윈도우로 시작합니다. Claude는 자동 메모리를 사용해 세션 간 학습을 지속할 수 있습니다.
브랜치 간 작업
각 Claude Code 대화는 현재 디렉토리에 연결된 세션입니다. 브랜치를 전환할 때 Claude는 새 브랜치의 파일을 보지만 대화 기록은 동일하게 유지됩니다.
세션 재개 또는 포크
claude --continue # 가장 최근 대화 재개
claude --resume # 대화 선택기 열기
# 분기해서 다른 접근 방식 시도
claude --continue --fork-session
컨텍스트 윈도우
Claude의 컨텍스트 윈도우는 대화 기록, 파일 내용, 명령 출력, CLAUDE.md, 로드된 스킬, 시스템 지시를 포함합니다.
컨텍스트가 가득 찰 때
Claude Code는 한도에 가까워지면 자동으로 컨텍스트를 관리합니다:
- 이전 도구 출력을 먼저 지움
- 필요한 경우 대화를 요약
- 요청과 주요 코드 스니펫은 보존
지속적인 규칙은 대화 기록에 의존하는 대신 CLAUDE.md에 넣으세요.
/context를 실행해 공간을 사용하는 것을 확인할 수 있습니다.
스킬과 서브에이전트로 컨텍스트 관리
- 스킬: 필요 시 로드됩니다. 수동으로 호출하는 스킬은
disable-model-invocation: true로 설정해 설명을 컨텍스트에서 제외할 수 있음 - 서브에이전트: 완전히 별도의 새로운 컨텍스트를 가집니다. 작업이 완료되면 요약을 반환
체크포인트와 권한으로 안전하게 유지하기
체크포인트로 변경 취소하기
모든 파일 편집은 되돌릴 수 있습니다. Claude가 파일을 편집하기 전에 현재 내용의 스냅샷을 저장합니다. 문제가 발생하면 Esc를 두 번 눌러 이전 상태로 되감기할 수 있습니다.
체크포인트는 세션에 로컬이며 git과 별개입니다. 파일 변경만 포함합니다.
Claude가 할 수 있는 것 제어하기
Shift+Tab으로 권한 모드 간 전환:
- 기본: 파일 편집과 쉘 명령 전에 요청
- 자동 편집 수락: 파일은 묻지 않고 편집, 명령에 대해서는 여전히 요청
- 플랜 모드: 읽기 전용 도구만 사용, 실행 전에 승인할 계획 생성
특정 명령을 .claude/settings.json에서 허용하면 Claude가 매번 묻지 않아도 됩니다.
Claude Code와 효과적으로 작업하기
도움 요청하기
Claude Code는 자기 사용 방법을 가르쳐 줄 수 있습니다:
> 훅은 어떻게 설정하나요?
> CLAUDE.md를 가장 잘 구성하는 방법은?
내장 명령:
/init- 프로젝트를 위한 CLAUDE.md 생성/agents- 커스텀 서브에이전트 설정/doctor- 설치 문제 진단
대화로 접근하기
Claude Code는 대화형입니다. 완벽한 프롬프트가 필요하지 않습니다:
> 로그인 버그를 수정해줘
[Claude 조사 후 시도]
> 그게 아닌 것 같아. 문제는 세션 처리에 있어.
[Claude 접근 방식 조정]
처음 시도가 올바르지 않으면 처음부터 다시 시작하지 않아도 됩니다. 반복합니다.
구체적으로 지정하기
프롬프트가 구체적일수록 수정이 적게 필요합니다:
> 만료된 카드를 가진 사용자의 체크아웃 흐름이 깨져 있어.
> 특히 토큰 새로 고침에 집중하여 src/payments/에서 문제를 확인해줘.
> 먼저 실패하는 테스트를 작성한 다음 수정해줘.
검증 기준 제공하기
Claude는 자신의 작업을 확인할 수 있을 때 더 잘 수행합니다:
> validateEmail을 구현해줘. 테스트 케이스: 'user@example.com' → true,
> 'invalid' → false. 그 다음 테스트를 실행해줘.
구현 전 탐색하기
복잡한 문제의 경우 연구와 코딩을 분리하세요:
> src/auth/를 읽고 세션 처리 방식을 이해해줘.
> 그런 다음 OAuth 지원 추가 계획을 만들어줘.
다음 단계
- 기능 확장 - 스킬, MCP 연결, 커스텀 명령 추가
- 일반적인 워크플로우 - 일상적인 작업을 위한 단계별 가이드
