클로드의 잠재력을 끌어올리는 2가지 방법

CoT

  • Chain of Through
  • CoT 기법 적용해야 하는 이유
    • 정확성: 각 단계를 검증하며 진행하므로 최종 결론의 신뢰도가 높아진다.
    • 일관성: 최종 결과물을 더욱 긴밀하고 체계적인 구성을 갖추도록 돕는다.
    • 디버깅 용이성: 논리적 흐름으로 특정 결과에 도달했는지 투명하게 보여준다.
  • CoT 유도방법
    • 프롬프트에 ‘생각해라’라는 문구만 들어가 있으면 된다.
    • ex) 단순히 REST API 어떻게 설계 할 수 있는지 단계별로 생각하고 답변해줘.

확장된 사고

  • 확장된 사고 유도 방법
    • ‘고민해라’라고 말하면 된다.
    • ‘고민해라’보다 ‘깊게 고민해라’가 더 오랜 사고를 유도하고, ‘더 깊게 고민해라’는 더욱 더 오랜 사고를 유도한다.
    • ex) 다루지 않은 엣지 케이스에 대해 더욱 깊게 고민해줘

커스텀 슬래시 커맨드 사용하기

  • /<prefix>:<command-name> [arguments]
    • <prefix>: 커스텀 커맨드의 스코프를 명시한다. (예: 프로젝트 단위는 project, 사용자 단위는 user),
    • <command-name>: 커맨드가 정의된 마크다운 파일의 이름
    • [arguments]: 커맨드에 제공할 선택적 매개변수.
  • 스코프
    • 프로젝트 커스텀 슬래시 커맨드
      • 위치: .claude/commands/
      • 프로젝트에 밀접하게 관련 있는 CI 실행, PRD 작성, 테스트 실행 및 구현 등
    • 사용자 커스텀 슬래시 커맨드
      • 위치: ~/.claude/comannds
      • 여러 프로젝트에 걸쳐서 사용하게 되는 커맨드
    • 네임스페이싱
      • 프로젝트 네임스페이스 위치: .claude/commands/<namespace>/<command>.md
      • 프로젝트 네임스페이스 위치: ~/.claude/commands/<namespace>/<command>.md
      • prefix: /<namespace>:<command>
  • 커스텀 슬래시 커맨드 마크다운 파일 정의하기
    • !를 사용해서 bash command를 명시하거나 @를 사용해서 파일을 참조할 수 있다.

MCP 사용하기

  • MCP: LLM이 데이터베이스, API, 파일 시스템과 같은 외부 도구 및 데이터 소스에 접근할 수 있도록 설계된 클라이언트-서버 구조의 개방형 프로토콜
  • stdio는 로컬에서 실행되므로 지연 시간이 매우낮지만, 직접 서버를 업데이트해야 하기 때문에 항상 최신 버전을 사용하고 있다고 장담할 수 없다.
  • stdio가 가장 많이 사용되는 방식
구분stdio 서버SSE 서버HTTP 서버
실행 위치로컬 컴퓨터원격 서버원격 서버
통신 방향양방향 (프로세스 통신)단방향 (서버 -> 클라이언트)양방향 (요청/응답)
연결 방식프로세스 실행지속적 연결요청 기반 연결
핵심 용도로컬 도구 및 스크립트 연동실시간 데이터 스트리밍일반적인 원격 API 연동

PRD와 실행 계획하기

PRD

  • Product Requrements Document
  • 무엇을, 왜 만들어야 하는지 정의하는 문서
  • PRD의 질문
    • 어떤 사용자를 위해 만드는가?
    • 어떤 문제를 해결해주는가?
    • 비즈니스 측면에서 어떤 이득이 있는가?
    • 어떤 기능과 경험을 제공해야 하는가?
    • 사용자는 어떤 경험을 하게 되는가?
    • 우리는 무엇을(What), 왜(Why) 만드는가?

실행 계획

  • PRD를 구현하기 위해 계획을 작성한 문서
  • 실행 계획의 질문
    • 어떤 기술 스택을 사용할 것인가?
    • 아키텍처를 어떻게 구성할 것인가?
    • 데이터를 어떤모델로 저장할 것인가?
    • 어떤 함수와 클래스를 작성할 것인가?
    • 어떤 작업을 먼저 수행할 것인가?

PRD 작성법

  • 문제 정의: 해결하려는 사용자나 비즈니스의 문제가 무엇인지 명확하고 간결하게 설명한다.
  • 타깃 사용자 및 사용 사례: 제작할 서비스/기능을 사용할 핵심 사용자가 누구이고 어떻게 어떤 상황에서 사용하게 될지 정의한다.
  • 제안 해결책: 문제를 해결하기 위해 어떤 해결책을 제시할지 짧게 설명한다.
  • 목표 및 성공 지표: 서비스/기능을 제작했을 때 어떻게 하면 좋을지 정확히 정의한다. ‘로그인 기능 추가’같은 모호한 목표가 아니라 ‘재방문률 15% 상승’ 등 실패 여부를 수치화하고 전과 후를 비교할 수 있는 명확한 목표와 지표를 정의하는 게 유용하다.
  • 경쟁자 분석, MVP 요구사항에 대해서 작성하는것도 좋다.

실행 계획 작성법

  • PRD 하나당 꼭 실행 계획이 하나만 있어야 하는 건 아니다.
  • 작업 분해: PRD의 사용자 스토리 하나를 가져와, 이걸 구현하기 위해 필요한 모든 기술적 작업을 나열한다.
    • 예: ‘프론트엔드 UI 버튼 제작’, ‘백엔드 OAuth 콜백 API 개발’
  • 기술 명세: 각 Task에 대한 구체적인 결정을 내린다.
    • 예: API의 Request/Response 형태는 어떻게 할지 ,어떤 라이브러리를 사용할지, 에러 처리는 어떻게 할지 등을 명시한다.
  • 의존성 파악: Task 간의 선후관계를 정의한다.
  • 산출물 및 일정: 각 Task가 얼마나 걸릴지 예측하고, 언제까지 완료할지 현실적인 일정을 세운다.

에이전트 병렬로 실행하기

서브에이전트

  • 코드 에이전트가 작업을 위해 또 다른 에이전트를 생성해서 업무를 진행한다.
  • 병렬 실행
    • 서브에이전트를 활용해서 병렬 실행을 처리할 떄는 서로 독립적인 작업을 시키는 게 유리하다. 한 작업이 다른 작업에 영향을 주지 않아 충돌 없이 작업 가능하다.
    • 병렬로 작업을 처리하고 싶으면 클로드 코드에게 어떤 작업을 어떻게 병렬로 어떤 프롬프트와 함께 병렬로 처리할지 명시해주면 된다.
  • 직렬 실행
    • 직렬 실행을 사용하는 이유: 콘텍스트 사이즈 때문
    • 서브 에이전트가 독립적인 작업을 하고 결괄만 되돌려주도록하여 메인 에이전트의 콘텍스트 사이즈를 아낄 수 있다.
    • 클로드 코드는 시키지 않아도 내부적으로 직렬 에이전트 기능을 사용하고 있다.
      • Task가 보이면 서브 에이전트가 실행되고 있는 것이다.
    • 프롬프트로 직업 어떤 작업에 서브 에이전트를 생성할지 명시할 수 있다.
      • 예: XXX 작업을 할 때 subagent를 생성해서 작업해줘

커스텀 서브에이전트

  • 클로드 코드가 작업 중에 서브에이전트를 생성하면 아무런 세팅 없이 기본 서브에이전트가 생성된다.
  • 커스텀 서브에이전트를 미리 정의해두면 어떠한 작업을 하기 위해 서브에이전트를 생성할 때마다 각 작업에 최적화된 서브에이전트가 실행되도록 할 수 있다.
  • 생성 방법
    • /agent 커맨드 (추천)
    • 직접 마크다운 파일 생성
  • /agent 커맨드를 이용해서 커스텀 서브에이전트 생성하기
    • 프로젝트 스코프나 사용자 스코프로 저장할 수 있다.
    • 서브 에이전트가 사용할 도구를 지정할 수 있다.
    • 서브 에이전트가 사용할 색상을 선택할 수 있다.
  • 커스텀 서브에이전트 마크다운 프런트매터
    • name: 서브에이전트의 이름
    • description: 클로드 코드가 어떤 서브에이전트를 사용해야 할지 판단할 때 이 필드를 확인하고 판단한다.
    • color: 커스텀 서브에이전트가 실행될 떄 쉽게 확인할 수 있도록 색상을 지정할 수 있다.
  • 클로드 코드가 커스텀 서브에이전트를 사용하는 방법 2가지
    • 클로드 코드가 자동으로 프롬프트를 분석하고 어떤 서브에이전트를 트리거할지 정할 수 있도록 한다.
    • 커스텀 에이전트의 이름을 프롬프트에 명확히 명시해서 해당 서브에이전트를 무조건 사용할 수 있도록 한다.
  • 커스텀 서브에이전트 사용 사례: 테스트 에이전트, 아키텍처 레이어별 에이전트, 하면 안 되는 작업 명시하기

독립 에이전트

  • 방법1: 여러 프로젝트에 병렬로 에이전트 실행하기
  • 방법2: Git Worktree로 병렬 에이전트 실행하기

깃허브 워크플로 사용하기

  • github 이슈를 통해서 해야될 작업들을 생성해서 관리하고, 이슈마다 클로드 코드가 병렬적으로 구현을 하도록 구성할 수 있다.
  • 작업들을 분석하고 이슈를 생성하는 것도 클로드 코드를 통해서 할 수 있다.
  • 클로드 코드롸 깃허브를 연동할 때 MCP와 깃허브 CLI 두 가지 방법이 있는데, 엔트로픽에서는 깃허브 CLI를 사용하는 것을 추천하고 있다.
  • 효율적으로 깃허브 워크플로를 자동화하려면 이슈에 레이블을 작성해두는 것이 에이전트가 효율적으로 활용할 수 있게 도움이 된다.
  • 이슈를 작업하도록 할 때도 커스텀 슬래시 커맨드로 프롬프트를 작성해두면 좋다.
  • 워크트리를 활용해 병렬로 작업을 하면 더 효율적이다.