본문 바로가기

claude code

[공식문서읽기] Claude Code 모범 사례 3편 - 세션 관리와 자동화로 작업 확장하기

Claude Code의 대화는 지속적이고 되돌릴 수 있습니다. 세션을 효과적으로 관리하고, 병렬 실행과 자동화를 활용하면 작업을 크게 확장할 수 있습니다. 이 글에서는 세션 관리 전략과 자동화 패턴을 알아봅니다.

ai로 생성된 이미지로 콘텐츠와 관련이 없을 수 있습니다.

조기에 자주 방향을 수정하세요

Claude가 잘못된 방향으로 가는 것을 알아차리면 즉시 수정하세요. 최고의 결과는 긴밀한 피드백 루프에서 나옵니다.

방향 수정 도구

도구 사용법 설명
Esc 한 번 누르기 Claude의 작업을 중간에 중지. Context는 보존
Esc + Esc 또는 /rewind 두 번 누르기 rewind 메뉴를 열고 이전 대화 및 코드 상태를 복원
"Undo that" 메시지 입력 Claude에게 변경 사항을 되돌리도록 요청
/clear 명령어 입력 관련 없는 작업 간에 context를 재설정

 

한 세션에서 같은 문제에 대해 Claude를 두 번 이상 수정했다면 context는 실패한 접근 방식으로 복잡해져 있습니다. /clear를 실행하고 배운 내용을 통합하는 더 구체적인 프롬프트로 새로 시작하세요.


Context를 적극적으로 관리하세요

관련 없는 작업 간에 /clear를 자주 실행하여 context window를 재설정하세요.

Claude Code는 context 제한에 접근할 때 대화 히스토리를 자동으로 압축하여 중요한 코드와 결정을 보존하면서 공간을 확보합니다.

Context 관리 전략

  • 작업 간에 자주 /clear를 사용하여 context window를 완전히 재설정
  • 더 많은 제어를 위해 /compact <instructions>를 실행. 예: /compact Focus on the API changes
  • CLAUDE.md에서 압축 동작을 사용자 정의:
    When compacting, always preserve the full list of modified files and any test commands

Subagents를 사용하여 조사하세요

"use subagents to investigate X"로 연구를 위임하세요. Subagents는 별도의 context에서 탐색하여 주 대화를 구현에 깨끗하게 유지합니다.

context가 기본 제약이므로 subagents는 사용 가능한 가장 강력한 도구 중 하나입니다:

우리의 인증 시스템이 토큰 새로고침을 처리하는 방법과
재사용해야 할 기존 OAuth 유틸리티가 있는지 조사하기 위해 subagents를 사용하세요.

subagent는 코드베이스를 탐색하고, 관련 파일을 읽고, 주 대화를 복잡하게 하지 않고 모두 발견 사항을 보고합니다.

검증을 위해서도 subagents를 사용할 수 있습니다:

이 코드를 엣지 케이스에 대해 검토하기 위해 subagent를 사용하세요.

Checkpoints로 Rewind하세요

Claude는 변경 전에 자동으로 checkpoint를 생성합니다. Escape를 두 번 누르거나 /rewind를 실행하여 checkpoint 메뉴를 열기.

Checkpoint 복원 옵션

  • 대화만 복원: 코드 변경 유지
  • 코드만 복원: 대화 유지
  • 둘 다 복원: 완전히 이전 상태로

모든 이동을 신중하게 계획하는 대신 Claude에게 위험한 것을 시도하도록 할 수 있습니다. 작동하지 않으면 rewind하고 다른 접근 방식을 시도하세요. Checkpoints는 세션 간에 지속되므로 터미널을 닫고 나중에 여전히 rewind할 수 있습니다.


대화 재개

claude --continue를 실행하여 중단한 곳에서 계속하거나 --resume을 사용하여 최근 세션에서 선택하세요.

claude --continue    # 가장 최근 대화 재개
claude --resume      # 최근 대화에서 선택

/rename을 사용하여 세션에 설명적인 이름을 지정하세요("oauth-migration", "debugging-memory-leak"). 다양한 작업 스트림은 별도의 지속적인 context를 가질 수 있습니다.


Headless 모드 실행

CI, pre-commit hooks 또는 스크립트에서 claude -p "prompt"를 사용하세요. 스트리밍 JSON 출력을 위해 --output-format stream-json을 추가하세요.

# 일회성 쿼리
claude -p "이 프로젝트가 무엇을 하는지 설명하세요"

# 스크립트를 위한 구조화된 출력
claude -p "모든 API 엔드포인트 나열" --output-format json

# 실시간 처리를 위한 스트리밍
claude -p "이 로그 파일 분석" --output-format stream-json

Headless 모드는 Claude를 CI 파이프라인, pre-commit hooks 또는 자동화된 워크플로우에 통합하는 방법입니다.


여러 Claude 세션 실행

개발 속도를 높이고, 격리된 실험을 실행하거나, 복잡한 워크플로우를 시작하기 위해 여러 Claude 세션을 병렬로 실행하세요.

병렬 세션 방법

  • Claude Desktop: 여러 로컬 세션을 시각적으로 관리. 각 세션은 자신의 격리된 worktree를 가짐
  • 웹의 Claude Code: Anthropic의 안전한 클라우드 인프라에서 격리된 VM에서 실행
  • Agent teams: 공유 작업, 메시징, 팀 리드를 통한 여러 세션의 자동 조정

Writer/Reviewer 패턴 예시

 

파일 간 Fan Out

각각에 대해 claude -p를 호출하는 루프를 통해 작업을 반복하세요. 배치 작업을 위해 --allowedTools를 사용하여 권한을 범위 지정하세요.

Fan Out 워크플로우

1단계: 작업 목록 생성
Claude가 마이그레이션이 필요한 모든 파일을 나열하도록 하세요.

 

2단계: 목록을 반복하는 스크립트 작성

for file in $(cat files.txt); do
  claude -p "$file을 React에서 Vue로 마이그레이션하세요. OK 또는 FAIL을 반환하세요." \
      --allowedTools "Edit,Bash(git commit *)"
      done

 

3단계: 몇 개 파일에서 테스트한 다음 규모대로 실행
처음 2-3개 파일에서 잘못된 것을 기반으로 프롬프트를 개선한 다음 전체 세트에서 실행하세요.


일반적인 실패 패턴 피하기

패턴 문제 수정
주방 싱크 세션 한 작업으로 시작한 다음 관련 없는 것을 물어봄 관련 없는 작업 간에 /clear 사용
반복적으로 수정 같은 문제에 대해 두 번 이상 수정 두 번의 실패 후 /clear하고 더 나은 프롬프트로 재시작
과도하게 지정된 CLAUDE.md 파일이 너무 길어 중요한 규칙이 손실 무자비하게 정리하거나 hook으로 변환
신뢰-검증 간격 엣지 케이스를 처리하지 않는 구현 항상 검증(테스트, 스크립트, 스크린샷) 제공
무한 탐색 범위 없이 조사 요청, context 채움 조사를 좁게 범위 지정하거나 subagents 사용

직관 개발

이 가이드의 패턴은 시작점입니다. 작동하는 것에 주의하세요.

Claude가 훌륭한 출력을 생성할 때 당신이 한 것을 주목하세요:

  • 프롬프트 구조
  • 제공한 context
  • 당신이 있던 모드

시간이 지남에 따라 어떤 가이드도 포착할 수 없는 직관을 개발할 것입니다:

  • 구체적일 때와 개방적일 때
  • 계획할 때와 탐색할 때
  • Context를 지울 때와 누적하도록 할 때

마무리

세션 관리와 자동화를 마스터하면 Claude Code의 능력을 크게 확장할 수 있습니다. 단일 세션에서 병렬 실행, CI 통합까지 다양한 패턴을 활용하세요.

 

핵심 포인트:

  • 조기에 자주 방향 수정 (Esc, /rewind, /clear)
  • Subagents로 연구 위임하여 context 절약
  • Headless 모드로 자동화 파이프라인 구축
  • 병렬 세션으로 Writer/Reviewer 패턴 활용
  • 실패 패턴을 인식하고 피하기

참고 자료

이 글은 Claude Code를 활용하여 작성되었습니다.