2주차클로드 코드 설정하기요일

클로드 실행 모드 마스터하기

1. 클로드 코드 실행 모드 개요

클로드 코드는 크게 세 가지 방식으로 실행할 수 있습니다. 상황에 따라 적합한 모드를 선택하면 훨씬 효율적으로 사용할 수 있습니다.

  • 인터랙티브 모드: 대화하면서 작업하는 기본 모드
  • 프린트 모드: 파이프라인이나 스크립트에서 사용하는 비대화형 모드
  • YOLO 모드: 모든 권한 요청을 자동 승인하는 모드

2. 인터랙티브 모드(대화형 모드)

가장 일반적인 사용 방식입니다. 터미널에서 claude를 실행하면 대화형 프롬프트가 시작됩니다.

claude                    # 현재 디렉터리에서 시작
claude --resume           # 이전 대화 이어하기
claude "질문 내용"         # 시작 메시지와 함께 실행

세션 지속성

인터랙티브 모드에서는 대화가 이어지면서 이전 작업의 맥락을 유지합니다. 단, 세션을 종료(/exit)하면 다음 실행 시에는 새로운 대화로 시작됩니다.

--resume 플래그

이전 세션의 마지막 대화 상태를 불러옵니다. 작업 중에 터미널을 실수로 닫았을 때 유용합니다.

claude --resume

3. 프린트 모드(비대화형 모드)

-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
내 메모
📝내 메모