0Pricing
AI Prompt Engineering · 강의

인공지능 프롬프트에서 맥락이란 무엇인가

배경 정보가 모델의 응답 방향을 형성하는 방식을 알아봅니다.

인공지능 프롬프트에서 맥락이란 무엇인가은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

맥락: 모델에 제공하는 배경 설명

맥락은 모델이 관련성 있고 정확하며 상황에 맞게 조정된 응답을 제공할 수 있도록 하는 배경 정보입니다.

맥락이 없으면 모델은 사용자가 누구인지, 무엇이 필요한지, 어떤 도메인에서 일하는지, 어느 정도의 세부 정보가 적절한지를 추측합니다. 이러한 추측은 사용자의 실제 상황이 아니라 통계적으로 가장 평균적인 해석에 기반합니다.

맥락이 없으면 어떻게 될까요

같은 주제에 관한 다음 두 요청을 비교해 보세요:

맥락 없음: '데이터베이스 문제에 대해 어떻게 해야 하나요?'
모델은 어떤 데이터베이스인지, 문제가 무엇인지, 사용자의 상황에서 '해야 한다'는 것이 무엇을 의미하는지 전혀 알 수 없습니다.

맥락 있음: '저희는 AWS RDS에서 PostgreSQL 15를 실행하고 있습니다. 어제 스키마 마이그레이션 후 쿼리 응답 시간이 20ms에서 800ms로 급증했습니다. 마이그레이션으로 새 인덱스 3개가 추가되었습니다. 무엇부터 조사해야 하나요?'

두 번째 질문에는 유용한 답변에 필요한 모든 것, 즉 도메인, 기술, 시간적 맥락, 증상, 최근 변경 사항이 담겨 있습니다.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

no_context = 'What should I do about the database issue?'

with_context = (
    'We are running PostgreSQL 15 on AWS RDS. '
    'Query response time spiked from 20ms to 800ms after a schema migration yesterday. '
    'The migration added 3 new indexes on the orders table (500M rows). '
    'No other infrastructure changes were made. '
    'What should I investigate first to diagnose the slowdown?'
)

for label, prompt in [('NO CONTEXT', no_context), ('WITH CONTEXT', with_context)]:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=200,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.content[0].text[:300])
    print()

네 가지 맥락 유형

모든 프롬프트는 다음 네 가지 맥락 유형을 활용할 수 있습니다:

  1. 도메인 맥락 — 작업 중인 분야 또는 산업
  2. 대상 맥락 — 출력을 사용하거나 읽을 사람
  3. 목표 맥락 — 궁극적으로 달성하려는 것
  4. 제약 맥락 — 존재하는 제한 사항(시간, 예산, 기술 구성, 규칙)

모든 프롬프트에 네 가지가 모두 필요한 것은 아니지만, 이러한 범주를 이해하면 무엇이 빠졌는지 파악하는 데 도움이 됩니다.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Prompt with all 4 context types explicitly labelled
response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Domain context: B2B SaaS, fintech, invoice reconciliation.\n'
            'Audience context: mid-market CFOs with basic Excel skills, no coding.\n'
            'Goal context: write a one-pager that convinces them to book a demo.\n'
            'Constraint context: max 300 words, no technical jargon, no pricing mentioned.\n\n'
            'Task: Write the one-pager.'
        )
    }]
)
print(response.choices[0].message.content)

분야 맥락

분야 맥락은 모델에게 현재 다루는 분야, 산업 또는 주제 영역을 알려 줍니다. 이를 통해 사용할 어휘, 전제로 삼을 지식수준, 관련된 고려 사항이 정해집니다.

같은 질문도 분야에 따라 의미가 완전히 달라집니다. 소프트웨어 공학에서 '오류를 우아하게 처리하려면 어떻게 해야 하나요?'는 예외 처리를 의미하지만, 고객 서비스에서는 갈등 완화 기법을, 의학에서는 아차 사고 보고를 의미합니다.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Same question, different domain context
domains = [
    ('Software Engineering', 'We build Python microservices.'),
    ('Customer Service', 'We run a 50-agent call center for an e-commerce brand.'),
    ('Surgical Team', 'We are a hospital OR team implementing WHO checklists.'),
]

for domain, context in domains:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=80,
        messages=[{
            'role': 'user',
            'content': f'Context: {context}\n\nQuestion: How do I handle errors gracefully? (1 sentence answer)'
        }]
    )
    print(f'[{domain}]: {response.content[0].text.strip()}')
    print()

대상 독자 맥락

대상 독자 맥락은 누가 출력물을 읽거나 듣거나 사용할지를 모델에게 알려 줍니다. 이에 따라 다음이 결정됩니다.

  • 어휘 수준과 전제로 삼을 지식
  • 필요한 설명의 깊이
  • 어조(격식체와 대화체 중 어느 쪽인지)
  • 사용할 비유
  • 제외할 내용(너무 기초적이거나 지나치게 전문적인 내용)

대상 독자는 모든 것을 좌우합니다. 유치원생에게 설명하는 개념과 박사 과정 학생에게 설명하는 개념은 완전히 달라야 합니다.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

audiences = [
    'a 10-year-old who loves video games',
    'a first-year computer science university student',
    'a senior software architect with 15 years of experience'
]

for audience in audiences:
    response = client.chat.completions.create(
        model='gpt-4o',
        max_tokens=80,
        messages=[{
            'role': 'user',
            'content': f'Explain recursion in 2 sentences for {audience}.'
        }]
    )
    print(f'Audience: {audience}')
    print(response.choices[0].message.content.strip())
    print()

목표 맥락

목표 맥락은 출력물이 궁극적으로 무엇을 위해 사용되는지 설명합니다. 이는 작업 자체와는 다르며, 작업의 최종 목적을 의미합니다.

  • 작업: '제품 설명 작성'
  • 목표: '이 내용은 PPC 랜딩 페이지에서 우리를 한 번도 들어 보지 못한 신규 방문자를 고객으로 전환하는 데 사용됩니다'

모델이 목표를 알면 무엇을 포함할지, 어느 정도로 설득할지, 독자가 어떤 질문을 할지를 더 잘 판단할 수 있습니다.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

goals = [
    'Internal documentation for our own engineering team',
    'A sales one-pager to send cold prospects who know nothing about our product',
    'A support article for existing customers who are confused about the feature'
]

for goal in goals:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=100,
        messages=[{
            'role': 'user',
            'content': (
                f'Goal: {goal}\n\n'
                f'Task: Write 2 sentences about our new AI-powered search feature '
                f'that finds relevant documents from a knowledge base.'
            )
        }]
    )
    print(f'Goal: {goal}')
    print(response.content[0].text.strip())
    print()

제약 조건 맥락

제약 조건 맥락은 출력물이 따라야 하는 제한 사항을 설명합니다.

  • 기술적 제약: '인터넷에 연결하지 않고도 작동해야 함', '파이썬 3.9만 사용하고 타사 라이브러리는 사용하지 않음'
  • 예산 제약: '무료 요금제만 사용', '해결책의 비용은 월 50달러 미만이어야 함'
  • 규제 제약: 'HIPAA 준수', 'GDPR 적용 — 프롬프트에 사용자 데이터를 포함하지 않음'
  • 조직 제약: '출시 전에 법무 부서의 승인을 받아야 함', '데이터베이스 구조를 변경할 수 없음'

제약 조건 맥락은 실제 상황에서는 불가능한 해결책을 모델이 제안하는 일을 막아 줍니다.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Suggest 3 ways to cache API responses in a Python backend.\n\n'
            'Constraint context:\n'
            '- Python 3.11, stdlib only (no Redis, no Memcached, no third-party libraries)\n'
            '- The backend is a single process (no distributed cache needed)\n'
            '- Cache must expire after 5 minutes automatically\n'
            '- Solution must work on a server without internet access'
        )
    }]
)
print(response.choices[0].message.content)

맥락이 없으면 모델은 추측합니다

여기서 핵심적으로 기억할 점이 있습니다. 빠진 맥락 하나하나는 모델이 여러분을 대신해 내리는 결정이며, 모델은 그 사실을 알려 주지 않습니다.

분야가 빠짐 → 모델이 해당 주제에서 가장 흔한 분야를 선택함
대상 독자가 빠짐 → 모델이 가장 흔한 독자를 대상으로 작성함
목표가 빠짐 → 모델이 가장 분명해 보이는 목표를 선택함
제약 조건이 빠짐 → 모델이 모든 제한 사항을 무시함

이러한 조용한 선택 때문에 기술적으로는 맞지만 여러분의 상황에는 맞지 않는, 어딘가 어긋난 답변을 자주 받게 됩니다.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Demonstrate: same question, very different useful answers with context
without_context = 'How should I structure my data?'

with_full_context = (
    'Domain: mobile gaming backend, 10M daily active users.\n'
    'Technology: Python FastAPI + PostgreSQL + Redis.\n'
    'Goal: store player inventory items (weapon skins, power-ups) with fast reads.\n'
    'Constraint: reads happen 50x more than writes; schema changes are expensive.\n\n'
    'How should I structure my data? Give 2 options with tradeoffs.'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{'role': 'user', 'content': with_full_context}]
)
print(response.content[0].text)

각 맥락 유형이 가장 중요한 경우

모든 프롬프트에 네 가지 맥락 유형이 모두 필요한 것은 아닙니다. 하지만 특정 작업 유형은 특정 맥락을 포함할 때 특히 큰 도움을 얻습니다.

  • 기술 작업: 분야 맥락과 제약 조건 맥락이 가장 중요합니다
  • 글쓰기 작업: 대상 독자 맥락과 목표 맥락이 가장 큰 개선을 이끕니다
  • 설명: 대상 독자 맥락만으로도 출력 품질을 크게 바꿀 수 있습니다
  • 의사 결정 지원: 제약 조건 맥락이 쓸모없는 제안을 막아 줍니다
  • 창의적 작업: 목표 맥락과 분야 맥락이 적절한 창작의 틀을 정합니다
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Context selection for a creative task
response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Domain: luxury skincare brand (eco-conscious, premium, women 35-55).\n'
            'Goal: Valentine\'s Day campaign headline — will run on Instagram and in email.\n'
            'Constraint: must not mention price, discount, or sale. Max 8 words.\n\n'
            'Generate 5 headline options.'
        )
    }]
)
print(response.choices[0].message.content)

맥락과 프롬프트 오염

맥락이 많다고 항상 더 좋은 것은 아닙니다. 관련 없는 맥락은 프롬프트를 오염시키고 모델을 혼란스럽게 하여 주제에서 벗어난 응답을 만들 수 있습니다.

깔끔한 맥락을 위한 규칙:

  • 출력에 직접 영향을 미치는 정보만 포함합니다
  • 두 문장으로 요약할 수 있다면 문서 전체를 붙여 넣지 않습니다
  • 서로 모순되는 맥락은 제거합니다
  • 맥락이 관련 있는지 확신할 수 없다면 일단 제외하고, 출력 품질이 떨어질 때만 추가합니다
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Polluted context (too much irrelevant info)
polluted = (
    'I started my company in 2019. We have 12 employees. We use Slack. '
    'Our office is in Berlin. We had a good Q3. Our CEO is named Thomas. '
    'We have a dog-friendly office. We use Python for our backend. '
    'Last year we moved to a new CRM. We sponsor a local football team.\n\n'
    'Write a 2-sentence company bio for our website.'
)

# Clean context (only relevant info)
clean = (
    'Company: B2B SaaS, Berlin, founded 2019, 12 employees. '
    'Product: Python-based CRM for mid-market sales teams.\n\n'
    'Write a 2-sentence company bio for our website.'
)

for label, prompt in [('POLLUTED', polluted), ('CLEAN', clean)]:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=100,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.content[0].text.strip())
    print()

표준 관행으로서의 맥락

가장 효과적으로 프롬프트를 작성하는 사람들은 맥락을 모든 작업 지시보다 앞에 두는 표준 서식 섹션으로 다룹니다.

간단한 서식:

Context: [domain, technology, role, situation]
Audience: [who reads/uses the output]
Goal: [what this will accomplish]
Constraints: [what must/must not be included]
Task: [the actual instruction]

모든 프롬프트를 작성하기 전에 이 서식을 채우는 데 30초만 투자하면 몇 시간에 걸친 재작성을 막을 수 있습니다.

# Standard context template implementation
def build_prompt(context, audience, goal, constraints, task):
    sections = []
    if context:     sections.append(f'Context: {context}')
    if audience:    sections.append(f'Audience: {audience}')
    if goal:        sections.append(f'Goal: {goal}')
    if constraints: sections.append(f'Constraints: {constraints}')
    sections.append(f'Task: {task}')
    return '\n'.join(sections)

prompt = build_prompt(
    context='Python open-source project, MIT license, 2,000 GitHub stars',
    audience='New contributors who know Python but are unfamiliar with our codebase',
    goal='Help them submit their first pull request within 30 minutes of reading',
    constraints='Max 400 words. No command-line flags beyond git basics. No Docker.',
    task='Write a Getting Started contributing guide.'
)
print(prompt)

지식 확인

한 개발자가 인공지능에 '질의를 최적화하는 데 도움을 주세요.'라고 요청했습니다. 인공지능은 해당 개발 환경에 적용되지 않는 일반적인 데이터베이스 질의 최적화 팁을 제공했습니다. 어떤 종류의 맥락이 MOST 중요하게 빠져 있습니까?

인공지능 프롬프트의 맥락 — 복습

맥락은 모델이 일반적인 답변이 아니라 유용하고 목적에 맞는 응답을 제공하는 데 필요한 배경입니다. 네 가지 유형은 다음과 같습니다.

  • 분야 맥락: 분야, 산업, 기술 구성
  • 대상 독자 맥락: 누가 출력을 읽는지, 그들의 배경과 전문 지식
  • 목표 맥락: 출력물이 궁극적으로 무엇을 위한 것인지
  • 제약 조건 맥락: 어떤 제한 사항을 지켜야 하는지

빠진 맥락 요소 하나하나는 모델이 여러분을 대신해 조용히 내리는 결정입니다. 중요한 프롬프트를 작성하기 전에 맥락 서식을 사용하여 필요한 내용을 체계적으로 포함하십시오.

자주 묻는 질문

“인공지능 프롬프트에서 맥락이란 무엇인가” 강의는 무료인가요?

네 — “인공지능 프롬프트에서 맥락이란 무엇인가” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 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개 중 1번째 강의입니다.

“인공지능 프롬프트에서 맥락이란 무엇인가” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 인공지능 프롬프트에서 맥락이란 무엇인가
  2. 배경 정보 제공하기
  3. 상황 효과적으로 설정하기
  4. 맥락의 길이와 관련성
← AI Prompt Engineering(으)로 돌아가기