AI (Claude 활용)/Claude 입문

[Claude 시리즈 4편] Claude 프롬프트 잘 쓰는 법 - 실무자 관점 실전 팁 (XML 태그 활용법 포함)

isony 2026. 7. 17. 06:52
반응형

[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를 도구가 아니라 동료로 쓰실 수 있는 수준입니다.

 

마무리

프롬프트 엔지니어링의 핵심을 다시 정리하면:

  1. 성공 기준을 먼저 정의 — 무엇이 좋은 결과인가
  2. 구체적으로, 상세하게 — 환경, 현재, 목표, 제약
  3. ★ XML 태그 활용 — Claude 고유의 강점
  4. 예시를 보여주기 — 설명보다 예시 1개가 강력
  5. 템플릿화 — 잘 된 프롬프트는 재사용

가장 중요한 것은 완벽한 프롬프트를 처음부터 쓰려고 하지 않는 것입니다. 대화형으로 다듬어가는 게 훨씬 빠르고, 그 과정에서 본인만의 패턴입니다.

본인이 자주 쓰는 프롬프트 패턴이나, 효과가 좋았던 표현이 있다면 서로 공유해 사용하는것도 좋겠습니다.

 

공식 링크

반응형