Challenge/Inflearn

[클로드 코드] 챌린지 2주차 - 프롬프트 작성

graph-dev 2025. 10. 1. 14:15
728x90

 

클코

 

프롬프트

 

CLAUDE.md로 설정을 마치고, 요청을 잘하기 위해 프롬프트를 "잘" 만들어야 합니다.

 

이제 효과적인 프롬프트 작성법, 컨텍스트 최적화로, 클로드 협업 효율성을 높이겠습니다.

 

1. 프롬프트 엔지니어링 기초

프롬프트 1 : 단순히 "무엇을 해줘"  0점입니다. 중요 맥락이 빠지면서 결과가 부정확할 수 있네요.

가령, 회원가입 기능 구현해줘는 어떨까요?

어떤 기술 스택을 사용할지
어떤 필드가 필요한지
어떤 검증 규칙이 필요한지
프론트엔드만? 백엔드도?
데이터베이스 연동은?

 

전부 누락되겠습니다. 이것을 보완해보면 다음과 같습니다.

React와 Node.js/Express를 사용해서 회원가입 기능을 구현해줘. 
- 필드: 이메일, 비밀번호, 비밀번호 확인, 이름 
- 이메일 형식 검증과 비밀번호 강도 체크 포함 
- 프론트엔드 컴포넌트와 백엔드 API 엔드포인트 모두 필요

 

한번 더 구체화해서 프롬프트를 만들어 보겠습니다.

회원가입 시스템을 만들고 싶어. 다음 사양으로 구현해줘: 

기술 스택: 
- 프론트엔드: React with TypeScript 
- 백엔드: Node.js + Express 
- 데이터베이스: PostgreSQL 

필수 기능: 
1. 회원가입 폼 (이메일, 비밀번호, 이름, 전화번호) 
2. 유효성 검증: 
- 이메일 중복 확인 
- 비밀번호: 최소 8자, 대소문자+숫자+특수문자 포함 
- 전화번호 형식 검증 
3. 비밀번호 해싱 (bcrypt 사용) 
4. 가입 성공 시 JWT 토큰 발급 
5. 에러 처리 및 사용자 피드백 

추가 요청: 
- 폼 제출 중 로딩 상태 표시 
- 깔끔한 UI (Tailwind CSS 사용) 
- API 응답 형식은 JSON

 

이렇게 배경지식, 출력 형식, 제약 조건을 언급하는 것이 좋습니다.

 

프롬프트 구성요소

1. 컨텍스트(Context) : 배경 정보로 프로젝트 환경, 기술 스택, 목표와 제약 조건 등이 해당합니다.

2. 구체적인 요구사항 : 맥락으로 부족하고, 기능과 기술 조건을 구체적으로 기술합니다.

3. 예상 결과물 : 반복 요청을 줄일 수 있습니다. 바로 활용 가능하도록 결과물을 만듭니다.

 

컨텍스트 최적화 전략

1. 작업 범위 명확히 제한하기

 

이거 보다는, 특정 디렉터리만으로 제한하여 명령합니다.

claude --add-dir 디렉터리 "해당 디렉터리 코드에서 버그를 찾아주세요"

 

2. 단계적 접근법(Narrow Down)

한번에 해결하지 말고, 큰 그림, 의심하는 영역, 원인 순으로 좁혀나가세요.

 

2-1. "전체 구조를 분석해서 문제가 있을 만한 영역을 찾아주세요"

2-2. "특정 디렉터리 API" "API 호출할 때, 성능 이슈를 찾아주세요"

2-3. "@디렉터리/특정 파일 이 파일의 메모리 누수 원인을 찾아주세요"

 

토큰 관리와 세션 최적화

1. 토큰 효율성 고려하기

요금제별 모델 정책을 이해하고 사용합니다. Opus, 비싸고 강력한 것은 숨겨둔 한 수로 사용합니다.

특히, 입력도 토큰 소진이 되겠죠. 괜히 길게 프롬프트 쓰지 말라는 뜻이에요. 두괄식으로 깔끔하게 갑시다.

 

2. 모델 쿼터 관리하기

비싼 Opus 다 쓰면, Sonnet을 쓰는 것처럼, 주어진 쿼터를 고려해서 작업하는게 좋습니다.

 

3. 세션 관리 명령어

대화가 길면 컨텍스트가 커지므로, /compact, /clear, /status를 조합하여 사용합니다.

/compact 는 응답이 느리면 쓰고, /clear는 다른 주제일 때 쓰고, /status는 모니터링 용도입니다.

 

4. Auto-Compact 모니터링

토큰 임계치 관리의 핵심 방법으로, 자동 압축을 합니다. 압축률을 관리해서 임계치에 도달했는지 볼 수도 있습니다. 이 자동 압축 수치는 성능 지표, 정보 손실 경고, 작업 효율성 측면에서 이를 고려해야 합니다.

 

 

최적의 전략은, 50% 이상 압축률은 /clear로 새롭게 하고, 완전 낮으면 /compact로 컨텍스트를 간소화합니다. 적절한 압축률이면 /status를 보면서 넘어가는거죠.

 

5. 권한 모드 --permission-mode

이 명령어는 여러 가지가 속합니다. permission mode, acceptEdits, plan, bypassPermission

반복 작업을 빠르게 자동화(acceptEdits, bypass 등)하거나 단계적 실행(plan)에 유용한데, 신뢰성 및 안전성을 고려해서 사용해야 합니다.

 

6. 언어 선택도 전략적으로 합니다. 한글은 토큰을 많이 쓰고, 영어는 기술 정확성과 효율성이 높습니다.

 

그러면 한글은 안 쓰는게 좋을까요? 그렇지 않습니다. 

 

한글은, 한국인이라면 자연스럽게 의도를 전달하고, 복잡한 비즈니스 로직도 쉽게 설명할 수 있습니다.

 

영어는 기술 정확성과 우수한 토큰 사용량, 간결한 표현에서 좋습니다. 요금제가 낮은 클로드를 사용하시면, 영어를 권장합니다.

 

특수 문자 숏컷: 프롬프트 효율화

1. @ - 파일 참조 : 파일 내용 직접 가져와서 프롬프트에 넣어 명령할 수 있습니다.

2. ! 시스템 명령어 실행 : 사용자 터미널에서 직접 실행

 

여러 줄 입력

\ 엔터키가 일반적이고,

일부 맥 터미널은 옵션 + 엔터,

itemr2, vscode 터미널 /terminal-setup 설정으로 쉬프트 + 엔터로 여러 줄 입력을 할 수 있습니다.

 

더 길어진다면, 별도 파일로 프롬프트 작성하고 @파일 숏컷을 사용합시다.

 

그 외에도, 작업 디렉터리별로 명령어 히스토리를 사용합니다. 방향키 위/아래를 사용합니다.

 

계층적 질문 전략

큰 그림 파악 > 세부 기능 구현 > 세부 튜닝

복잡한 task는 이렇게 좁혀가며 활용하는 것이 좋습니다.

 

 

실전 프롬프트 템플릿

교재에는 전용 템플릿이 있어, 상황별로 적절히 수정할 수 있도록 제공하고 있습니다.

 

 

실습: 프로젝트 기획

1. 프로젝트 기획서 작성

프로젝트로 개발할 웹 애플리케이션을 기획해줘.

조건:
- 주제: 지방소멸위험 알리미 서비스
- 기간: 3개월 (2025.03 - 2025.05)
- 팀: 2명 (풀스택 개발자 1명, 디자이너 1명)
- 예산: 1000만원 이내

고려사항:
- 실용성과 편의성
- 유지보수 및 확장 가능성

결과물:
- 프로젝트 개요
- 주요 기능 3개
- 기술 스택 추천
- 주차별 개발 일정
- 예산 분배 방안

 

 

 

2. 기술 스택 선정

앞에서 기획한 프로젝트에 적합한 기술 스택을 추천해줘.

고려사항:
개발 속도 (빠른 프로토타이핑)
클라이언트 요구사항
개발 생산성
배포 및 유지보수
비용 효율성

비교 기준:
프론트엔드: React vs Vue vs Angular
백엔드: Node.js vs Python vs Java
데이터베이스: PostgreSQL vs MongoDB vs Firebase
배포: AWS vs Netlify vs Vercel
상태관리: Redux vs Zustand vs Context API

결과물:
추천 기술 스택 (이유 포함)
단계별 가이드
대안 기술 스택
마이그레이션 기획

 

기술 스택

 

 

3. 개발 환경 세팅

선정한 기술 스택으로 개발 환경을 세팅해주세요.

요구사항:
팀 협업 환경 (Git, EsLint, Prettier)
개발 효율성 (Hot reload, 디버깅)
코드 품질 (TypeScript, 테스트)
CI/CD 파이프라인 기초

단계별 가이드:
프로젝트 초기화 패키지 설치 및 설정 디렉터리 구조 생성 기본 컴포넌트 생성 Git 설정 배포 준비

결과물:
완전한 세팅 명령어
설정 파일
팀 공유용 README
트러블슈팅 가이드

결과 확인

 

 

각 단계별로 환경을 세팅하고, 정리하면 아래와 같습니다.

 

 

고급 프롬프트 기법

 

1. 롤플레잉 기법

- 이전에 페르소나를 부여해서 작업하는 방식과 동일합니다.

- 전문가 역할을 넣어 답변의 깊이를 높이네요.

 

2. 단계별 사고 유도

- 이전에 CoT라고 하는, 복잡한 과제를 단계별로 작은 단위 분해해서 체계적으로 접근하게 만드는 방법입니다.

- Chain of Thought

 

문제 해결 팁

실수 1: 너무 모호한 요청

ex) 웹 사이트 예쁘게 만들어 줘 > 어떤 페이지를 개선해주고, 개선할 기능 요구사항을 명확히 합니다.

 

실수 2: 컨텍스트 정보 부족

ex) 버그 고쳐줘 > 이거보다는 해당 버그 메시지를 가져오는 게 좋습니다.