클로드 코드

[클로드 코드 완독 챌린지] - 2주차 : 프롬프트 잘 작성하기

sson-coding 2025. 10. 4. 16:27

CLAUDE.md 로 기본 설정을 마쳤다면, 이제는 “무엇을 어떻게 요청할 것인가” 가 중요하다. 효과적인 프롬프트 작성 기법과 컨텍스트 최적화를 통해 클로드와의 협업 효율성을 극대화 하는 법을 알아보자.

프롬프트 엔지니어링 기초

좋은 프롬프트 vs 나쁜 프롬프트

맥락과 조건을 구체적으로 담은 요청은 AI 가 더 정확하고 유용한 결과를 생성하도록 돕는다. 비효과적인 프롬프트는 단순히 “무엇을 해달라” 는 수준에서 멈추는 경우가 많다.

효과적인 프롬프트는 필요한 배경지식,원하는 출력 형식, 고려해야 할 제약 조건 등을 함께 명시한다.

프롬프트 구성 요소

  1. 컨텍스트(Context)
    • 프로젝트 환경, 사용 기술 스택, 목표와 제약 조건 같은 기본 맥락을 제공해야한다.
    현재 상황 : React + TypeScript 프로젝트
    목표 : 사용자 인증 시스템 구축
    제약 사항 : 무료 백엔드 서비스 사용
    
  2. 구체적인 요구사항
    • 어떤 기능이 필요하고, 어떤 기술적 조건을 만족해야 하는지 구체적으로 기술한다.
    기능 요구사항 : 
    - 이메일 인증 기반 회원가입
    - 소셜 로그인(google,github)
    - 비밀번호 재설정 기능
    기술 요구사항 :
    - TypeScript strict 모드
    - 반응형 디자인
    - 웹 접근성 고려
    
  3. 예상 결과물
    • 예상 결과물을 어떻게 받고 싶은지 알려주면, 불필요한 반복 요청을 줄이고 바로 활용 가능한 산출물을 얻을 수 있다.
    • 결과물 - 완전한 코드 구현 - 주요 부분에 대한 설명 - 설치 필요한 패키지 목록 - 테스트 방법 안내

컨텍스트 최적화 전략

작업 범위 명확히 제한하기

큰 프로젝트에서는 모든 파일을 대상으로 분석하면 불필요하게 리소스가 낭비된다.

#특정 디렉터리만 대상으로 제한
$ claude --add-dir src/components "컴포넌트 코드에서 버그를 찾아줘"

단계적 접근법

  1. 큰 그림 파악
  2. $ claude "프로젝트 전체 구조를 분석해서 문제가 있을 만항 영역을 찾아줘"
  3. 의심 영역 집중 분석
  4. $ claude --add-dir src/api "API 호출 부분에서 성능 이슈를 찾아줘"
  5. 구체적 문제 해결
  6. $ claude "@src/api/users.js 이 파일의 메모리 누수 원인을 찾아줘"

토큰 관리와 세션 최적화

프롬프트를 간결하게 유지하고, 세션을 관리하는 것은 효율성과 비용 절감으로 이어진다. Opus 는 강력하지만 빠르게 소진되므로 전략적으로 사용하는 것이 핵심이다.

토큰은 AI 가 텍스트를 처리하는 기본 단위로, 대력 영어 단어 기준으로 1토큰 = 0.75단어 이다.

모델 쿼터 관리하기

클로드 코드는 플랜에 따라 다양한 모델을 사용할 수 있으며, 쿼터 소진 시 자동으로 폴백된다. 고성능 Opus 를 사용하다 쿼터가 모두 소진되면 Sonnet 이 사용된다.

세션 관리 명령어

  1. /compact : 대화가 길어져서 응답이 느려질 때 , 현재 세션의 컨텍스트를 간소화
  2. /clear : 완전히 다른 주제로 넘어갈 때 , 세션 초기화
  3. /status : 현재 세션에서 사용중인 메모리나 MCP,어카운트,모델 등 상태를 확인할 때

Auto-Compact 모니터링

자동 압축(auto-compact)은 토큰 임계치 관리의 핵심 신호이다. 압축률을 관찰하는 것만으로도 세션 관리 상태를 진단할 수 있다.

클로드 코드는 토큰 사용량이 임계치에 도달하면 자동으로 컨텍스트를 압축한다.

이 수치를 관찰하는 것이 중요하다.

최적 관리 전략

  1. 압축률이 50% 이상일 때는 새 세션 시작 고려
    • /clear
  2. 압축률이 낮을 때는 불필요한 정보 정리
    • /compact

Auto-Compact 패턴 관찰

  1. 빈번한 발생 : 프롬프트가 너무 장황하거나 불필요한 정보가 많음
  2. 낮은 압축률 : 반복적인 정보나 중복 컨텍스트 존재
  3. 높은 압축률 : 복잡한 작업이 진행 중이거나 정보 손실 위험

효율성 증대 명령어 : —permission-mode

권한 모드는 반복 작업을 빠르게 자동화하거나, 복잡한 작업을 단계적으로 진행하는데 유용하다.

  1. acceptEdits : 반복적인 리팩토링 작업, 코드 정리
  2. plan : 복잡한 기능 개발, 아키텍처 변경, 대규모 마이그레이션
  3. bypassPermissions : 도구 실행보다 다양한 권한이 반복적으로 요구되는 작업
$ claude --permission-mode plan "새로운 결제 시스템을 구현해줘"

권한 모드에서 acceptEdits,bypassPermissions 사용 시 주의사항은 아래와 같다.

  1. 신뢰할 수 있는 작업에만 사용 : 코드 포맷팅, import 정리
  2. 중요한 로직 변경은 수동 확인
  3. 백업 필수 : git commit 상태에서만 사용
  4. 단계적 적용 : 작은 변경부터 시작해서 점진적으로 확대

언어 선택 전략 : 한글 vs 영어

언어에 따라 토큰 효율성이 크게 달라진다. 한글은 표현이 자연스럽지만 토큰을 많이 쓰고, 영어는 기술적 정확성과 효율성이 뛰어나다.

토큰 사용량

  • 영어 : 단어 4개 = 1토큰
  • 한글 : 음절 1게 = 2.3토큰

언어별 사용 권장 사항

  1. 한글
    • 복잡한 비즈니스 로직 설명이 필요할 때
    • 한국 특화 서비스 개발 시( 결제, 인증 등)
    • 팀원들과 소통할 때 자연스러운 표현이 중요한 경우
    • UI/UX 관련 설명이 ㅁ낳을 때
  2. 영어
    • 순수 기술적 구현에 집중할 때
    • 오픈소스 라이브러리나 프레임워크 작업
    • 코드 리뷰나 최적화 요청 시
    • Opus 쿼터를 절약할 때
    • 반복적인 간단한 작업 시
결제 모듈을 구현해줘
 Requirements:
 - PG integration(kakao,toss)
 - transaction logging

특수 문자 숏컷으로 프롬프트의 편의성 극대화

반복되는 복붙 없이도 , 특수 문자 기반 숏컷으로 훨씬 직관적이고 빠르게 대화할 수 있다.

@ - 파일 참조

@ 는 파일을 쉽게 참조할 수 있도록 도와주는 기능이다. 파일 경로를 입력하면 해당 파일의 내용을 자동을 읽어와서 컨텍스트로 제공한다.

@package.json "이 패키지 설정에 맞는 테스트 스크립트를 추가해줘"

장점

  1. 파일 내용을 직접 복사하고 붙여넣을 필요 없음
  2. 여러 파일을 동시에 참조 가능
  3. 프로젝트 구조를 고려한 맞춤형 답변
  4. 파일 경로만 입력하면 자동으로 내용 로딩

! - 명령어 실행

! 은 시스템 명령어를 사용자의 터미널에서 직접 실행할 때 사용한다. 사용자의 로컬 환경에서 실행되며, 클로드는 실행 결과를 활용할 수 있다.

# 시스템 명령어 실행
! npm install
! git status

제한사항

  1. 사용자의 터미널에서 직접 명령어 실행
  2. 사용자가 수동으로 확인해야 하는 작업에 적합

예시

  1. 일반적인 개발 시나리오
# 새로운 기능 개발
@src/api/auth.js "이 APi 코드에 에러 핸들링을 추가해줘"

# 코드 리뷰 요청
@src/components/ " 이 컴포넌트들을 리뷰하고 개선점을 제안해줘"

# 빌드 및 배포 준비
@package.json "프로덕션 빌드를 실행하고 배포 전 체크리스트를 만들어줘"
  1. 프로젝트 관리
# 클라이언트 미팅 준비
@src/ "비개발자도 이해할 수 있는 프로젝트 설명서를 작성해줘"

# 테스트 실행 및 리포트 생성
프로젝트 테ㅡ트를 실행3하고 클라이언트 보고서 형식으로 결과를 정리해줘

여러 줄 입력하기

복잡한 프롬프트나 코드는 여러 줄로 입력해야 하며 방법은 다음과 같다.

  1. \\+Enter : 모든 터미널에서 작동하는 표준 방법
  2. Shift+Enter : /terminal-setup 실행 후 사용 가능
    1. 클로드 코드 버전이나 설정에 따라 사용 불가능할 수 있음
    2. iTerm2, VS Code 터미널만 지원
다음 요구사항으로 함수를 작성해줘 \\
1. ~ \\
2 ~ \\
# Shift + Enter 바인딩 설정(iTerm2, VS Code 터미널만 지원)
> /terminal-setup

명령어 히스토리 활용하기

  1. ↑ / ↓ : 이전/다음 명령어 탬색
  2. Ctrl + R : 역방향 검색(터미널이 지원하는 경우)
  3. /clear : 현재 디렉터리의 히스토리 삭제

활용 방법

  1. 프로젝트별 히스토리 : 각 디렉터리마다 별도의 히스토리 유지
  2. 반복 작업 효율화 : 자주 사용하는 프롬프트를 빠르게 재실행
  3. 컨텍스트 유지 : 이전 작업과 연관된 프롬프트를 쉽게 참조

계층적 질문 전력

예를 들어 소상공인용 재고 관리 시스템을 만든다고 해보자.

  1. 큰 그림 파악
소상공인용 재고 관리 시스템의 전체 구조를 설계해줘
목표 : 실시간 재고 추적 + 발주 자동화
예상 사용자 : 카페/음식점 사장짐, 직원
  1. 세부 기능 구현
방금 설계한 구조에서 "재고 현황" 섹션을 구현해줘
- 재고 아이템 카드 컴포넌트
- 필터링 기능(카테고리별,상태별)
- 상세 정보 모달 또는 페이지 연결
  1. 세부 튜닝
재고 카드의 경고 표시를 개선해줘
- 재고 부족 시 색상 변경
- 임박 만료 아이템 강조
- 성증 최적화 

고급 프롬프트 기법

역할을 부여하거나 사고 과정을 단계로 나누면, 클로드가 더 전문적이고 논리적인 답변을 내놓는다.

롤플레잉 기법

특정 역할이나 전문가의 관점을 부여하여 더 적절하고 맥락에 맞는 답변을 얻는 전략이다. 예를 들어, “당신은 보안 전문가입니다.” 라고 역할을 부여하면, 클로드는 해당 관점에서 보안 취약점을 더 꼼꼼히 검토하고 보안 모범 사례를 적용한 코드를 제공한다.

단계별 사고 유도

복잡한 문제를 작은 단위로 분해하여 클로드가 체계적으로 접근하도록 유도하는 기법이다. 문제를 분석하고 솔루션을 비교하며 구현하는 단계로 나누면, 클로드는 각 단계를 꼼꼼히 검토하고 논리적인 흐름으로 문제를 해결한다.

문제를 쪼개서 단계별로 요청하면 체계적인 솔루션을 얻을 수 있다.

예를 들어

  1. 문제 분석
  2. 솔루션 비교
  3. 구현 방안
  4. 최적화 전략
  5. 각 단계별로 코드 예시와 함께 설명해줘

즉 , 좋은 프롬프트란 구체적인 컨텍스트 + 명확한 요구사항 + 예상 결과물 이다.