레슨 6: 작업 유형별 프롬프트 전략
학습 목표:
- 코드 생성 작업의 프롬프트 모범 사례 익히기
- 문서 작성과 요약에 효과적인 전략 배우기
- 데이터 분석과 추출을 위한 프롬프트 기법 이해하기
전제: << 05 프롬프트 디버깅과 개선
작업이 다르면 프롬프트 전략도 달라야 한다
프롬프트의 기본 구조, few-shot, CoT, 디버깅까지 배웠습니다. 여기까지는 두루 통하는 기술입니다. 하지만 작업 종류마다 고유한 버릇과 함정이 있고, 그에 맞춘 전략이 필요합니다.
코드 생성에는 명확한 입력과 출력, 엣지 케이스가 필요하고, 문서 작성에는 독자와 어조를 정해야 하며, 데이터 추출에는 결측값 처리와 일관된 형식이 필요합니다. 이 레슨에서는 자주 마주치는 세 가지 작업 유형에 대한 구체적인 기법을 살펴봅니다.1
작업 유형 1: 코드 생성
코드 생성은 사람들이 AI를 쓰는 가장 흔한 방식 중 하나입니다. 핵심은 단순합니다. 요구사항을 분명히 적으면 AI는 실제로 쓸 수 있는 코드를 써 줍니다.1
코드 생성 프롬프트의 여섯 요소
좋은 코드 생성 프롬프트에는 다음이 담겨야 합니다:1
- 언어와 버전: Python 3.10, TypeScript 5.0
- 함수 시그니처: 입력 파라미터 타입, 반환 타입
- 핵심 로직: 함수가 무엇을 해야 하는가
- 엣지 케이스: 빈 입력과 오류 상황을 어떻게 처리할 것인가 — 이것이 방어적 프로그래밍입니다. 입력이 유효하지 않을 수 있다고 가정하고 어떻게 대응할지 미리 정해 두는 것입니다
- 코드 스타일: 주석, 타입 힌트, 에러 처리
- 의존성 제한: 표준 라이브러리만 쓸 것인지, 어떤 서드파티 라이브러리를 허용할 것인지
비교: 모호한 코드 프롬프트 vs 명확한 코드 프롬프트
❌ 모호한 프롬프트:
AI는 추측할 수밖에 없습니다. 어떤 데이터를? 어떻게 처리하라고?
✅ 명확한 프롬프트:
이 프롬프트는 입력, 출력, 엣지 케이스, 코드 스타일을 못박아 두었기 때문에 AI가 한 번에 쓸 만한 코드를 써 줍니다.
여기에는 근거가 있습니다. "prompts with explicit specifications reduced the need for back-and-forth refinements by 68%"(명시적인 명세가 담긴 프롬프트는 주고받는 수정 요청의 필요를 68% 줄였습니다)1 — 세부 사항을 분명히 적을수록 바로 쓸 수 있는 코드를 받을 가능성이 훨씬 커집니다.
코드 생성 모범 사례
사례 1: 입력과 출력의 데이터 구조를 분명히 적기
'데이터를 처리해 줘'라고 하지 마세요. '입력은 List[Dict[str, Any]], 출력은 Dict[str, int]'라고 하세요.
사례 2: 예시로 엣지 케이스를 분명히 하기
사례 3: 코드 스타일 지정하기
사례 4: 원하지 않는 것을 말하기
코드 리뷰 프롬프트
AI에게 코드 리뷰를 맡길 때는 리뷰 차원을 명시적으로 지목하세요:
리뷰 차원을 지목하면 AI가 중요하지 않은 세부 사항에 시간을 쓰지 않습니다.
작업 유형 2: 문서 작성과 요약
문서 작업은 범위가 넓습니다. 기술 문서, 회의록, 글 요약, 보고서 생성이 모두 여기에 들어갑니다.
문서 작성의 핵심 요소
- 대상 독자: 기술 독자인가 비기술 독자인가
- 목적: 사용법을 설명하려는 것인가, 의사결정권자를 설득하려는 것인가
- 어조와 문체: 격식체인가 편안한 말투인가, 상세한가 간결한가
- 구조 템플릿: 어떤 섹션으로 내용을 조직할 것인가
비교: 문서 요약 프롬프트
❌ 모호한 프롬프트:
✅ 명확한 프롬프트:
이 프롬프트는 독자(프론트엔드 엔지니어), 목적(퀵스타트), 구조(4부), 어조(실용적)를 못박았습니다.
문서 작성 모범 사례
사례 1: 독자의 배경을 분명히 적기
사례 2: 구조 템플릿 제공하기
사례 3: 상세함의 수준 통제하기
회의록 프롬프트
작업 유형 3: 데이터 분석과 추출
데이터 분석에는 텍스트에서 구조화된 정보를 뽑아내는 일, 분류, 필터링, 집계가 들어갑니다.
데이터 추출의 핵심 요소
믿을 만한 데이터 추출 프롬프트는 네 가지를 미리 못박아 둡니다:
- 필드 정의: 각 필드가 무엇을 뜻하고 허용되는 값의 범위는 무엇인가
- 결측값 처리: 필드를 찾을 수 없을 때 어떻게 할 것인가
- 출력 형식: JSON, CSV, 표
- 데이터 검증: 추출한 데이터를 검사할 필요가 있는가
비교: 데이터 추출 프롬프트
❌ 모호한 프롬프트:
✅ 명확한 프롬프트:
예시가 완전한 경우와 결측 경우를 모두 다루기 때문에, AI는 찾지 못한 값을 지어내는 대신 null을 출력해야 한다는 것을 알게 됩니다 — 이렇게 자신 있게 사실을 꾸며내는 습성을 할루시네이션이라고 부릅니다.
데이터 추출 모범 사례
사례 1: 각 필드의 허용 값을 분명히 적기
사례 2: few-shot으로 형식 표준화하기
구조화된 데이터를 추출할 때는 글로 설명하는 것보다 예시 2~3개가 더 잘 통합니다(레슨 3의 few-shot 기법입니다).
사례 3: 엣지 케이스 처리 방법 말하기
사례 4: 데이터 검증 추가하기
일반 원칙 적용하기
작업이 무엇이든, 앞선 레슨의 일반 원칙은 그대로 유효합니다:
- 네 가지 요소(레슨 2): 역할, 작업, 형식, 제약
- Few-shot(레슨 3): 복잡한 작업에는 예시 2~3개
- CoT(레슨 4): 추론이 필요한 작업에는 "let's think step by step" 추가
- 디버깅(레슨 5): 한 번에 하나씩 바꾸고 테스트 케이스로 검증
이 레슨의 작업별 전략은 그 일반 원칙 위에 얹는 표적 최적화입니다:
- 코드 생성 → 입출력 타입, 엣지 케이스, 하지 말아야 할 것을 강조
- 문서 작성 → 독자의 배경, 구조 템플릿, 어조를 강조
- 데이터 추출 → 필드 정의, 결측값 처리, few-shot 예시를 강조
정리
작업이 다르면 프롬프트 전략도 달라야 한다:
- 코드 생성: 입출력 타입, 엣지 케이스, 코드 스타일, 의존성 제한을 못박고, 예시로 특수 상황을 분명히 한다
- 문서 작성: 독자의 배경과 기술 수준을 정의하고, 구조 템플릿을 제공하며, 상세함의 수준과 어조를 통제한다
- 데이터 추출: 각 필드의 허용 값을 정의하고, 결측값 처리를 명시하며, few-shot으로 형식을 표준화하고, 데이터 검증을 더한다
이 전략들은 앞선 레슨의 일반 기술(네 가지 요소, few-shot, CoT, 디버깅) 위에 쌓이는, 특정 작업 유형을 위한 최적화다. 실전에서는 눈앞의 작업에 맞는 조합을 고르면 된다.
코스 마무리
프롬프트 엔지니어링 기초의 여섯 레슨을 모두 마쳤습니다:
- 프롬프트가 정말 무엇이고 왜 중요한지 이해하기
- 프롬프트의 네 가지 핵심 요소 익히기
- few-shot으로 예시를 들어 AI를 이끄는 법 배우기
- chain-of-thought로 AI가 추론을 보여주게 하기
- 프롬프트를 디버깅하고 개선하는 체계적인 절차 세우기
- 작업 유형별 구체적인 전략 배우기
이제 도구 상자가 갖춰졌습니다. 다음 단계는 연습입니다. 자기 일에서 실제 작업을 하나 골라 이 기법들을 적용하고, 무슨 일이 벌어지는지 지켜보고, 계속 다듬으세요. 프롬프트 엔지니어링은 직접 해 보면서 벼리는 기술입니다. 수업은 여기서 끝나지만, 진짜 배움은 실제로 써 보는 순간부터 시작됩니다.