프롬프트 엔지니어링과 AI 보안

Zero-shot, Few-shot, CoT 기법부터 Bedrock Guardrails, 프롬프트 인젝션·탈옥 방어까지 AIF-C01 시험에 필요한 프롬프트 엔지니어링과 AI 보안을 초보자 시각으로 정리합니다.

프롬프트 엔지니어링이란?

프롬프트 엔지니어링(Prompt Engineering)은 AI 모델에서 원하는 결과를 얻기 위해 입력 문구(프롬프트)를 설계하는 기술입니다. 모델의 내부를 수정하지 않고, 입력하는 텍스트만 조정해서 AI의 출력을 제어합니다.

요리사에게 요리를 부탁하는 상황을 생각해봅시다. "뭔가 맛있는 것 만들어줘"보다 "매운 것은 빼고, 야채 위주로, 20분 안에 만들 수 있는 저칼로리 요리를 만들어줘"가 훨씬 원하는 결과에 가까운 요리를 받을 수 있습니다. AI에게도 마찬가지입니다. 어떻게 묻느냐가 답의 품질을 결정합니다.

AIF-C01에서 프롬프트 엔지니어링은 도메인 2(생성형 AI 기초)와 도메인 3(파운데이션 모델 응용)에 걸쳐 출제됩니다.

---

 

핵심 프롬프트 기법 4가지

Zero-shot 프롬프트

예시를 전혀 주지 않고 바로 작업을 요청하는 방식입니다. 가장 단순하고 빠릅니다.

예시:

언제 쓸까: 간단한 분류, 요약, 번역 등 비교적 쉬운 작업에 적합합니다. 복잡한 추론이 필요한 경우에는 정확도가 떨어질 수 있습니다.

Few-shot 프롬프트

몇 가지 예시(shots)를 함께 제공해서, 원하는 출력 형식과 패턴을 AI에게 보여주는 방식입니다.

초등학생에게 새로운 수학 문제 유형을 가르칠 때, 예제 문제와 풀이 과정을 먼저 보여주는 것과 같습니다. AI도 예시를 보면 원하는 형식을 더 잘 이해합니다.

예시:

언제 쓸까: 출력 형식이 중요한 작업, 특정 스타일로 글을 써야 하는 경우, Zero-shot보다 높은 정확도가 필요한 경우에 사용합니다.

Chain-of-Thought (CoT) 프롬프트

AI가 단계별 사고 과정(reasoning steps)을 거쳐 답변하도록 유도하는 방식입니다. 특히 수학 문제나 복잡한 논리 추론에서 정확도가 크게 향상됩니다.

형사가 사건을 해결할 때 "범인이 누구야?"라고 결론부터 묻는 것보다, 단서 → 용의자 → 동기 → 알리바이 순서로 논리적으로 추론하는 것이 더 정확한 결론에 도달하는 것과 같습니다.

예시:

AI가 "단계별로 생각"하도록 유도하면 중간 계산 과정을 자세히 서술하고, 오류를 줄입니다.

트리거 문구 예시: "단계별로 생각해봅시다" "Let's think step by step" "단계적으로 추론해보세요"

시스템 프롬프트 (System Prompt)

사용자의 대화와 분리되어, 모델의 역할, 페르소나, 행동 규칙을 미리 설정하는 특별한 프롬프트입니다. 사용자는 보통 시스템 프롬프트를 볼 수 없습니다.

식당 종업원 교육 매뉴얼과 비슷합니다. 매뉴얼에는 "항상 존댓말을 써라", "알코올 음료는 성인에게만 제공해라", "메뉴에 없는 요리는 거절해라" 등의 규칙이 적혀 있습니다. 손님은 이 매뉴얼을 보지 못하지만, 종업원은 항상 그 규칙에 따라 행동합니다.

예시 시스템 프롬프트:

!핵심 프롬프트 엔지니어링 기법 4가지

프롬프트 기법 비교표

| 기법 | 예시 필요 여부 | 주요 사용 상황 | 상대적 정확도 | |------|-------------|-------------|------------| | Zero-shot | 없음 | 간단한 분류·요약 | 보통 | | Few-shot | 2~5개 예시 | 형식이 중요한 작업 | 높음 | | Chain-of-Thought | 없음 또는 있음 | 복잡한 수학·논리 추론 | 매우 높음 | | System Prompt | 해당 없음 | 역할·규칙 사전 설정 | - |

---

 

추론 파라미터 (Inference Parameters)

프롬프트 내용 외에도, AI의 응답 방식을 조절하는 파라미터들이 있습니다. 시험에서 이 파라미터들의 영향을 묻는 문제가 자주 출제됩니다.

온도 (Temperature)

AI 응답의 창의성(다양성)을 조절합니다.

온도 낮음 (0~0.3): 예측 가능하고 일관된 답변. 사실 기반 질문, 코드 생성, 의료·법률 정보에 적합. 온도 높음 (0.7~1.0): 더 창의적이고 다양한 답변. 창작 글쓰기, 브레인스토밍, 마케팅 문구 생성에 적합.

주사위를 생각해보세요. 온도가 낮으면 항상 6이 나오는 조작된 주사위, 온도가 높으면 어느 숫자든 골고루 나오는 공정한 주사위입니다.

Top-p (핵 샘플링)

AI가 다음 단어를 선택할 때 고려하는 후보 단어의 범위를 제한합니다.

Top-p = 0.1: 확률 상위 10%의 단어만 고려 (보수적) Top-p = 0.9: 확률 상위 90%의 단어 고려 (다양성 높음)

Max Tokens (최대 토큰)

AI 응답의 최대 길이를 제한합니다. 긴 응답이 필요 없거나 비용을 절약하고 싶을 때 줄입니다.

---

 

Amazon Bedrock Guardrails

Guardrails는 생성형 AI 애플리케이션에 적용하는 안전장치입니다. 사용자 입력과 모델 출력 모두에 적용되어, 원하지 않는 콘텐츠를 자동으로 차단합니다.

Guardrails 주요 기능

| 기능 | 설명 | 실제 예시 | |------|------|---------| | 콘텐츠 필터링 | 폭력·혐오·성인 콘텐츠 차단 | "폭발물 만드는 법" → 자동 거부 | | 주제 거부 | 특정 주제에 대한 답변 차단 | 은행 챗봇이 정치 토론 거부 | | PII 마스킹 | 개인정보 자동 탐지 및 마스킹 | "홍길동, 010-1234-5678" → "***" | | 워드 필터 | 특정 단어·문구 자동 차단 | 경쟁사 브랜드명, 비속어 | | 그라운딩 검사 | 답변이 소스 문서에 기반하는지 확인 | RAG 응답 신뢰성 검증 |

Guardrails가 중요한 이유: AI는 사용자가 악의적인 방법으로 악용하려 할 때 취약합니다. Guardrails는 이를 자동으로 방어합니다.

---

 

프롬프트 보안 위협

AI 시스템은 기존 소프트웨어와 다른 새로운 유형의 보안 위협에 노출됩니다.

프롬프트 인젝션 (Prompt Injection)

공격자가 악의적인 텍스트를 입력해 시스템 프롬프트의 규칙을 무시하도록 모델을 조작하는 공격입니다.

예시: 고객 서비스 챗봇에 사용자가 다음과 같이 입력합니다.

이 공격이 성공하면, 챗봇은 원래 회사의 규칙을 어기고 경쟁사를 추천할 수 있습니다.

방어 방법: Bedrock Guardrails, 입력 검증, 시스템 프롬프트 강화.

프롬프트 유출 (Prompt Leaking)

공격자가 시스템 프롬프트의 내용을 유출시키는 공격입니다. 시스템 프롬프트에는 비즈니스 로직, 금지 사항, 내부 지침 등 기밀 정보가 포함될 수 있습니다.

블로그 목록으로 돌아가기