핵심 정리
<instructions>...</instructions>
<context>...</context>
<examples>
<example>...</example>
</examples>
<formatting>...</formatting>태그 구조
XML tags가 단순히 보기 좋은 것 이상인 이유
XML tags로 프롬프트 구성 요소를 분리하면 Claude가 각 부분을 더 정확하게 해석합니다. 특히 instructions, examples, context가 섞여 있을 때 효과가 큽니다. 어떤 부분이 규칙이고, 어떤 부분이 참고 예시이고, 어떤 부분이 입력 데이터인지를 구조적으로 분리할 수 있기 때문에 수정과 반복도 쉬워집니다. 구분이 없으면 Claude가 예시를 규칙으로 오해하거나 맥락 데이터를 지시로 처리할 수 있습니다.
태그 이름을 의미 있게 지어야 하는 이유
"정답 태그 이름"이 따로 있는 것이 아니라, 태그 이름이 담고 있는 정보와 잘 맞아야 합니다. <instructions>, <context>, <examples>, <formatting>처럼 의미가 분명한 이름이 좋습니다. 모호한 이름(<text>, <data>, <stuff>)을 쓰면 구조화의 이점이 사라지고, 나중에 프롬프트를 수정할 때도 어느 태그에 무엇이 있는지 파악하기 어렵습니다.
<instructions>
대학 수준의 강의 노트로 정리하라.
</instructions>
<context>
아래 원문은 게임 수학 강의 초안이다.
</context>
<formatting>
정의, 예시, 주의점 순서로 써라.
</formatting>examples와 XML tags를 함께 쓸 때 특히 강한 이유
예시를 <example>로 감싸고, 전체 예시 묶음을 <examples>로 감싸면 instructions와 example이 섞이는 문제를 줄이기 좋습니다. Claude는 <examples> 안의 내용을 따라야 할 규칙이 아니라 참고할 패턴으로 더 명확하게 해석합니다. 특히 여러 개의 예시를 주고 패턴을 유도할 때, 구조 없이 나열하는 것보다 이중 태그 구조를 쓰면 일관성이 눈에 띄게 좋아집니다.
<examples>
<example>좋은 답변 예시 1</example>
<example>좋은 답변 예시 2</example>
</examples>XML tags를 output 구조 요청에도 쓸 수 있는 이유
XML tags는 input 구조화뿐만 아니라 output에도 도움이 됩니다. Claude에게 <answer>, <summary>, <risks>처럼 구조화된 응답을 요청하면 후처리나 재사용이 쉬워집니다. 특히 응답을 파싱해 다른 시스템에 전달하거나, 특정 섹션만 추출해야 하는 경우에 output 태그 구조를 미리 정해 두면 파싱 코드가 단순해집니다.
언제 태그를 쓸까
| 상황 | 적합한 선택 |
|---|---|
| 규칙과 예시가 섞여 혼선이 생길 때 | <instructions>와 <examples> 분리 |
| 배경 정보를 지시와 구분해야 할 때 | <context> 태그로 분리 |
| 여러 예시를 명확하게 제공할 때 | <examples> + <example> 이중 구조 |
| 출력을 파싱하거나 재사용할 때 | <answer>, <summary> 등 output 태그 요청 |
| 짧고 단순한 작업을 바로 처리할 때 | 태그를 늘리기보다 plain section으로 최소 구조만 유지 |
| 태그 이름이 모호할 때 | 의미가 분명한 이름으로 교체 |
| 규칙과 입력 자료가 자꾸 섞일 때 | <instructions>와 <context>를 먼저 분리 |
주의할 점
XML tags를 쓴다고 자동으로 품질이 올라가지는 않습니다. 태그 이름이 모호하거나, instructions와 examples의 역할이 여전히 섞여 있으면 구조만 복잡해질 수 있습니다. 태그는 "분리"를 돕는 도구로 써야 하며, 태그 수가 많다고 프롬프트가 좋아지는 것은 아닙니다. 단순한 작업에 태그를 과하게 늘리면 오히려 어디가 규칙이고 어디가 입력인지 사람이 읽기 더 어려워질 수 있습니다.
<data>규칙</data>
<stuff>예시</stuff>
<text>입력 원문</text>이런 이름은 구조가 있어도 실제 역할이 안 보입니다. 태그 이름이 곧 의미가 되도록 붙이는 편이 낫습니다.
참고 링크
2 sources