프롬프트 엔지니어링 입문: 좋은 답을 끌어내는 5가지 원칙
긴 프롬프트가 좋은 프롬프트는 아닙니다. 모델이 실제로 "읽고 반응하는" 구조가 따로 있어요. 역할, 맥락, 형식, 반례, 검증 — 이 다섯 가지를 언제 어떻게 꺼내 쓰느냐가 결과의 품질을 결정합니다.
프롬프트 엔지니어링이라는 말이 거창하게 들리지만, 핵심은 단순합니다. 모델이 오해할 여지를 줄이는 작업이에요. 같은 질문도 어떻게 포장하느냐에 따라 돌아오는 답변의 수준이 완전히 달라집니다. 지난 1년간 Claude와 ChatGPT를 매일 쓰면서 반복적으로 효과가 있었던 다섯 가지 원칙을 정리했습니다.
원칙 하나하나는 놀라울 것이 없을지 모릅니다. 중요한 건 언제 어떤 원칙을 꺼내느냐, 그리고 조합해서 쓰는 감각입니다. 각 원칙마다 실제 사례와 나쁜 예·좋은 예를 함께 보여드릴게요.
01역할 부여
LLM에게 가장 빠르게 톤을 지정하는 방법은 "당신은 ○○다"라고 한 문장 붙이는 거예요. 이걸 role priming이라고 부릅니다. 모델의 내부에서는 역할 문장이 이후 답변의 단어 선택·어휘 수준·상세도를 한꺼번에 조정하는 스위치 역할을 합니다.
차이는 한 줄이지만, 돌아오는 답변은 "나눗셈 함수입니다" 수준과 "ZeroDivisionError가 발생할 수 있고, float/int 혼용 시 타입 힌트가 필요하며, 함수명이 무엇을 계산하는지 모호합니다" 수준으로 벌어집니다. 역할은 한 문장, 그리고 관점의 방향까지 짚어주는 게 효과적이에요.
역할은 모델의 "답변 근육"을 바꾸지 않지만, 어떤 근육을 쓸지는 바꿉니다.
피해야 할 역할 패턴
- 너무 거창한 역할: "당신은 인류 최고의 작가입니다" → 결과는 오히려 과장되고 납작해집니다.
- 역할과 지시의 충돌: "당신은 친근한 조수입니다" + "건조하게 답하세요" → 톤이 섞여 어색해집니다.
- 모호한 역할: "당신은 전문가입니다" → 어느 분야 전문가인지 명시해야 합니다.
02맥락 분리
긴 프롬프트를 쓸 때 가장 흔한 실수는 맥락과 지시를 뒤섞는 것입니다. 모델 입장에서는 "어디까지가 배경 정보고 어디부터가 해달라는 일인지"가 헷갈리면 주의력이 분산돼요. 특히 Claude는 XML 태그로 명시적으로 구분해주면 눈에 띄게 품질이 올라갑니다.
태그가 없어도 빈 줄과 문단 구분만으로도 효과가 납니다. 핵심은 모델이 어디를 집중해서 봐야 하는지를 시각적으로 드러내는 것입니다. 사람이 훑었을 때 구조가 보이면, 모델도 잘 따라옵니다.
03출력 형식 고정
답변을 그대로 시스템에 붙여 넣어야 한다면, 출력 형식을 프롬프트에서 못 박아두는 것이 가장 많은 시간을 아껴줍니다. JSON, Markdown 표, CSV, 특정 키만 있는 리스트 등 구체적으로 지정할수록 후처리가 사라져요.
"~처럼 정리해줘"보다 스키마를 직접 주는 것이 훨씬 안정적입니다.
특히 프로덕션에 붙일 때는 confidence 같은 메타 필드까지 강제하면
후속 로직(임계값 이하는 사람 검토로 우회 등)에도 도움이 됩니다.
04반례 제시
스타일을 통제해야 할 때, 긴 설명보다 "이런 식으로는 하지 말아줘"라는 예시 한 개가 훨씬 정확합니다. 사람에게 "이 책 스타일로 써줘"라고 하는 것과 같은 원리예요. 모델은 추상적인 형용사보다 구체적인 샘플에 강하게 반응합니다.
반례는 하나면 충분합니다. 두 개 이상 쌓으면 모델이 "두 예시 사이의 어느 중간쯤이 정답이겠지"라고 오히려 혼란스러워해요. 정답 1개 + 반례 1개가 가장 강력한 조합입니다.
05자기검증 요청
이 마지막 원칙이 가장 단순하면서 효과가 큽니다. 답변 끝에 "위 답변에서 잘못되었을 가능성이 있는 부분 3가지를 지적하고 수정해주세요"라는 한 줄만 추가하세요. 환각, 계산 오류, 누락된 케이스가 눈에 띄게 줄어듭니다.
이유는 직관적입니다. 모델이 첫 번째 답을 생성할 때는 "그럴듯한" 답에 끌리지만, 자기 답을 다시 읽고 비판하라고 요청받으면 초깃값에서 벗어난 두 번째 사고 모드로 진입합니다. 복잡한 계산이나 사실 확인이 필요한 작업일수록 극적으로 효과가 납니다.
자기검증의 변형들
- 가정을 명시화: "답변에 암묵적으로 깔린 가정 3가지를 먼저 적고 시작해주세요."
- 대안 제시: "위 답 외에 합리적인 다른 접근 2가지를 더 써주세요."
- 신뢰도 표시: "각 주장마다 0~1 사이 신뢰도를 매겨주세요."
다섯 원칙을 한 프롬프트에 담으면
다섯 가지를 모두 쓴다고 프롬프트가 길어지진 않습니다. 오히려 짧아지는 경우가 많아요. 아래는 실전에서 쓰는 템플릿의 한 예입니다.
5가지 원칙이 전부 들어간 프롬프트지만 읽기 어렵지 않습니다. 구조가 곧 가독성이라는 게 프롬프트 엔지니어링의 핵심 직관입니다.