프롬프트 패턴 (Prompt Patterns)
검증된 프롬프트 패턴을 활용하면 일관되게 고품질 결과를 얻을 수 있습니다. 이 페이지는 다양한 시나리오에 바로 적용할 수 있는 실전 패턴을 소개합니다.
패턴 가이드
검증된 프롬프트 구조를 재사용하여 일관된 고품질 결과를 얻는 방법입니다.
6가지 핵심 패턴:
- 역할 기반 - "당신은 [전문가]입니다"
- 구조화된 출력 - JSON, 테이블, Markdown
- 단계별 분해 - "1단계, 2단계, ..."
- 컨텍스트 제공 - 배경 정보 명시
- Few-Shot - 예제 제공
- Chain-of-Thought - 사고 과정 표시
💡 사용 팁: 여러 패턴을 조합하면 더 강력합니다!
1. 역할 기반 패턴 (Role Prompting)
Claude에게 특정 전문가 역할을 부여하면 해당 도메인 지식과 어조로 응답합니다.
당신은 [전문 분야]의 [직책/역할]입니다.
[경력/자격] 년의 경험이 있으며, [특기]를 전문으로 합니다.
[작업 요청]
실전 예시
당신은 10년 경력의 시니어 백엔드 개발자입니다.
Python, Django, PostgreSQL을 전문으로 하며, 대규모 서비스 아키텍처 설계 경험이 풍부합니다.
다음 API 엔드포인트의 성능 문제를 분석하고 최적화 방안을 제시해주세요:
[코드]
당신은 기업법 전문 변호사입니다.
계약법, 지적재산권, M&A를 전문으로 하며, 다국적 기업 자문 경험이 있습니다.
다음 계약서 초안의 법적 리스크를 검토해주세요:
[계약서]
2. 구조화된 출력 패턴
명확한 출력 형식을 지정하여 파싱하기 쉬운 결과를 얻을 수 있습니다.
JSON 출력
다음 정보를 분석하고 JSON 형식으로 출력하세요.
출력 형식:
{
"필드1": "값",
"필드2": 123,
"필드3": ["항목1", "항목2"]
}
입력: [데이터]
테이블 출력
다음 제품들을 비교하고 Markdown 테이블로 출력하세요:
| 제품명 | 가격 | 주요 기능 | 평점 |
|--------|------|-----------|------|
| ... | ... | ... | ... |
제품 목록: [제품 정보]
3. 단계별 분해 패턴
복잡한 작업을 명시적인 단계로 나누면 정확도가 향상됩니다.
다음 작업을 단계별로 수행하세요:
1단계: [첫 번째 단계]
2단계: [두 번째 단계]
3단계: [세 번째 단계]
...
각 단계의 결과를 명시하고, 최종 답변을 제시하세요.
작업: [작업 설명]
실전 예시: 디버깅
다음 Python 코드의 버그를 찾고 수정하세요. 단계별로 진행하세요:
1단계: 코드를 읽고 예상 동작 파악
2단계: 잠재적 오류 위치 식별
3단계: 각 오류의 원인 분석
4단계: 수정 방안 제시
5단계: 수정된 코드 작성
6단계: 테스트 케이스 제안
코드:
```python
def calculate_average(numbers):
total = 0
for num in numbers:
total += num
return total / len(numbers)
result = calculate_average([])
print(result)
```
4. 컨텍스트 제공 패턴
필요한 배경 정보를 명확히 제공하여 환각(hallucination)을 줄입니다.
<context>
[관련 배경 정보, 문서, 데이터]
</context>
<task>
위 컨텍스트를 기반으로 다음 질문에 답변하세요:
[질문]
</task>
<constraints>
- 컨텍스트에 없는 정보는 추측하지 마세요
- 불확실한 경우 명시하세요
</constraints>
실전 예시: FAQ 생성
<product_manual>
[제품 매뉴얼 전문]
</product_manual>
위 매뉴얼을 기반으로 고객이 자주 묻는 질문 10개와 답변을 작성하세요.
형식:
## Q1: [질문]
**A:** [답변]
## Q2: [질문]
**A:** [답변]
...
규칙:
- 매뉴얼에 명시된 내용만 참조
- 각 답변 끝에 관련 페이지 번호 명시
5. 비교 분석 패턴
여러 옵션을 체계적으로 비교하여 의사결정을 지원합니다.
다음 [대상들]을 [평가 기준]으로 비교 분석하세요:
평가 기준:
1. [기준 1]
2. [기준 2]
3. [기준 3]
비교 대상:
- [옵션 A]
- [옵션 B]
- [옵션 C]
출력 형식:
## 기준별 비교
...
## 종합 평가
...
## 추천
[상황별 최적 선택]
실전 예시: 기술 스택 선택
다음 웹 프레임워크들을 비교하고 우리 프로젝트에 적합한 것을 추천하세요:
프로젝트 요구사항:
- 팀 규모: 5명 (주니어 2명 포함)
- 예상 트래픽: 일 10만 요청
- 주요 기능: REST API, 실시간 알림, 파일 업로드
- 개발 기간: 3개월
비교 대상:
1. Django (Python)
2. Express.js (Node.js)
3. Spring Boot (Java)
평가 기준:
- 학습 곡선
- 개발 속도
- 성능
- 생태계 (라이브러리, 커뮤니티)
- 유지보수성
6. 반복 개선 패턴
초안을 생성한 후 피드백을 받아 개선하는 패턴입니다.
# 1차 요청
[작업] 초안을 작성하세요.
# 2차 요청 (사용자 피드백 후)
다음 초안을 개선하세요:
<draft>
[Claude의 1차 응답]
</draft>
<feedback>
[사용자 피드백]
</feedback>
개선 사항:
- [개선 방향 1]
- [개선 방향 2]
실전 예시: 마케팅 문구
신제품 "CodeMaster AI" 런칭 이메일 제목을 5개 작성하세요.
제품 특징:
- AI 기반 코드 자동완성
- 30개 언어 지원
- 월 변동
타겟: 주니어 개발자
다음 제목들을 더 임팩트 있게 개선하세요:
<draft>
1. "CodeMaster AI 출시: AI가 코드를 대신 작성합니다"
2. "주니어 개발자를 위한 AI 코딩 어시스턴트"
3. "월 변동로 30개 언어 지원"
4. ...
</draft>
<feedback>
- 너무 직설적이고 지루함
- 가격보다 가치에 집중
- 감정적 연결 필요
</feedback>
개선 방향:
- 호기심 유발
- 베네핏 강조 (기능 X)
- 긴급성 추가
7. 제약 기반 패턴
명확한 제약사항을 제시하여 원하는 형태의 결과를 보장합니다.
[작업 설명]
제약사항:
✅ 반드시 지킬 것:
- [필수 요구사항 1]
- [필수 요구사항 2]
❌ 금지사항:
- [하지 말아야 할 것 1]
- [하지 말아야 할 것 2]
📏 길이 제한:
- 최소: [N]자
- 최대: [M]자
🎨 스타일:
- [어조, 형식 등]
실전 예시: SNS 게시물
다음 블로그 글을 Twitter 스레드(5개 트윗)로 변환하세요:
[블로그 글 전문]
제약사항:
✅ 반드시 지킬 것:
- 각 트윗은 280자 이하
- 1번 트윗에 후킹 문구 필수
- 5번 트윗에 CTA(행동 유도) 포함
- 핵심 메시지 유지
❌ 금지사항:
- 이모지 과다 사용 (트윗당 최대 2개)
- 해시태그 남발 (총 3개 이내)
- 전문 용어 무분별 사용
🎨 스타일:
- 친근하지만 전문적
- 짧은 문장
- 액션 동사 사용
8. 템플릿 채우기 패턴
미리 정의된 템플릿에 정보를 채워 넣는 방식입니다.
다음 정보를 바탕으로 템플릿을 완성하세요:
<template>
[템플릿 구조]
</template>
<data>
[원본 데이터]
</data>
규칙:
- 템플릿 구조는 변경하지 마세요
- [...] 부분만 채우세요
- 데이터에 없는 정보는 "정보 없음"으로 표시
실전 예시: 이력서 생성
<template>
# [이름]
[직무] | [이메일] | [전화번호]
## 경력 요약
[3줄 요약]
## 핵심 역량
- [역량 1]
- [역량 2]
- [역량 3]
## 경력
### [회사명] | [직책] | [기간]
- [주요 성과 1]
- [주요 성과 2]
## 학력
[학교명] | [전공] | [졸업년도]
## 프로젝트
### [프로젝트명]
- 설명: [프로젝트 설명]
- 기술: [사용 기술]
- 성과: [측정 가능한 성과]
</template>
<raw_data>
이름: 김개발
5년 경력 백엔드 개발자
Python, Django 주력
ABC회사 2020-2023 시니어 개발자
XYZ대학 컴퓨터공학과 2019년 졸업
...
</raw_data>
9. 페르소나 기반 패턴
타겟 사용자 페르소나를 명시하여 맞춤형 결과를 얻습니다.
<persona>
이름: [가상 인물명]
나이: [연령대]
직업: [직업]
기술 수준: [초급/중급/고급]
목표: [달성하려는 목표]
어려움: [현재 겪는 문제]
</persona>
위 페르소나를 위해 [작업]을 수행하세요.
실전 예시: 튜토리얼 작성
<persona>
이름: 민수 (가명)
나이: 25세
직업: 주니어 데이터 분석가 (경력 6개월)
기술 수준: Python 기본 문법은 알지만 라이브러리 경험 부족
목표: Pandas로 엑셀 데이터 분석 자동화
어려움: DataFrame 개념이 어렵고, 에러 메시지 해석 못함
학습 스타일: 예제 코드를 직접 실행하며 배우는 것 선호
</persona>
위 페르소나를 위한 "Pandas DataFrame 기초" 튜토리얼을 작성하세요.
요구사항:
- 실행 가능한 코드 예제 포함
- 각 단계마다 예상 출력 표시
- 자주 발생하는 에러와 해결법 포함
- 총 30분 이내 완료 가능한 분량
10. 검증 패턴
Claude에게 자신의 답변을 검증하도록 요청합니다.
[작업 수행]
작업 완료 후, 다음을 자가 검증하세요:
체크리스트:
□ [검증 항목 1]
□ [검증 항목 2]
□ [검증 항목 3]
검증 결과를 명시하고, 문제가 있다면 수정하세요.
실전 예시: SQL 쿼리 검증
다음 요구사항에 맞는 SQL 쿼리를 작성하세요:
요구사항:
- 테이블: orders, customers
- 2024년 1월 주문 금액 상위 10명 고객
- 고객명, 총 주문액, 주문 건수 출력
- 총 주문액 내림차순 정렬
쿼리 작성 후, 다음을 검증하세요:
✅ 체크리스트:
□ JOIN 조건이 올바른가?
□ WHERE 조건이 정확한가?
□ GROUP BY가 필요한가?
□ 정렬 방향이 맞는가?
□ 성능 최적화 (인덱스 활용)
□ SQL 인젝션 취약점 없는가?
검증 결과:
[각 항목별 OK/문제점 명시]
최종 쿼리:
```sql
...
```
패턴 조합하기
여러 패턴을 조합하면 더욱 강력한 프롬프트를 만들 수 있습니다.
# 역할
당신은 사이버 보안 전문가입니다.
# 구조화된 출력
다음 코드의 보안 취약점을 분석하고 JSON으로 출력하세요:
```python
[코드]
```
출력 형식:
{
"vulnerabilities": [
{
"severity": "HIGH|MEDIUM|LOW",
"type": "SQL Injection|XSS|...",
"location": "line X",
"description": "...",
"fix": "..."
}
],
"overall_score": "A|B|C|D|F"
}
# 검증
출력 전 다음을 확인하세요:
□ 모든 취약점을 발견했는가?
□ severity 분류가 OWASP 기준에 맞는가?
□ fix가 실제로 적용 가능한가?
패턴 사용 팁
1. 프롬프트 라이브러리 구축
자주 사용하는 패턴을 저장하고 재사용하세요.
# prompts.py
PATTERNS = {
"code_review": """당신은 시니어 개발자입니다.
다음 코드를 리뷰하고:
1. 좋은 점
2. 개선 사항
3. 리팩토링 제안
을 제시하세요.
코드:
{code}""",
"summarize": """다음 문서를 {length} 이내로 요약하세요:
{document}"""
}
def get_prompt(pattern_name, **kwargs):
return PATTERNS[pattern_name].format(**kwargs)
2. A/B 테스트
동일한 작업에 대해 다른 패턴을 시도하고 결과를 비교하세요.
3. 점진적 개선
간단한 프롬프트에서 시작해 결과를 보며 제약사항을 추가하세요.
다음 단계
프롬프트 패턴을 익혔다면 고급 기법들을 탐색하세요:
- Few-shot 학습 - 예제로 패턴 학습시키기
- Chain-of-Thought - 단계별 추론 강화
- 시스템 프롬프트 - 일관된 행동 정의
핵심 정리
- 프롬프트 패턴 (Prompt Patterns)의 핵심 개념과 흐름을 정리합니다.
- 패턴 가이드를 단계별로 이해합니다.
- 실전 적용 시 기준과 주의점을 확인합니다.
실무 팁
- 입력/출력 예시를 고정해 재현성을 확보하세요.
- 프롬프트 패턴 (Prompt Patterns) 범위를 작게 잡고 단계적으로 확장하세요.
- 패턴 가이드 조건을 문서화해 대응 시간을 줄이세요.