본문으로 건너뛰기

XML 태그로 프롬프트 구조화하기

중급
What you'll learn
  • XML 스타일 태그가 왜 Claude에게 프롬프트 부분들 사이의 명확한 경계를 주는지
  • 지시, 문서, 예시, 형식 규칙을 이름 붙인 태그로 감싸는 법
  • 안정적으로 파싱할 수 있는 태그 출력을 Claude에게 요청하는 법
  • 언제 태그를 붙일지 — 그리고 언제 과하게 태그하지 말지

프롬프트가 지시, 문서, 예시, 질문을 섞어 놓으면 모델이 이들을 뭉뚱그릴 수 있습니다. XML 스타일 태그는 각 부분에 레이블을 붙이는 깔끔한 방법이며 — Claude는 여기에 특히 잘 반응합니다.

핵심 개념

각 섹션을 이름 붙인 태그로 감싸서 무엇이 무엇인지 명확하게 만드세요:

태그로 구조화한 프롬프트

<instructions>
Summarize the document for a busy executive. Use only the document; if a fact
isn't there, say so.
</instructions>

<document>
{paste the long document here}
</document>

<format>
3 bullet points, then a one-line "decision needed".
</format>

태그는 당신이 만들어내는 텍스트일 뿐입니다 — <document>, <example>, <context>, <rules> — 하지만 모델에게 명확한 경계를 제공합니다.

왜 도움이 되는가

Pro tip
  • 데이터를 지시와 분리합니다 — 모델이 붙여넣은 문서 안에 끼어든 텍스트를 따를 가능성이 줄어듭니다(프롬프트 인젝션에 대한 약한 방어 — /docs/security/prompt-injection 참고).
  • '내 프롬프트의 일부를 무시했어'를 줄입니다. 각 부분이 명확하게 구분됩니다.
  • 출력을 파싱하기 쉽게 만듭니다 — Claude에게 답변을 <answer> 태그에 넣어달라고 요청해 안정적으로 추출할 수 있습니다.
  • 퓨샷(/docs/prompting/few-shot)과 잘 조합됩니다 — 각 예시를 <example>로 감싸세요.

네 가지 이점을 자세히 보면:

  • 데이터를 지시와 분리합니다 — 모델이 붙여넣은 문서 안에 끼어든 텍스트를 따를 가능성이 줄어듭니다(프롬프트 인젝션에 대한 약한 방어).
  • "내 프롬프트의 일부를 무시했어"를 줄입니다. 각 부분이 명확하게 구분됩니다.
  • 출력을 파싱하기 쉽게 만듭니다 — Claude에게 답변을 <answer> 태그에 넣어달라고 요청해 안정적으로 추출할 수 있습니다.
  • 퓨샷과 잘 조합됩니다 — 각 예시를 <example>로 감싸세요.

태그 출력 요청하기

Guided walkthrough1 of 3
  1. 추론용과 최종 답변용으로 각각 어떤 태그를 쓸지 모델에 정확히 알려주세요.

태그 출력 요청

Put your reasoning in <thinking> tags and your final answer in <answer> tags.

그러면 코드가 <answer> 내용만 가져올 수 있습니다. 기계 판독이 가능한 결과가 필요할 때 구조화된 출력과 잘 어울립니다.

Key takeaways
  • 일관성을 유지하세요 — 모든 태그를 열고 닫으세요. 같은 이름을 재사용하세요.
  • 태그 이름을 의미 있게 지으세요(<x>가 아니라 <contract>).
  • 사소한 프롬프트에 태그를 남발하지 마세요 — 정말로 여러 개의 구별되는 부분이 있을 때 사용하세요.
  • 일관성을 유지하세요 — 모든 태그를 열고 닫으세요. 같은 이름을 재사용하세요.
  • 태그 이름을 의미 있게 지으세요 (<x>가 아니라 <contract>).
  • 사소한 프롬프트에 태그를 남발하지 마세요 — 정말로 여러 개의 구별되는 부분이 있을 때 사용하세요.

스스로 확인하기

스스로 확인하기

0/5
  1. 프롬프트가 지시, 문서, 질문을 섞을 때 XML 스타일 태그가 도움이 되는 주된 이유는?
  2. 태그가 프롬프트 인젝션에 대한 약한 방어로 작동하는 이유는?
  3. 태그가 붙은 응답에서 Claude의 최종 답변만 안정적으로 추출하려면?
  4. 태그 이름 짓기의 모범 사례는?
  5. XML 태그를 꺼내 쓰지 말아야 할 때는?

다음