[Claude 시리즈 4편] Claude 프롬프트 잘 쓰는 법 - 실무자 관점 실전 팁 (XML 태그 활용법 포함)
- 테스트 환경: Claude Sonnet 5 / Opus 4.8 (2026년 7월 기준)
같은 Claude를 쓰는데 어떤 사람은 "그저 그렇다"고 하고, 어떤 사람은 "없으면 일을 못 한다"고 합니다.
차이는 프롬프트입니다.
프롬프트 엔지니어링이라고 하면 거창해 보이지만, 실무에서는 몇 가지 원칙과 패턴만 알면 결과가 확 달라집니다. 특히 Claude는 XML 태그를 인식하도록 훈련되어 있어서, 이 특성을 활용하면 다른 AI보다 훨씬 정밀한 제어가 가능합니다.
이 글에서 다룰 내용입니다.
- 좋은 프롬프트의 5가지 원칙
- ★ Claude 고유의 XML 태그 활용법 (다른 AI에는 없는 강점)
- 실무자용 프롬프트 패턴 10개 (복붙 가능)
- 실패 프롬프트 Before/After 비교
- 프롬프트를 개선하는 3단계 방법
이 글은 시리즈 1~3편의 마지막이자, Phase 1(입문)의 완결편입니다.
바쁘신 분은 5가지 원칙부터 보세요.
먼저: 프롬프트를 쓰기 전에 할 일
가장 흔한 실수는 성공 기준 없이 프롬프트부터 쓰는 것입니다.
❌ 나쁜 접근:
일단 물어보고 → 결과 보고 → 마음에 안 들면 다시 물어보고 → 반복
✅ 좋은 접근:
1. 원하는 결과를 구체적으로 정의 ("무엇이 성공인가")
2. 그 결과를 얻을 프롬프트 작성
3. 결과 평가 → 프롬프트 개선
예시:
막연함: "회의록 정리해줘"
성공 기준 있음: "회의록에서 액션 아이템만 뽑아서,
담당자와 기한이 명시된 표로 만들어줘.
결정되지 않은 사항은 별도 목록으로."
성공 기준이 명확하면 프롬프트는 자연스럽게 좋아집니다.
좋은 프롬프트의 5가지 원칙
원칙 1: 구체적으로, 상세하게
Claude는 정보가 많을수록 정확합니다. 사람에게 일을 시킬 때처럼 배경을 설명하세요.
❌ "이 SQL 최적화해줘"
✅ "이 SQL을 최적화해주세요.
환경: Oracle 19c, 테이블 3천만 건
현재: 실행에 45초 소요
목표: 5초 이내
제약: 인덱스 추가는 가능, 테이블 구조 변경은 불가
[SQL 붙여넣기]"
핵심: 환경, 현재 상태, 목표, 제약사항. 이 4가지를 주면 답변 품질이 확연히 달라집니다.
원칙 2: 예시를 보여주세요 (Multishot)
말로 설명하는 것보다 예시 1~2개가 훨씬 효과적입니다.
다음 형식으로 에러 로그를 정리해주세요.
예시:
입력: "ORA-12541: TNS:no listener"
출력:
- 에러: ORA-12541
- 분류: 접속 에러
- 우선순위: 높음
- 첫 조치: lsnrctl status
이제 아래 로그를 같은 형식으로 정리해주세요.
[로그 붙여넣기]
고급 팁: 좋은 예시와 나쁜 예시를 함께 주면 더 정확해집니다.
좋은 예: "ORA-12541 발생 시 lsnrctl status로 리스너 상태 확인"
나쁜 예: "리스너 문제인 것 같습니다" (모호함, 조치 없음)
원칙 3: 단계별로 생각하게 하세요
복잡한 문제는 사고 과정을 요청하면 결과가 크게 좋아집니다.
이 장애의 원인을 분석해주세요.
먼저 <thinking> 태그 안에서 단계별로 추론해주세요:
1. 증상에서 알 수 있는 것
2. 가능한 원인들
3. 각 원인의 가능성 평가
그 다음 <answer> 태그 안에 결론을 정리해주세요.
왜 효과적인가: Claude가 답을 먼저 내고 근거를 붙이는 게 아니라, 근거를 쌓아서 답에 도달하게 됩니다.
원칙 4: 출력 형식을 지정하세요
원하는 형식을 명확히 말하지 않으면 Claude가 알아서 정합니다.
❌ "정리해줘"
✅ "다음 형식으로 정리해주세요:
- 마크다운 표로
- 컬럼: 원인 | 진단 방법 | 해결 방법 | 소요 시간
- 우선순위 높은 순으로 정렬
- 각 셀은 30자 이내"
원칙 5: "모르면 모른다고 해" 명시
이건 환각(hallucination)을 줄이는 강력한 방법입니다.
아래 문서를 기반으로만 답변해주세요.
문서에 없는 내용은 "문서에 명시되지 않음"이라고 말해주세요.
추측하지 마세요.
[문서 붙여넣기]
질문: [질문]
Claude는 원래 정직성이 높지만, 이렇게 명시하면 더 확실해집니다.
★ Claude 고유의 XML 태그 활용법
이 부분이 다른 AI와의 결정적 차이입니다. Claude는 훈련 과정에서 XML 태그를 인식하도록 학습되어 있습니다.
왜 XML 태그인가
프롬프트가 길어지면 Claude가 어디까지가 지시고 어디부터가 데이터인지 헷갈릴 수 있습니다. XML 태그는 이 경계를 명확히 합니다.
❌ 태그 없음 (경계 모호):
이 로그를 분석해줘 2026-07-01 10:23:45 ERROR ORA-04031
unable to allocate 4096 bytes 그리고 원인별로 정리해줘
✅ 태그 사용 (경계 명확):
<instructions>
아래 로그를 분석하고 원인별로 정리해주세요.
</instructions>
<log>
2026-07-01 10:23:45 ERROR ORA-04031
unable to allocate 4096 bytes
</log>
자주 쓰는 태그 6가지
태그 용도
| <instructions> | 지시사항 |
| <context> | 배경 정보 |
| <data> | 분석할 데이터 |
| <examples> | 예시 |
| <thinking> | 사고 과정 |
| <answer> | 최종 답변 |
중요: 태그 이름은 자유롭게 지어도 됩니다. <log>, <sql>, <meeting_notes> 같이 내용을 설명하는 이름이면 Claude가 이해합니다.
실전 XML 프롬프트 예시
<context>
저는 Oracle 19c 운영 DBA입니다.
환경: Oracle Linux 8, CDB/PDB 구성
운영 DB: PRODDB (24시간 무중단)
</context>
<task>
아래 AWR 리포트에서 성능 병목을 찾아주세요.
</task>
<awr_report>
[리포트 내용 붙여넣기]
</awr_report>
<instructions>
1. <thinking> 태그에서 단계별로 분석
2. <answer> 태그에 다음 형식으로 결론:
- 병목 TOP 3 (심각도 순)
- 각각의 근거 (AWR 수치 인용)
- 조치 방법 (운영 중 적용 가능 여부 명시)
</instructions>
<constraints>
- 운영 DB 재시작 불가
- ALTER SYSTEM은 DBA 승인 필요
</constraints>
이렇게 구조화하면 복잡한 요청도 정확히 처리됩니다.
★ 실무자용 프롬프트 패턴 10개
바로 복사해서 쓸 수 있는 패턴입니다. [대괄호] 부분만 본인 상황에 맞게 수정하세요.
패턴 1: 에러 진단
<context>
환경: [OS, DB 버전 등]
상황: [언제, 무엇을 하다가]
</context>
<error>
[에러 메시지 전문]
</error>
<instructions>
다음 순서로 답해주세요:
1. 가능성 높은 원인 3가지 (확률 순)
2. 각 원인의 진단 방법 (실행 가능한 명령어)
3. 원인별 해결 방법
4. 재발 방지 팁
</instructions>
패턴 2: 코드 리뷰
<code language="[언어]">
[코드 붙여넣기]
</code>
<instructions>
다음 관점에서 리뷰해주세요:
1. 잠재적 버그
2. 성능 이슈
3. 보안 취약점
4. 가독성
5. 개선 제안 (수정 코드 포함)
각 지적사항에 심각도(높음/중간/낮음)를 표시해주세요.
</instructions>
패턴 3: 문서 요약
<document>
[문서 붙여넣기 또는 파일 첨부]
</document>
<instructions>
다음 형식으로 요약해주세요:
- 핵심 3줄 요약
- 주요 쟁점 3가지
- 놓치기 쉬운 세부사항
- 추가 확인이 필요한 부분
문서에 없는 내용은 추측하지 말고
"문서에 명시되지 않음"이라고 해주세요.
</instructions>
패턴 4: 이메일 초안 (톤 3종)
<situation>
[상황 설명: 누구에게, 왜, 어떤 관계]
</situation>
<key_points>
- [전달할 핵심 1]
- [전달할 핵심 2]
</key_points>
<instructions>
아래 3가지 톤으로 각각 작성해주세요:
1. 정중하되 단호한 톤
2. 친근하되 전문적인 톤
3. 격식 있는 공식 톤
각 200자 이내.
</instructions>
패턴 5: 데이터 분석
<data>
[CSV 또는 파일 첨부]
</data>
<context>
이 데이터는 [출처, 기간, 의미]입니다.
</context>
<instructions>
1. 데이터 개요 (행 수, 컬럼, 결측치)
2. 주요 패턴 3가지
3. 이상치나 특이사항
4. 시각화 (차트를 Artifact로)
5. 실행 가능한 인사이트
</instructions>
패턴 6: 비교 분석
<options>
A: [옵션 A 설명]
B: [옵션 B 설명]
</options>
<criteria>
- [평가 기준 1]
- [평가 기준 2]
- [평가 기준 3]
</criteria>
<instructions>
1. 기준별 비교표
2. 각 옵션의 트레이드오프
3. 어떤 상황에 무엇이 맞는지
4. 제 상황([상황])에서의 추천과 근거
</instructions>
패턴 7: 스크립트 작성
<requirements>
목적: [무엇을 하는 스크립트]
환경: [OS, 셸 버전]
입력: [무엇을 받나]
출력: [무엇을 만드나]
</requirements>
<constraints>
- 에러 처리 필수
- 로그 기록 필수
- [기타 제약]
</constraints>
<instructions>
1. 스크립트 작성 (주석 포함)
2. 사용법 설명
3. 테스트 방법
4. 주의사항
</instructions>
패턴 8: 회의록 정리
<meeting_notes>
[회의록 붙여넣기]
</meeting_notes>
<instructions>
다음 3가지로 분리해주세요:
1. 결정 사항 (확정된 것만)
2. 액션 아이템 (표: 담당자 | 내용 | 기한)
3. 미결 사항 (다음 회의 안건)
논의만 되고 결정 안 된 것은
1번이 아니라 3번으로 분류해주세요.
</instructions>
패턴 9: 학습·이해
<material>
[학습할 문서/논문/코드]
</material>
<my_background>
저는 [배경, 알고 있는 것, 모르는 것]
</my_background>
<instructions>
1. 핵심 개념 5개 (제 배경 수준에 맞춰 설명)
2. 실무 적용 인사이트 3가지
3. 제가 더 공부해야 할 선행 지식
4. 이해했는지 확인할 질문 3개
</instructions>
패턴 10: 문제 해결 프레임워크
<problem>
[문제 상황 상세히]
</problem>
<what_i_tried>
- [시도 1] → [결과]
- [시도 2] → [결과]
</what_i_tried>
<constraints>
[시간, 예산, 기술적 제약]
</constraints>
<instructions>
<thinking> 태그에서 단계별로 분석한 후,
<answer> 태그에 다음을 정리해주세요:
1. 문제의 근본 원인 가설
2. 검증 방법
3. 해결 방안 3가지 (난이도/효과 표시)
4. 추천 순서
</instructions>
Before / After - 실패 프롬프트 고치기
실제로 자주 보는 실패 사례와 개선 버전입니다.
사례 1: 너무 막연함
❌ Before:
"DB 느린데 어떻게 해?"
✅ After:
<context>
Oracle 19c, 테이블 5천만 건
</context>
<symptom>
특정 조회 쿼리가 평소 2초 → 현재 40초
어제 오후부터 발생
다른 쿼리는 정상
</symptom>
<what_i_checked>
- CPU/메모리: 정상
- 통계 정보: 3일 전 수집
</what_i_checked>
<instructions>
가능성 높은 원인 3가지와 각각의 진단 SQL을 알려주세요.
</instructions>
결과 차이: Before는 일반론, After는 본인 상황에 맞는 진단 SQL.
사례 2: 출력 형식 미지정
❌ Before:
"이 에러들 정리해줘"
→ Claude가 알아서 산문으로 정리 (활용하기 어려움)
✅ After:
"이 에러들을 마크다운 표로 정리해주세요.
컬럼: 시각 | 에러코드 | 심각도 | 첫 조치
심각도 높은 순 정렬"
→ 바로 보고서에 붙여넣을 수 있는 표
사례 3: 검증 없이 신뢰
❌ Before:
"운영 DB에서 이 작업 하는 SQL 줘"
→ 받은 SQL을 바로 실행 (위험)
✅ After:
"운영 DB에서 이 작업을 하려고 합니다.
<instructions>
1. 실행할 SQL
2. 이 SQL의 영향 범위
3. 롤백 SQL
4. 테스트 환경 검증 방법
5. 주의사항
</instructions>"
→ 안전하게 검증 후 적용
프롬프트 개선 3단계
한 번에 완벽한 프롬프트는 없습니다. 개선하는 방법입니다.
1단계: 결과 평가
> 방금 답변을 스스로 평가해주세요.
제 요청 대비 부족한 부분이 무엇인가요?
Claude에게 자기 답변을 평가시키면 개선점이 나옵니다.
2단계: 프롬프트 개선 요청
> 제가 쓴 프롬프트를 개선해주세요.
어떤 정보가 더 있으면 좋은 답변이 나올까요?
제 프롬프트:
[원본 붙여넣기]
3단계: 템플릿화
잘 작동한 프롬프트는 템플릿으로 저장하세요.
저장 위치 옵션:
- Projects의 Custom instructions
- 메모 앱에 프롬프트 모음
- Claude Code라면 CLAUDE.md
팁: 자주 쓰는 프롬프트 5~10개를 템플릿으로 만들어두면 매번 새로 쓰는 시간이 사라집니다.
자주 하는 실수 5가지
실수 1: 한 프롬프트에 너무 많은 요청
❌ "이 코드 리뷰하고 리팩터링하고 테스트 짜고 문서화해줘"
✅ 하나씩 나눠서 요청 (품질이 훨씬 좋아짐)
실수 2: 부정 표현만 사용
❌ "장황하게 쓰지 마"
✅ "각 항목을 2줄 이내로 간결하게"
원하는 것을 말하는 게 원하지 않는 것을 말하는 것보다 효과적입니다.
실수 3: 컨텍스트 없이 이어서 질문
새 대화창에서 "아까 그거 말인데..."는 통하지 않습니다. Memory나 Projects를 쓰거나, 컨텍스트를 다시 주세요.
실수 4: 예시 없이 형식만 설명
❌ "표 형식으로 정리해줘"
✅ 원하는 표의 예시를 1줄이라도 보여주기
실수 5: 첫 답변에서 포기
첫 답변이 마음에 안 들면 "이 부분을 이렇게 바꿔줘" 라고 이어가세요. 대화형으로 다듬는 게 처음부터 완벽한 프롬프트를 쓰는 것보다 빠릅니다.
Phase 1 마무리 - 지금까지 배운 것
이 글로 Phase 1(입문)이 완결되었습니다. 4편을 통해 다룬 내용을 정리하면:
편 핵심
| 1편 | Claude는 Constitutional AI 기반의 안전·정직 중심 AI |
| 2편 | 95% 사용자는 Pro가 정답, 업그레이드 신호 5가지 |
| 3편 | 5분 세팅 + Projects가 게임 체인저 |
| 4편 | XML 태그 + 5가지 원칙 + 패턴 10개 |
이 4가지를 익히셨다면 Claude를 도구가 아니라 동료로 쓰실 수 있는 수준입니다.
마무리
프롬프트 엔지니어링의 핵심을 다시 정리하면:
- 성공 기준을 먼저 정의 — 무엇이 좋은 결과인가
- 구체적으로, 상세하게 — 환경, 현재, 목표, 제약
- ★ XML 태그 활용 — Claude 고유의 강점
- 예시를 보여주기 — 설명보다 예시 1개가 강력
- 템플릿화 — 잘 된 프롬프트는 재사용
가장 중요한 것은 완벽한 프롬프트를 처음부터 쓰려고 하지 않는 것입니다. 대화형으로 다듬어가는 게 훨씬 빠르고, 그 과정에서 본인만의 패턴입니다.
본인이 자주 쓰는 프롬프트 패턴이나, 효과가 좋았던 표현이 있다면 서로 공유해 사용하는것도 좋겠습니다.
공식 링크