DaleSchool

복잡한 문제 풀기

고급20분

학습 목표

  • Plan 모드와 일반 모드의 차이를 이해한다
  • 복잡한 작업에서 Plan 모드를 활용할 수 있다
  • Think 모드로 Claude의 추론 품질을 높일 수 있다

동작하는 코드

복잡한 작업을 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를 하면 요약될 수 있습니다. 중요한 계획은:

  1. Claude에게 "이 계획을 PLAN.md 파일로 저장해줘"라고 요청하세요.
  2. 또는 일반 모드로 전환한 뒤 계획 파일을 생성하세요.

계획을 파일로 남기면 이후 세션에서도 참조할 수 있습니다.

  1. Plan 모드에서 프로젝트의 아키텍처 개선 계획을 세워보세요.
  2. 같은 질문을 일반 모드와 "think hard" 모드로 해보고 응답의 깊이를 비교해보세요.
  3. 계획의 한 단계를 선택해서 일반 모드에서 실행해보세요.

Q1. Plan 모드에서 Claude Code가 할 수 없는 것은?

  • A) 코드 분석
  • B) 파일 수정
  • C) 아키텍처 설명
  • D) 마이그레이션 계획 제시

참고 자료