본문 바로가기

claude code

[공식문서읽기] Claude Code 모범 사례 2편 - 효과적인 프롬프팅과 소통 전략

Claude Code와의 소통 방식은 결과의 품질에 크게 영향을 미칩니다. 이 글에서는 Claude Code에게 효과적으로 지시하고, 검증 방법을 제공하며, 계획적으로 작업을 수행하는 방법을 알아봅니다.


Claude에게 작업을 검증할 방법을 제공하세요

Claude가 자신의 작업을 확인할 수 있도록 테스트, 스크린샷 또는 예상 출력을 포함하세요. 이것이 할 수 있는 가장 높은 영향력의 단일 작업입니다.

Claude는 테스트를 실행하고, 스크린샷을 비교하고, 출력을 검증하는 등 자신의 작업을 검증할 수 있을 때 훨씬 더 잘 수행합니다.

검증 전략 비교

전략 이전 이후
검증 기준 제공 "이메일 주소를 검증하는 함수를 구현하세요" "validateEmail 함수를 작성하세요. 예제 테스트 케이스: user@example.com은 true, invalid는 false입니다. 구현 후 테스트를 실행하세요"
UI 변경사항 시각적 검증 "대시보드를 더 좋게 보이게 하세요" "[스크린샷 붙여넣기] 이 디자인을 구현하세요. 결과의 스크린샷을 찍고 원본과 비교하세요"
증상이 아닌 근본 원인 해결 "빌드가 실패하고 있습니다" "빌드가 이 오류로 실패합니다: [오류 붙여넣기]. 수정하고 빌드가 성공하는지 확인하세요. 근본 원인을 해결하고 오류를 억제하지 마세요"

검증은 테스트 스위트, linter 또는 출력을 확인하는 Bash 명령일 수도 있습니다. 검증을 견고하게 만드는 데 투자하세요.


먼저 탐색하고, 계획한 다음, 코드를 작성하세요

연구와 계획을 구현과 분리하여 잘못된 문제를 해결하는 것을 피하세요. Plan Mode를 사용하여 탐색과 실행을 분리하세요.

ai가 생성한 이미지로 본문 내용과 관련이 없을 수 있습니다.

권장 워크플로우 4단계

1단계: 탐색
Plan Mode를 입력하세요. Claude는 파일을 읽고 변경을 하지 않고 질문에 답합니다.

/src/auth를 읽고 세션과 로그인을 어떻게 처리하는지 이해하세요.
또한 비밀에 대한 환경 변수를 어떻게 관리하는지 살펴보세요.

2단계: 계획
Claude에게 상세한 구현 계획을 작성하도록 요청하세요.

Google OAuth를 추가하고 싶습니다. 어떤 파일을 변경해야 하나요?
세션 흐름은 무엇인가요? 계획을 작성하세요.

3단계: 구현
Normal Mode로 전환하고 Claude가 코드를 작성하도록 하며, 계획에 대해 검증하세요.

계획에서 OAuth 흐름을 구현하세요. 콜백 핸들러에 대한 테스트를 작성하고,
테스트 스위트를 실행하고 실패를 수정하세요.

4단계: 커밋
Claude에게 설명적인 메시지로 커밋하고 PR을 생성하도록 요청하세요.


Plan Mode 사용 시점

계획은 접근 방식이 불확실할 때, 변경이 여러 파일을 수정할 때, 또는 수정 중인 코드에 익숙하지 않을 때 가장 유용합니다. diff를 한 문장으로 설명할 수 있다면 계획을 건너뛰세요.


프롬프트에 구체적인 context를 제공하세요

지시사항이 정확할수록 필요한 수정이 적습니다. 특정 파일을 참조하고, 제약 조건을 언급하고, 예제 패턴을 지적하세요.

구체적인 프롬프트 전략

전략 이전 이후
작업 범위 지정 "foo.py에 대한 테스트를 추가하세요" "사용자가 로그아웃한 경우를 다루는 foo.py에 대한 테스트를 작성하세요. mock을 피하세요"
소스 지적 "ExecutionFactory가 왜 그렇게 이상한 api를 가지고 있나요?" "ExecutionFactory의 git 히스토리를 살펴보고 api가 어떻게 되었는지 요약하세요"
기존 패턴 참조 "캘린더 위젯을 추가하세요" "홈 페이지에서 기존 위젯이 어떻게 구현되는지 살펴보고 패턴을 이해하세요. HotDogWidget.php는 좋은 예입니다. 패턴을 따라 캘린더 위젯을 구현하세요"
증상 설명 "로그인 버그를 수정하세요" "사용자가 세션 시간 초과 후 로그인이 실패한다고 보고합니다. src/auth/의 인증 흐름을 확인하세요. 문제를 재현하는 실패하는 테스트를 작성한 다음 수정하세요"

 

풍부한 콘텐츠 제공 방법

  • @로 파일 참조: 코드가 어디에 있는지 설명하는 대신 직접 참조
  • 이미지를 직접 붙여넣기: 프롬프트에 이미지를 복사/붙여넣기 또는 드래그 앤 드롭
  • 문서 및 API 참조에 URL 제공: /permissions를 사용하여 자주 사용되는 도메인을 허용 목록에 추가
  • 데이터 파이프: cat error.log | claude를 실행하여 파일 내용을 직접 전송

Claude가 필요한 것을 가져오도록 하기: Bash 명령, MCP 도구 또는 파일 읽기 활용

코드베이스 질문하기

  • 로깅은 어떻게 작동하나요?
  • 새로운 API 엔드포인트를 만들려면 어떻게 하나요?
  • foo.rs의 134번 라인에서 async move { ... }는 무엇을 하나요?
  • CustomerOnboardingFlowImpl은 어떤 엣지 케이스를 처리하나요?
  • 이 코드가 333번 라인에서 bar() 대신 foo()를 호출하는 이유는 무엇인가요?

이런 방식으로 Claude Code를 사용하는 것은 효과적인 온보딩 워크플로우이며, 램프업 시간을 개선하고 다른 엔지니어의 부담을 줄입니다.


Claude가 당신을 인터뷰하도록 하세요

[간단한 설명]을 빌드하고 싶습니다. AskUserQuestion 도구를 사용하여 자세히 인터뷰해 주세요.

기술 구현, UI/UX, 엣지 케이스, 우려 사항, 트레이드오프에 대해 물어보세요.
명백한 질문을 하지 마세요. 고려하지 않았을 수 있는 어려운 부분을 파고드세요.

모든 것을 다룰 때까지 계속 인터뷰한 다음 SPEC.md에 완전한 사양을 작성하세요.

 

Claude는 기술 구현, UI/UX, 엣지 케이스, 트레이드오프를 포함하여 아직 고려하지 않은 것들에 대해 질문합니다.

  • 사양이 완료되면 새 세션을 시작하여 실행하세요. 새 세션은 구현에만 집중하는 깨끗한 context를 가지고 있으며, 참조할 수 있는 작성된 사양이 있습니다.

핵심 포인트:

  • 항상 검증 방법을 제공 (테스트, 스크린샷, 예상 출력)
  • 탐색 → 계획 → 구현 → 커밋 순서로 작업
  • 구체적인 파일, 패턴, 제약 조건을 명시
  • 큰 기능은 Claude가 먼저 인터뷰하도록 요청

참고 자료

이 글은 Claude Code를 활용하여 작성되었습니다.

  • 효과적인 프롬프팅은 Claude Code의 성능을 크게 향상시킵니다. 검증 방법을 제공하고, 계획을 세우고, 구체적인 context를 제공하면 더 나은 결과를 얻을 수 있습니다.
  • 더 큰 기능의 경우 Claude가 먼저 당신을 인터뷰하도록 하세요. 최소한의 프롬프트로 시작하고 Claude에게 AskUserQuestion 도구를 사용하여 인터뷰하도록 요청하세요.
  • 새로운 코드베이스에 온보딩할 때 Claude Code를 학습 및 탐색에 사용하세요. 다른 엔지니어에게 물어볼 것과 같은 종류의 질문을 Claude에게 할 수 있습니다: