원하는 답을 안정적으로 얻으려고 AI에게 주는 입력을 체계적으로 짜는 요령이다. 모델은 우리 머릿속을 읽지 못해서 같은 모델이라도 원하는 조건을 말로 정확히 풀어주느냐에 따라 결과가 크게 달라지므로, 요약 조건 지정·출력 형식 고정·에이전트 규칙 설정처럼 AI에게 일을 맡길 때마다 쓴다.
| 묻는 방식 | 예 | 결과 |
|---|---|---|
| 그냥 묻기 | "요약해줘" | 두루뭉술한 답 |
| 조건 주기 | 누구에게 보여줄지, 몇 문장, 어떤 톤 | 바로 쓸 만한 답 |
아래 요령은 대부분의 작업에 그대로 쓸 수 있다. 규칙을 말로 길게 설명하기보다 예시를 보여주는 편이 잘 통하고, "~하지 마"보다 "~해라"가 더 잘 지켜진다.
| 요령 | 이렇게 쓴다 | 이럴 때 |
|---|---|---|
| 역할 정하기 | "너는 꼼꼼한 코드 리뷰어야" | 특정 관점의 답이 필요할 때 |
| 예시 보여주기 | 원하는 답 예시를 두세 개 넣는다 | 형식이나 말투를 맞추고 싶을 때 |
| 단계별로 생각시키기 | "단계별로 생각해봐" | 복잡한 추론 문제 |
| 구획 나누기 | <document>, <example> 태그로 감싼다 | 참고 자료를 지시로 착각하지 않게 |
| 형식 못 박기 | "JSON으로만 답해" + 스키마 예시 | 답을 코드로 바로 처리할 때 |
개발할 때는 같은 지시를 매번 손으로 치지 않는다. Claude Code라면 CLAUDE.md에 "커밋 메시지는 한국어로", "테스트 없이 PR 올리지 마" 같은 규칙을 적어두면 에이전트가 작업할 때마다 반영한다. 이렇게 하면 프롬프트가 한 번 묻고 끝나는 질문이 아니라 도구의 기본 설정이 된다.
입력이 조금만 달라져도 결과가 흔들리기 때문에, 서비스에 들어가는 프롬프트는 코드처럼 다룬다. 버전을 관리하고, 대표 입력 수십 개로 평가 세트를 만들어 두고, 프롬프트를 고치거나 모델을 바꿀 때마다 다시 돌려 결과가 나빠지지 않았는지 확인한다.
주의할 점도 있다. 스스로 추론을 잘하는 최신 모델에게 풀이 예시나 "단계별로 생각해" 지시를 주면, 오히려 예시를 베끼느라 실력을 못 내기도 한다. 어떤 요령이 통하는지는 모델마다 직접 시험해 봐야 한다.
에이전트가 스스로 파일을 읽고 도구를 쓰면서, 질문 한 줄보다 모델이 매 순간 무엇을 보게 할지가 더 중요해졌다. 무엇을 검색해 넣고 무엇을 요약해 치울지까지 관리하는 일을 컨텍스트 엔지니어링이라 부른다. 다만 그 안에서 지시문 하나하나를 명확하게 쓰는 일은 여전히 프롬프트 엔지니어링의 몫이라, 둘은 서로를 대체하지 않고 함께 쓴다.
가장 흔한 건 채팅에서 대상·분량·톤 같은 조건을 붙여 묻는 방식이다. 개발에서는 같은 지시를 규칙 파일이나 시스템 프롬프트에 고정해 두고, 고칠 때마다 평가 세트로 확인한다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 챗봇 대화 | "팀장에게 보낼 3문장 요약, 존댓말로"처럼 조건을 붙여 요약·글쓰기를 맡긴다 |
| 코딩 에이전트 | CLAUDE.md 같은 규칙 파일에 코드 스타일·커밋 규칙을 적어 매 작업에 반영되게 한다 |
| API 서비스 | 시스템 프롬프트에 역할과 답 형식을 정해 두고, 프롬프트나 모델을 바꿀 때마다 평가 세트로 다시 돌린다 |
| 데이터 추출·분류 | 예시 몇 개와 JSON 스키마를 주고, 나온 답을 코드로 바로 처리한다 |