> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 기본 워크플로우

> Claude Code의 슬래시 커맨드, 메모리, 모드 전환 등 일상 워크플로우

## 한 줄 요약

Claude Code의 일상 사용은 **세 가지 모드와 핵심 슬래시 커맨드 한 줌**만 알면 90% 커버됩니다.

## 핵심 모드 — 무엇을 할 때 어떤 모드?

| 모드                   | 진입 방법                            | 언제 쓰나                          |
| -------------------- | -------------------------------- | ------------------------------ |
| **기본 (Interactive)** | `claude`                         | 질문·답변, 가벼운 수정. 매 도구 호출마다 권한 확인 |
| **Plan 모드**          | `Shift+Tab`으로 사이클 또는 `> /plan`   | 큰 작업을 시작하기 전에 계획만 세우고 실행은 차단   |
| **Auto 모드**          | `Shift+Tab`으로 사이클                | 명백히 안전한 작업을 자율적으로 연속 실행        |
| **Bypass 모드**        | `--dangerously-skip-permissions` | 모든 권한 확인 우회. 격리된 컨테이너에서만 권장    |

> **추천 패턴**: 큰 변경은 `/plan`으로 계획 → 검토 → 승인 → 실행. 자잘한 작업은 기본 모드.

## 자주 쓰는 슬래시 커맨드

### `/init` — 새 프로젝트에 CLAUDE.md 생성

프로젝트를 처음 열었을 때 한 번만 실행합니다.

### `/clear` — 대화 컨텍스트 초기화

긴 대화로 컨텍스트가 무거워졌을 때, 또는 완전히 다른 작업으로 전환할 때.

### `/compact` — 대화 압축

컨텍스트는 유지하되 토큰 사용량을 줄이고 싶을 때. `/clear`보다 부드러운 옵션.

### `/help` — 사용 가능한 명령 목록

### `/model` — 모델 전환

* `claude-opus-4-7` — 가장 강력, 복잡한 추론·아키텍처 설계
* `claude-sonnet-4-6` — 일반 작업 기본값, 균형
* `claude-haiku-4-5` — 빠른 응답, 단순 작업

### `/cost` — 누적 사용량 확인

세션 동안 토큰 사용량과 비용을 표시.

### `/review` — PR 또는 변경사항 리뷰

### `/permissions` — 권한 화이트리스트 인터랙티브 편집

## 메모리 시스템 — 세션을 넘어 기억

Claude Code는 세 가지 레벨의 메모리를 가집니다:

### 1. 단기 메모리 — 현재 대화

하나의 `claude` 세션 안에서만 유지. `/clear`하거나 종료하면 사라짐.

### 2. 프로젝트 컨텍스트 — `CLAUDE.md`

`<project>/CLAUDE.md`에 둔 모든 내용은 **모든 세션 시작 시 자동 로드**.

### 3. 사용자 글로벌 컨텍스트 — `~/.claude/CLAUDE.md`

모든 프로젝트에서 자동 로드.

### 4. 자동 메모리 (선택)

일부 환경에서는 `~/.claude/projects/<프로젝트>/memory/` 경로에 사용자 프로필·피드백·프로젝트 사실을 자동 저장하는 자동 메모리 시스템이 활성화됩니다. 사용자가 "이거 기억해줘"라고 말하면 거기에 영구 저장됩니다.

## 효과적인 프롬프트 작성

### 나쁜 예 (너무 짧음)

```
> bug 고쳐줘
```

### 좋은 예 (목표 + 상황 + 제약)

```
> 사용자 로그인이 5분 후 강제 만료되는 버그가 있어.
  관련 코드는 src/auth/session.ts에 있을 거 같고,
  토큰 만료가 아니라 세션 갱신 로직 문제로 의심돼.
  쿠키 만료 시간이 5분으로 하드코딩된 곳이 있는지 찾아보고,
  찾으면 환경 변수로 바꿔줘 (기본값 1시간).
```

### 더 좋은 예 (검증 단계 명시)

```
> 위 작업 후, src/auth/__tests__/session.test.ts에 테스트 추가하고
  npm run test로 통과 확인해줘. 테스트 미통과면 끝났다고 하지 말 것.
```

## 멀티 파일 / 대규모 변경 흐름

복잡한 작업은 **계획 → 실행 → 검증 → 커밋** 4단계로 분리합니다:

### 1단계: 계획 모드로 진입

```
> /plan
> 사용자 인증 시스템에 OAuth2 추가하고 싶어. 현재 구조 분석하고 단계별 계획 줘.
```

Claude가 코드베이스를 탐색한 뒤 계획을 제시. 실행은 차단됩니다.

### 2단계: 계획 검토 후 승인

계획이 적절하면 `Esc`로 빠져나와 자동/기본 모드에서 실행을 지시.

### 3단계: 실행

```
> 위 계획대로 진행해줘. 각 단계 끝날 때마다 짧게 요약하고,
  테스트 추가는 마지막이 아니라 단계마다 같이 해줘.
```

### 4단계: 검증

```
> 변경 후 npm run test와 npm run lint 둘 다 통과하는지 확인하고,
  실패하면 원인을 알려줘 (자동 수정 시도하지 말고).
```

## Git 통합 패턴

### 커밋 메시지 자동 생성

```
> 지금까지의 변경사항을 staged 후 conventional commit 형식으로 커밋해줘
```

### PR 생성

```
> 현재 브랜치를 origin에 push하고 gh pr create로 PR 만들어줘.
  PR 본문에 변경 요약, 테스트 plan, 스크린샷 위치(있다면)를 포함.
```

### 커밋 전 검증 후크

`.claude/settings.json`에 PreCommit 훅을 등록하면, Claude가 커밋 명령을 실행하기 전에 자동으로 lint/test가 돌아갑니다 ([자동화와 후크](/blog/guides/claude-code/automation-hooks) 참조).

## 흔한 실수와 피하는 법

| 실수                | 결과               | 피하는 법                        |
| ----------------- | ---------------- | ---------------------------- |
| 짧은 프롬프트("이거 고쳐줘") | 엉뚱한 곳 수정         | 목표·파일·검증 기준 명시               |
| 검증 없이 "완료" 선언     | 동작 안 하는 코드 머지    | "테스트까지 통과 후 완료"를 프롬프트에 포함    |
| 큰 작업을 한 번에 요청     | 컨텍스트 폭주, 부분 실패   | `/plan`으로 분할 후 단계 실행         |
| 시크릿 파일 노출         | API 키 학습 데이터에 포함 | `.claudeignore`에 `.env` 등 추가 |
| 모든 권한 자동 승인       | 잘못된 명령이 실수로 실행   | 위험 명령은 화이트리스트에서 제외           |

## 단축키 치트 시트

| 키              | 기능                                   |
| -------------- | ------------------------------------ |
| `Shift+Tab`    | 모드 사이클 (기본 ↔ Plan ↔ Auto)            |
| `Esc`          | 현재 작업 취소 / 모드 빠져나오기                  |
| `Ctrl+C` (두 번) | Claude Code 종료                       |
| `Ctrl+L`       | 화면 클리어 (대화는 유지)                      |
| `↑` / `↓`      | 이전 프롬프트 탐색                           |
| `!` 시작         | Bash 명령 직접 실행 (`!ls`, `!git status`) |
| `@`            | 파일 자동완성 (`@src/main.ts`)             |

## 다음 단계

다음 페이지에서 Databricks와의 연계 활용을 다룹니다.
