좋은 프롬프트는 간결하지만 완전합니다: 목표, 제약, 기대하는 출력 형식, 그리고 최소한의 관련 맥락을 앞부분에 명시해 — 모델이 주고받기를 강요당하는 대신 첫 시도에 올바르게 답할 수 있게 합니다.
날카로운 프롬프트가 담는 것
- 목표 — 실제로 만들어내고 싶은 것.
- 제약 — 언어, 버전, 라이브러리, 스타일, 피해야 할 것.
- 출력 형식 — 코드만, diff, JSON, 불릿 목록 등.
- 최소 맥락 — 전체 파일이 아니라 관련 스니펫이나 사실만.
좋은 프롬프트는 간결하지만 완전합니다: 목표, 제약, 기대하는 출력 형식, 그리고 최소한의 관련 맥락을 앞부분에 명시해 — 모델이 주고받기를 강요당하는 대신 첫 시도에 올바르게 답할 수 있게 합니다.
모호함:
"내 date 함수 고쳐줘."
→ 모델이 언어, 버그, "고쳤다"의 의미를 추측해야 한다.
날카로움:
"이 TypeScript 함수에서 parseDate가 'DD/MM/YYYY' 입력에 NaN을 반환한다.
일-우선 날짜를 파싱하도록 고쳐라. 수정된 함수만 반환하라.
function parseDate(s: string) { return Date.parse(s); }"
→ 목표(일-우선 파싱 수정), 제약(TypeScript), 맥락(함수),
출력 형식(함수만) — 모두 네 줄 안에.
날카로운 버전은 모든 추측을 제거합니다. 모델은 언어, 정확한 실패, 원하는 동작, 결과를 돌려주는 방법을 알기에 — 곧바로 쓸 수 있는 답을 얻습니다.
간결하고 잘 명세된 프롬프트는 모델이 잘못 추측하고 당신이 바로잡는 느린 주고받기를 줄입니다. 목표, 제약, 출력 형식, 그리고 딱 충분한 맥락을 앞부분에 명시하면 토큰, 시간, 좌절을 아끼며 — 모델의 답이 첫 시도에 맞을 가능성을 훨씬 높입니다.