2What — 프롬프트 구조란 무엇인가
3같은 질문이라도 LLM에게 전달하는 방식은 두 가지로 나뉩니다.
4- 비구조화 프롬프트: "이 코드 리뷰해줘" — 역할·맥락·지시·예시가 없는 한 줄 요청
5- 구조화 프롬프트: 역할(누구로서) + 맥락(어떤 상황) + 지시(무엇을) + 예시(어떻게) 4요소를 명시
6비유하자면, 신입에게 "보고서 써줘"라고 던지는 것과 "마케팅팀 담당자 입장에서, 지난달 매출 데이터를 근거로, 3문단 요약을, 아래 예시 양식대로 작성해줘"라고 지시하는 차이입니다.
7Why — 구조가 없으면 왜 품질이 무너지는가
8LLM은 입력된 토큰 분포에 따라 다음 토큰을 확률적으로 생성합니다. 맥락이 비면 모델은 가장 흔한(평균적인) 답을 내놓습니다. 이때 세 가지 실패가 발생합니다.
91. 모호성(Ambiguity): "리뷰해줘"는 버그 탐지인지, 스타일 교정인지, 성능 분석인지 불명확 → 모델이 임의로 한 가지만 선택
102. 과잉 일반화(Over-generalization): 도메인 단서가 없으면 교과서적 일반론만 출력 → "변수명을 명확히 하세요" 같은 무의미한 조언
113. 의도 미스얼라인(Intent Misalignment): 사용자가 원한 출력 형식·깊이와 모델 출력이 어긋남
12실제 사례를 보면 차이가 분명합니다.
13- 코드 리뷰 요청: "이 함수 봐줘" → 일반적 칭찬+사소한 지적 / "시니어 백엔드 개발자로서 동시성 버그와 메모리 누수 관점에서 검토하고, 라인 번호와 함께 지적하라" → 구체적 결함 발견
14- 법률 문서 요약: "요약해줘" → 핵심 누락된 평면 요약 / "계약 검토 변호사로서, 갑·을의 의무와 위약 조항을 분리해 표로 정리하라" → 실무에 쓸 수 있는 구조적 요약
15How — 구조화가 파인튜닝 없이 정확도를 높이는 원리
16구조화된 프롬프트는 모델의 가중치를 바꾸지 않고도 출력 분포를 좁히는 조건부 확률 조절 역할을 합니다.
17- 역할 부여는 모델이 학습한 "전문가 텍스트" 영역으로 출력을 이동시킵니다 (페르소나 효과, Brown 외, 2020)
18- 예시 제공은 In-Context Learning을 활성화해, 가중치 갱신 없이 패턴을 추론하게 합니다 (Brown 외, 2020)
19- 단계 지시는 추론 경로를 명시화해 정답률을 끌어올립니다 (Chain-of-Thought, Wei 외, 2022)
20수식으로 보면, 출력은 조건부 확률
21P(y \mid x_{instruction}, x_{role}, x_{context}, x_{example})
22을 따르며, 조건 항이 풍부할수록 정답 영역으로 확률 질량이 집중됩니다.
23실무 임팩트: 여러 벤치마크에서 구조화 프롬프트는 비구조화 대비 정확도가 2~4배 향상되었으며 (Liu 외, 2023), 이는 데이터 수집·GPU 학습이 필요한 파인튜닝과 달리 입력 텍스트만 바꿔 즉시 적용할 수 있어 비용 대비 효과가 압도적입니다.
24같은 모델, 같은 질문, 다른 구조 — 그것만으로 출력 품질이 갈립니다.