
프롬프트 엔지니어링은 LLM에 효과적인 지시를 작성하여 원하는 결과를 얻는 기술 이다. 같은 LLM이라도 프롬프트에 따라 출력 품질이 크게 달라진다. “요약해줘”보다 “3문장으로 핵심만 요약해줘”가 더 구체적이고, “번역해줘”보다 “비즈니스 문서 스타일로 자연스럽게 번역해줘”가 더 적절한 결과를 낸다. 주요 기법으로는 Zero-shot, Few-shot, Chain of Thought, 역할 부여 등이 있으며, 실무에서는 여러 기법을 조합해 사용한다.
프롬프트 엔지니어링이란?
프롬프트 엔지니어링은 LLM에게 원하는 출력을 얻기 위해 입력 텍스트(프롬프트)를 체계적으로 설계하고 최적화하는 실무 기술 이다. LLM은 입력 프롬프트에 따라 응답이 달라지므로, 명확한 지시, 적절한 예시, 구체적인 제약 조건을 포함한 프롬프트를 작성해야 한다.
왜 중요한가?
LLM은 기본적으로 다음 단어를 예측하는 방식으로 작동한다. 따라서 명확하지 않은 프롬프트는 원하지 않는 결과를 생성할 수 있다. 효과적인 프롬프트 엔지니어링은 LLM 활용의 생산성과 정확도를 크게 향상시킨다.
주요 프롬프트 기법
Zero-shot 프롬프팅
특별한 예시 없이 바로 작업을 요청하는 방식 이다. LLM이 학습한 지식을 바탕으로 즉시 작업을 수행한다.
예시
프롬프트: "아래 텍스트를 요약해줘: [텍스트]"Few-shot 프롬프팅
몇 가지 입력-출력 예시를 보여주어 원하는 형식이나 스타일을 학습시키는 방식 이다. 작업 복잡도에 따라 2-5개의 예시가 일반적으로 효과적이다.
예시
프롬프트:
"다음과 같은 형식으로 감정을 분류해줘:
입력: 오늘 날씨가 좋아서 기분이 좋아요
출력: 긍정
입력: 시험이 망쳐서 우울해요
출력: 부정
입력: [새로운 텍스트]
출력:"Chain of Thought (CoT)
문제를 단계별로 나누어 사고 과정을 유도해 복잡한 추론 성능을 높인다. 수학 문제, 논리적 추론, 복잡한 분석이 필요한 경우에 유용하다.
예시
프롬프트: "다음 문제를 단계별로 풀어줘:
1. 문제를 분석해줘
2. 필요한 정보를 정리해줘
3. 계산 과정을 보여줘
4. 최종 답을 제시해줘
문제: 한 달에 30만원씩 저축하면 1년 후에 얼마를 모을 수 있나요?"역할 부여
응답 톤과 전문성을 조절할 수 있다. “당신은 경험이 풍부한 마케팅 전문가입니다” 같은 역할을 부여하면 더 전문적인 답변을 얻을 수 있다.
예시
프롬프트: "당신은 10년 경력의 웹 개발 전문가입니다.
Vue.js와 React의 차이점을 설명해줘."프롬프트 작성 원칙
명확성
모호한 표현 대신 구체적인 지시를 사용한다.
나쁜 예시
프롬프트: "좋은 글을 써줘"좋은 예시
프롬프트: "200자 내외로, 전문가 독자를 대상으로, 실용적인 팁 3개를 포함한 블로그 포스트 초안을 작성해줘"단계적 지시
복잡한 작업은 여러 단계로 나누어 순차적으로 요청하면 품질이 향상된다.
예시
프롬프트: "마케팅 전략을 다음과 같이 세워줘:
1단계: 타겟 고객 분석
2단계: 경쟁사 조사
3단계: 전략 제안"제약 조건 명시
“200자 이내”, “목록 형식”, “한국어로” 같은 제약을 명확히 하면 원하는 형식의 출력을 얻을 수 있다.
예시
프롬프트: "아래 내용을 요약해줘.
- 3문장 이내
- 핵심만 포함
- 한국어로 작성"실무 예시 비교
단순한 프롬프트
프롬프트: “고객 불만을 분석해줘”
결과: “고객이 불만을 가지고 있습니다” 같은 일반적 답변만 생성된다.
개선된 프롬프트
프롬프트: “당신은 고객 서비스 분석 전문가입니다. 아래 고객 리뷰 10개를 읽고, 불만 사항을 카테고리별(배송, 품질, 가격)로 분류하고, 각 카테고리당 상위 3개 이슈를 우선순위와 함께 나열해주세요. 형식은 마크다운 테이블로 작성해주세요.”
결과: 구조화된 분석 결과를 즉시 얻을 수 있다.
Few-shot 예시 추가
Few-shot 예시를 추가하면 더욱 정확하다.
프롬프트:
"다음 형식으로 고객 불만을 분석해줘:
예시 1:
입력: '배송이 너무 느려요'
출력: 카테고리: 배송, 우선순위: 높음, 이슈: 배송 속도 지연
[나머지 리뷰를 분석해줘]"프롬프트 템플릿 활용
자주 쓰는 작업에 대해 표준 프롬프트 템플릿을 만들고, 변수 부분만 바꿔서 사용하면 효율적이다.
요약 템플릿
"당신은 {도메인} 전문가입니다.
아래 {텍스트 타입}을 {길이} 내외로 요약해줘.
- 핵심 내용만 포함
- {형식}으로 작성"번역 템플릿
"당신은 전문 번역가입니다.
아래 텍스트를 {대상 언어}로 번역해줘.
- {스타일} 스타일로 작성
- 전문 용어는 정확하게 번역"분류 템플릿
"아래 항목들을 {카테고리}로 분류해줘.
각 항목에 대해:
1. 카테고리
2. 이유
3. 우선순위
형식: 마크다운 테이블"반복 개선
초기 출력 결과를 보고 프롬프트를 수정하며 점진적으로 개선하는 것이 핵심이다. 실무에서는 프롬프트 템플릿을 만들어 팀 내에서 공유하면 효율성이 크게 향상된다.
개선 프로세스
- 초기 프롬프트 작성
- 결과 확인
- 부족한 부분 파악
- 프롬프트 수정
- 재실행 및 평가
- 최종 프롬프트 확정
주의사항
프롬프트 길이
프롬프트가 길수록 좋은 것은 아니다. 명확하고 구체적인 지시가 핵심이다. 불필요하게 길면 오히려 혼란을 줄 수 있으므로, 핵심 지시와 예시만 포함하는 것이 좋다.
토큰 비용
Few-shot 예시가 많을수록 토큰 비용이 증가한다. 적절한 균형을 유지해야 한다.
컨텍스트 길이 제한
모든 LLM은 처리할 수 있는 텍스트 길이에 제한이 있다. GPT-4는 약 32,000 토큰까지 처리할 수 있다. 이 제한을 고려해 프롬프트를 작성해야 한다.
FAQ
Q: 프롬프트가 길수록 좋은가요?
A: 필수는 아닙니다. 명확하고 구체적인 지시가 핵심입니다. 불필요하게 길면 오히려 혼란을 줄 수 있으므로, 핵심 지시와 예시만 포함하는 것이 좋습니다.
Q: Few-shot 예시는 몇 개가 적당한가요?
A: 작업 복잡도에 따라 다르지만, 일반적으로 2-5개가 효과적입니다. 너무 많으면 토큰 비용이 증가하고, 너무 적으면 패턴 학습이 어렵습니다.
Q: Chain of Thought는 언제 사용하나요?
A: 수학 문제, 논리적 추론, 복잡한 분석이 필요한 경우에 유용합니다. “단계별로 생각해보세요” 또는 “먼저 A를 분석하고, 그 다음 B를 고려하세요” 같은 지시를 추가하면 됩니다.
Q: 프롬프트를 재사용할 수 있나요?
A: 네, 템플릿화하는 것이 좋습니다. 자주 쓰는 작업(요약, 번역, 분류 등)에 대해 표준 프롬프트 템플릿을 만들고, 변수 부분만 바꿔서 사용하면 효율적입니다.
Q: 다른 LLM에 같은 프롬프트를 사용할 수 있나요?
A: 기본 구조는 유사하지만, 각 LLM의 특성에 맞게 조정이 필요합니다. GPT와 Claude는 유사하지만, 다른 모델들은 약간의 차이가 있을 수 있습니다.
Q: 프롬프트를 개선하는 방법은?
A: 결과를 확인하고 부족한 부분을 파악한 후 프롬프트를 수정하며 반복적으로 개선합니다. 팀 내에서 템플릿을 공유하고 피드백을 수집하는 것도 효과적입니다.