맥락 누락 오류
모델이 알지 못하는 지식을 알고 있다고 전제하는 프롬프트를 살펴봅니다.
맥락 누락 오류은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.
맥락의 공백
인공지능 모델은 학습 데이터에서 많은 것을 알고 있지만, 알려 주지 않는 한 여러분의 구체적인 상황은 전혀 알지 못합니다. 모델이 알지 못하는 정보를 알고 있다고 가정하는 프롬프트는 일반적으로는 맞지만 상황에는 쓸모없는 응답을 만들어 냅니다.
"오류를 수정해 주세요." — 어떤 오류인가요? 어떤 코드에서 발생하나요? 현재 무엇을 하나요? 대신 무엇을 해야 하나요?
모델은 정보가 부족하다고 말하는 대신 답을 지어냅니다. 그렇게 지어낸 답은 여러분에게 필요한 답인 경우가 거의 없습니다.
모델에 없는 맥락
제공하지 않으면 모델은 다음을 알지 못합니다.
- 여러분의 구체적인 코드, 프로젝트 또는 문서
- 여러분의 회사, 제품, 브랜드 또는 고객
- 이전 세션에서 나눈 대화 (각 대화는 새로 시작합니다)
- 이전에 시도한 내용과 실패한 이유
- 여러분의 개인적인 선호, 문체 또는 기준
- 여러분의 독자가 가진 배경 지식
- 여러분의 환경 제약 조건 (기술 구성, 예산, 기한)
모델이 여러분의 작업에 관해 아는 모든 내용은 현재 대화에서 제공되어야 합니다.
'오류 수정' 반패턴
"오류를 수정해 주세요"는 맥락 누락을 보여 주는 전형적인 프롬프트입니다. 모델에는 다음 정보가 전혀 제공되지 않습니다.
- 어떤 언어 또는 프레임워크인지
- 코드가 무엇을 해야 하는지
- 코드가 실제로 무엇을 하는지 (증상)
- 어떤 오류나 잘못된 출력이 나타나는지
- 무엇을 시도했지만 작동하지 않았는지
완전한 오류 수정 프롬프트는 다음 다섯 가지를 모두 제공합니다. "이 파이썬 함수는 목록에 있는 모든 짝수의 합을 반환해야 하지만 [2,4,6]에 대해 0을 반환하고 있습니다. 코드는 다음과 같습니다. [코드 붙여 넣기]. 오류는 다음과 같습니다..."
기억에 대한 오해
"중단한 곳에서 계속해 주세요." — 근본적인 오해를 드러내는 흔한 실수입니다. 모델은 세션 간에 기억을 유지하지 않습니다.
새로운 대화는 매번 완전히 새로 시작합니다. 같은 계정이나 도구를 사용했더라도 모델은 이전 대화에 접근할 수 없습니다. 이전 세션의 맥락이 필요하다면 현재 대화에 명시적으로 붙여 넣어야 합니다.
일부 도구(예: 클로드 프로젝트 또는 맞춤형 기억 시스템)는 세션 간 맥락을 제공하지만, 이것은 모델 고유의 기능이 아니라 도구의 기능입니다.
'내 말이 무슨 뜻인지 알겠죠'라는 가정
흔히 발생하는 맥락 오류는 모델이 여러분의 암묵적인 배경 지식을 공유한다고 가정하는 것입니다.
- "우리 브랜드에 맞게 수정해 주세요" (어떤 브랜드인가요? 브랜드 지침은 무엇인가요?)
- "지난번처럼 작성해 주세요" (모델은 지난번 대화에 접근할 수 없습니다)
- "다른 보고서와 같은 형식을 사용해 주세요" (형식이나 보고서 예시를 붙여 넣어야 합니다)
- "우리가 논의한 내용과 일관되게 유지해 주세요" (새로운 대화라면 논의한 내용이 없습니다)
해결 방법은 언제나 같습니다. 암묵적인 내용을 명시적으로 바꾸세요. 모델이 무엇을 알고 있다고 가정하는지 밝혀야 합니다.
맥락 주입: 해결 방법
맥락 주입은 모델이 올바르게 응답하는 데 필요한 배경 정보를 명시적으로 제공하는 것입니다. 세 가지 방법이 있습니다.
관련 내용 붙여 넣기: 코드, 문서, 이메일 또는 데이터를 프롬프트에 직접 포함합니다.
상황 설명하기: 작업 지시사항 앞에 관련 배경을 2~5문장으로 요약합니다.
제약 조건 명시하기: 환경, 기술 구성, 대상 독자 및 관련된 이전 결정 사항을 언급합니다.
맥락 주입을 사용하면 일반적인 모델 지식이 상황에 맞는 응답으로 바뀝니다.
구조화된 맥락 주입
복잡한 작업에서는 작업 지시사항 앞에 이름을 붙인 항목을 배치하여 맥락을 구조화하세요.
context_injection_prompt = '''## Background
We are a B2B SaaS company selling project management software to construction firms.
Our customers are project managers with 5-15 years of experience.
They value practical reliability over flashy features.
Our tone is professional, direct, and jargon-free (no tech startup buzzwords).
## Current situation
We are launching a new mobile app feature that sends automated daily digests.
The beta test with 12 customers showed 83% said it saved them at least 30 minutes per week.
## Task
Write a 200-word announcement email to our existing customers about this new feature.
Tone: warm, practical, results-focused.
Include the 83% / 30-minute stat.
End with a CTA to try the feature.
Do not mention competitor products.'''
print(context_injection_prompt)맥락 깊이 조정하기
모든 맥락이 똑같이 유용한 것은 아닙니다. 맥락이 너무 적으면 일반적인 출력이 나오고, 너무 많으면 관련 정보가 잡음에 묻히며 실제 작업 지시사항이 프롬프트 아래쪽으로 너무 밀려날 수 있습니다.
다음과 같이 물어보면서 맥락의 깊이를 조정하세요. 이 작업을 잘 수행하려면 사려 깊은 인간 전문가가 무엇을 알아야 할까?
- 포함할 내용: 대상 독자, 목적, 제약 조건, 분야별 전문 용어, 관련된 이전 결정 사항
- 제외할 내용: 누구나 이미 알고 있을 배경 지식, 관련 없는 과거 내용, 곁가지 세부 사항
유용한 규칙은 다음과 같습니다. 낯선 사람이 다른 회사나 상황에 맞춰 작성할 수 없을 정도로만 맥락을 구체적으로 제공해야 합니다.
세션 간 맥락: 맥락 안내문 만들기
모델은 세션 간 기억을 유지하지 않으므로, 해결 방법은 재사용 가능한 맥락 안내문을 만드는 것입니다. 이는 반복적으로 다루는 주제에 관해 매 세션을 시작할 때 붙여 넣는 표준 맥락 블록입니다.
CONTEXT_PRIMER = '''## Project context (paste at start of every session)
Project: Redesign of the Acme Corp customer onboarding flow
Team: 2 designers, 1 PM, 3 engineers
Stack: React, TypeScript, Supabase, Stripe
Current problem: 40% of new users drop off before completing step 3 of 5 in onboarding
Previous decisions:
- Step 3 will remain (required for compliance)
- No major UI changes until Q3
- All solutions must work on mobile-first
Constraints: No new third-party dependencies without security review
Today I need help with: [describe today's specific task here]
'''
print(CONTEXT_PRIMER)불완전한 명세 문제
맥락 누락과 관련된 오류로 불완전한 명세가 있습니다. 모델이 예외 상황을 처리하기에 충분하지 않은 맥락만 제공하는 경우입니다.
예시: "구독 상태에 따라 사용자를 필터링하는 함수를 작성해 주세요."
데이터 구조는 무엇인가요? 유효한 상태 값은 무엇인가요? 상태가 없는 사용자에게는 어떻게 해야 하나요? 대소문자를 구분해야 하나요? 목록이 비어 있으면 무엇을 반환해야 하나요?
모델은 이 모든 항목에 대해 가정을 세웁니다. 그 가정은 틀릴 수 있습니다. 완전한 명세는 예외 상황을 명시적으로 예상합니다.
코드 작업의 맥락: 최소 항목
코드 관련 프롬프트에는 다음과 같은 최소 맥락을 포함해야 안정적으로 유용한 출력을 얻을 수 있습니다.
- 언어와 버전: 파이썬 3.11, TypeScript 5.0
- 프레임워크: FastAPI, Next.js, 리액트 네이티브
- 코드가 해야 할 일: 예상 입력과 출력
- 현재 잘못 수행하는 내용: 증상과 오류 메시지
- 시도한 내용: 이미 실패한 접근 방식을 반복하지 않도록 함
- 제약 조건: 외부 의존성을 사용하지 않아야 함, 50ms 이내에 실행되어야 함
이 최소 항목 집합은 일반적으로는 맞지만 여러분의 구체적인 맥락에는 맞지 않는 인공지능 코드 제안이 나오는 가장 흔한 원인을 제거합니다.
지식 확인: 맥락 누락
한 개발자가 다른 정보 없이 다음 프롬프트를 보냅니다. "이걸 최적화하는 데 도움을 주세요." 어떤 일이 일어날지 가장 정확하게 설명한 것은 무엇인가요?
복습: 맥락 누락 오류
맥락 누락 오류는 프롬프트가 모델에 없는 지식, 즉 여러분의 코드, 브랜드, 이전 세션 또는 팀의 결정을 모델이 알고 있다고 가정할 때 발생합니다. 모델은 이러한 공백을 가정으로 채우고 일반적이거나 잘못된 출력을 만들어 냅니다.
해결 방법은 맥락 주입입니다. 관련 내용을 붙여 넣고, 상황을 설명하며, 제약 조건을 명시적으로 밝혀야 합니다. 반복적인 작업에는 재사용 가능한 맥락 안내문을 사용하면 세션 간 기억 문제를 해결할 수 있습니다. 코드 작업에는 항상 언어, 프레임워크, 입력과 출력, 현재 동작 및 제약 조건을 포함하세요.
이 과정의 마지막 수업에서는 지금까지 배운 내용을 모두 종합하여 체계적인 프롬프트 디버깅 점검표를 작성합니다.
자주 묻는 질문
“맥락 누락 오류” 강의는 무료인가요?
네 — “맥락 누락 오류” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Prompt Engineering 강의 전체를 잠금 해제할 수 있습니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.
“맥락 누락 오류”에서 뭘 배우나요?
모델이 알지 못하는 지식을 알고 있다고 전제하는 프롬프트를 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 AI Prompt Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Prompt Engineering을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Prompt Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“맥락 누락 오류” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.