클로드 실행 모드 마스터하기
1. 클로드 코드 실행 모드 개요
클로드 코드는 크게 세 가지 방식으로 실행할 수 있습니다. 상황에 따라 적합한 모드를 선택하면 훨씬 효율적으로 사용할 수 있습니다.
- 인터랙티브 모드: 대화하면서 작업하는 기본 모드
- 프린트 모드: 파이프라인이나 스크립트에서 사용하는 비대화형 모드
- YOLO 모드: 모든 권한 요청을 자동 승인하는 모드
2. 인터랙티브 모드(대화형 모드)
가장 일반적인 사용 방식입니다. 터미널에서 claude를 실행하면 대화형 프롬프트가 시작됩니다.
claude # 현재 디렉터리에서 시작
claude --resume # 이전 대화 이어하기
claude "질문 내용" # 시작 메시지와 함께 실행세션 지속성
인터랙티브 모드에서는 대화가 이어지면서 이전 작업의 맥락을 유지합니다. 단, 세션을 종료(/exit)하면 다음 실행 시에는 새로운 대화로 시작됩니다.
--resume 플래그
이전 세션의 마지막 대화 상태를 불러옵니다. 작업 중에 터미널을 실수로 닫았을 때 유용합니다.
claude --resume3. 프린트 모드(비대화형 모드)
-p 플래그(또는 --print)를 사용하면 단일 질문에 대한 답을 받고 바로 종료합니다. 셸 스크립트나 CI/CD 파이프라인에서 활용할 수 있습니다.
# 기본 사용
claude -p "이 프로젝트의 README를 작성해줘"
# 출력을 파일로 저장
claude -p "package.json을 분석해서 보안 취약점 목록을 JSON으로 줘" > report.json
# 파이프로 입력 받기
cat error.log | claude -p "이 에러 로그를 분석해줘"
# git diff와 결합
git diff | claude -p "이 변경사항을 한국어 커밋 메시지로 작성해줘"활용 예시: 자동화 스크립트
#!/bin/bash
# 매일 아침 TODO 파일을 분석해서 오늘 할 일 정리
claude -p "$(cat TODO.md) 위 내용에서 오늘 처리해야 할 긴급 항목만 뽑아줘"4. YOLO 모드(권한 스킵 옵션)
기본적으로 클로드 코드는 파일을 쓰거나 명령어를 실행하기 전에 승인을 요청합니다. 이 승인 과정을 줄이는 방법은 세 가지입니다.
방법 1: Auto 모드 (권장)
별도의 분류기 모델이 명령어를 검토하고, 위험해 보이는 것만 차단합니다. 대부분의 일상적인 작업은 자동 승인됩니다.
claude --permission-mode auto
# 또는 프린트 모드에서
claude --permission-mode auto -p "모든 린트 에러 수정해줘"방법 2: 권한 허용 목록
/permissions 명령어로 특정 도구나 명령어를 미리 허용합니다:
/permissions
# 예: npm run lint, npm test, git commit 등을 자동 승인 목록에 추가방법 3: 샌드박스 모드
OS 수준의 격리를 활성화해서 파일시스템과 네트워크 접근을 제한합니다:
/sandbox방법 4: --dangerously-skip-permissions
모든 권한 요청을 자동 승인합니다. 가장 위험한 옵션입니다.
claude --dangerously-skip-permissions주의: 이 모드는 클로드 코드가 확인 없이 파일을 삭제하거나 수정할 수 있습니다. 반드시 git 저장소에서만, 테스트 환경에서만 사용하세요. 실무에서는 Auto 모드를 권장합니다.
5. 인터랙티브 모드의 특수 키 기능
입력 관련
- Enter: 메시지 전송
- Shift+Enter: 줄 바꿈 (메시지 내에서 여러 줄 입력)
- Escape: 현재 입력 취소 또는 멀티라인 모드 종료
- ↑ / ↓: 이전/다음 입력 히스토리 탐색
- Tab: 슬래시 명령어나 @파일 경로 자동완성
실행 중 제어
- Ctrl+C: 클로드 코드의 현재 작업 중단 (처리 중인 도구 실행 취소)
- Ctrl+C (두 번): 클로드 코드 완전 종료
Vim 키바인딩
Vim 사용자라면 설정에서 Vim 모드를 활성화할 수 있습니다:
# ~/.claude/settings.json
{
"keybindings": "vim"
}6. 모드별 상세 설명
--model 플래그
실행 시 모델을 직접 지정할 수 있습니다:
claude --model claude-opus-4-5 # 최고 성능
claude --model claude-haiku-4-5 # 최고 속도--add-dir 플래그
현재 디렉터리 외에 추가 디렉터리를 컨텍스트에 포함시킵니다:
claude --add-dir ../shared-library # 공유 라이브러리도 함께 참조--output-format 플래그 (프린트 모드)
claude -p "분석해줘" --output-format json # JSON 형태로 출력
claude -p "분석해줘" --output-format text # 일반 텍스트 (기본값)7. 모드별 사용 시나리오
시나리오 1: 일상적인 코딩 작업
→ 인터랙티브 모드. 대화하면서 맥락을 쌓아가는 작업에 가장 적합합니다.
시나리오 2: 커밋 메시지 자동 생성
→ 프린트 모드. git hook에 등록해서 자동화할 수 있습니다.
# .git/hooks/prepare-commit-msg
#!/bin/bash
COMMIT_MSG_FILE=$1
DIFF=$(git diff --cached)
if [ -n "$DIFF" ]; then
MSG=$(echo "$DIFF" | claude -p "이 diff를 보고 Conventional Commits 형식의 커밋 메시지를 작성해줘. 메시지만 출력해.")
echo "$MSG" > "$COMMIT_MSG_FILE"
fi시나리오 3: 대규모 마이그레이션
→ YOLO 모드 (git 저장소 필수). 수백 개 파일의 API 경로를 바꾸는 작업 등.
8. 문제 해결 및 팁
프린트 모드에서 응답이 너무 길면
claude -p "요약해서 3줄로만 알려줘: $(cat report.txt)"대화 기록 저장
# 터미널 출력 전체를 파일로 저장
claude | tee session.log여러 파일을 순서대로 처리
for file in src/**/*.js; do
claude -p "이 파일을 TypeScript로 변환해줘: $(cat $file)" > "${file%.js}.ts"
done