동작하는 코드
복잡한 작업을 Plan 모드로 접근해봅시다. Shift+Tab을 눌러 Plan 모드로 전환합니다:
[Plan 모드]
> 이 Express 앱을 NestJS로 마이그레이션하는 계획을 세워줘.
Claude가 코드를 변경하지 않고 계획만 제시합니다:
마이그레이션 계획:
1단계: NestJS 프로젝트 구조 셋업
- @nestjs/core, @nestjs/common 등 의존성 추가
- 모듈/컨트롤러/서비스 디렉토리 구조 생성
2단계: 라우트를 컨트롤러로 변환
- GET /api/users → UsersController.findAll()
- POST /api/users → UsersController.create()
...
3단계: 미들웨어를 Guard/Interceptor로 변환
...
계획이 마음에 들면 다시 일반 모드(Shift+Tab)로 돌아와서:
> 위 계획의 1단계를 실행해줘
직접 수정하기
Think 모드를 써봅시다. 프롬프트에 "think"를 포함시키면 Claude가 더 깊이 추론합니다:
> 이 코드의 성능 병목을 분석해줘. 깊이 생각해봐 (think).
> @src/api/search.ts
더 강한 추론이 필요하면:
> 이 아키텍처의 문제점을 분석하고 개선안을 제시해줘.
> 아주 깊이 생각해봐 (think hard).
> @src/
일반 응답과 Think 모드 응답의 깊이 차이를 비교해보세요.
"왜?" — 실행 전에 생각하기
복잡한 작업을 바로 실행하면 중간에 방향이 틀어질 수 있습니다. Plan 모드는 코드를 건드리지 않고 계획을 세우는 안전한 공간입니다.
Plan 모드 vs 일반 모드
| 항목 | Plan 모드 | 일반 모드 |
| ----------- | ----------- | ----------- |
| 파일 수정 | 불가 | 가능 |
| 명령어 실행 | 불가 | 가능 |
| 분석/계획 | 최적화 | 실행 중심 |
| 전환 방법 | Shift+Tab | Shift+Tab |
Think 모드의 강도
| 프롬프트 | 강도 | 용도 | | -------------- | ---- | ------------------------ | | "think" | 기본 | 일반적인 분석 | | "think hard" | 강화 | 복잡한 아키텍처 결정 | | "think harder" | 최대 | 미묘한 버그, 성능 최적화 |
언제 Plan 모드를 쓰나요?
- 아키텍처 변경 (프레임워크 마이그레이션, 구조 재설계)
- 방향이 불확실한 작업 (여러 접근법이 있을 때)
- 대규모 리팩토링 전 영향 분석
- 기술 스택 선택 (장단점 비교)
심화 학습
Plan 모드에서 세운 계획을 저장할 수 있나요?
Plan 모드에서 나온 계획은 대화 내역의 일부이므로 /compact를 하면 요약될 수 있습니다. 중요한 계획은:
- Claude에게 "이 계획을 PLAN.md 파일로 저장해줘"라고 요청하세요.
- 또는 일반 모드로 전환한 뒤 계획 파일을 생성하세요.
계획을 파일로 남기면 이후 세션에서도 참조할 수 있습니다.
- Plan 모드에서 프로젝트의 아키텍처 개선 계획을 세워보세요.
- 같은 질문을 일반 모드와 "think hard" 모드로 해보고 응답의 깊이를 비교해보세요.
- 계획의 한 단계를 선택해서 일반 모드에서 실행해보세요.
Q1. Plan 모드에서 Claude Code가 할 수 없는 것은?
- A) 코드 분석
- B) 파일 수정
- C) 아키텍처 설명
- D) 마이그레이션 계획 제시