0Pricing
AI Prompt Engineering · 강의

모듈식 프롬프트 섹션

맥락, 지시문, 제약 조건 및 출력 형식을 깔끔하게 분리합니다.

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

단일 구조 Prompt의 문제점

단일 구조 Prompt는 배경, 작업, 규칙, 예시, 출력 형식을 모두 하나의 문단에 뒤섞어 넣습니다. Prompt가 복잡해질수록 이러한 단일 구조는 다음과 같은 문제를 일으킵니다.

  • 모델이 잘못된 부분에 규칙을 적용합니다
  • 어느 부분이 잘못된 출력을 유발했는지 파악하기 어렵습니다
  • 유지 관리가 불가능한 Prompt 문자열이 만들어집니다
  • 모델 버전에 따라 동작이 일관되지 않습니다

모듈식 Prompt는 이러한 문제를 모두 해결합니다.

Prompt의 다섯 가지 핵심 부분

잘 구조화된 Prompt에는 명확한 목적을 지닌 다섯 개의 서로 다른 부분이 있습니다.

  • 맥락 — 모델이 상황을 이해하는 데 필요한 배경
  • 작업 — 모델이 수행해야 하는 일(must)
  • 제약 조건 — 응답에 적용되는 규칙과 제한
  • 출력 형식 — 예상 응답의 구조, 분량, 형식
  • 예시 — 올바른 동작을 보여 주는 시연 예시

모든 Prompt에 다섯 가지가 모두 필요한 것은 아닙니다. 필요한 부분만 사용하십시오.

맥락 부분

맥락 부분은 모델에게 무엇을 하라고 지시하지 않고 배경 정보를 제공합니다. 좋은 맥락에는 다음이 포함됩니다.

  • 최종 사용자가 누구인지
  • 어떤 플랫폼 또는 제품을 위한 것인지
  • 관련 분야의 지식
  • 모델이 알고 있어야 하는 이전 상태
context_section = '''
<context>
You are assisting a customer support agent at a B2B SaaS company.
The company sells project management software used by engineering teams.
Customers are typically CTOs, engineering managers, or senior developers.
The support agent is handling a live chat conversation with a customer.
</context>
'''

print(context_section)

작업 부분

작업 부분은 모델이 정확히 무엇을 생성해야 하는지 명시합니다. 구체적이고 행동 지향적이어야 하며, 불필요한 배경 정보가 없어야 합니다.

task_section = '''
<task>
Draft a response to the customer message below.
The response should:
1. Acknowledge the customer's issue
2. Provide a concrete next step
3. Set a realistic expectation for resolution time
</task>

<customer_message>
Our Gantt chart view stopped loading after the last update.
This is blocking our sprint planning session today.
</customer_message>
'''

print(task_section)

제약 조건 부분

제약 조건은 가드레일, 즉 모델이 해서는 안 되는 일(must NOT)과 반드시 지켜야 하는 명시적 제한을 정의합니다.

constraints_section = '''
<constraints>
- Do not promise a fix by a specific date unless you are certain.
- Do not mention competitor products by name.
- Keep the response under 100 words.
- Use a professional but empathetic tone.
- Do not ask the customer for information already provided in their message.
</constraints>
'''

print(constraints_section)

출력 형식 부분

출력 형식 부분은 모델에게 응답을 정확히 어떤 방식으로 구성할지 알려 줍니다. 예를 들어 JSON 구조, 마크다운 헤더, 일반 텍스트, 번호 매기기 목록 등이 있습니다.

output_format_section = '''
<output_format>
Respond with a JSON object containing:
{
  "subject": "string (email subject line)",
  "body": "string (email body, plain text, under 150 words)",
  "priority": "high | medium | low",
  "escalate": true | false
}
Do not include any text outside the JSON object.
</output_format>
'''

print(output_format_section)

예시 부분

예시는 모델에 올바른 입력-출력 쌍을 보여 줍니다. 모델이 시연 예시를 보기 전에 규칙을 먼저 확인하도록 제약 조건 다음에 예시를 배치하십시오.

examples_section = '''
<examples>
  <example>
    <input>Customer: My invoices are not downloading.</input>
    <output>{
      "subject": "Invoice Download Issue",
      "body": "Thank you for reaching out. We see the issue with invoice downloads and our team is investigating. We expect a fix within 2 hours. We will email you once resolved.",
      "priority": "high",
      "escalate": true
    }</output>
  </example>
</examples>
'''

print(examples_section)

모듈식 Prompt 조립하기

모듈식 접근 방식을 사용하면 조립과 편집이 간단해집니다. 각 부분을 독립적으로 수정할 수 있습니다.

def build_support_prompt(customer_message):
    context = '<context>B2B SaaS customer support for project management software.</context>'
    task = f'<task>Draft a JSON response to this customer message.</task>\n<customer_message>{customer_message}</customer_message>'
    constraints = '<constraints>Under 100 words. Professional tone. No competitor names.</constraints>'
    output_fmt = '<output_format>Return JSON: {"subject": str, "body": str, "priority": str, "escalate": bool}</output_format>'
    return '\n\n'.join([context, task, constraints, output_fmt])

message = 'The Gantt chart stopped loading after your last update.'
print(build_support_prompt(message))

문제 해결을 위한 이점

모듈식 Prompt에서 잘못된 출력이 생성되면 문제가 있는 부분을 분리해 확인할 수 있습니다.

  • 잘못된 작업을 수행했습니까? — 작업 부분을 확인하십시오
  • 규칙을 위반했습니까? — 제약 조건 부분을 확인하십시오
  • 출력 구조가 잘못되었습니까? — 출력 형식 부분을 확인하십시오
  • 품질이 낮습니까? — 예시 부분을 확인하거나 맥락을 더 추가하십시오

전체 Prompt를 다시 작성하지 않고 한 번에 한 부분만 변경한 다음 다시 시험할 수 있습니다.

유지 관리를 위한 이점

구조화된 객체나 함수로 저장된 모듈식 Prompt는 긴 문자열 상수보다 유지 관리하기가 훨씬 쉽습니다.

  • 작업 로직을 건드리지 않고 제품이 변경될 때 맥락을 업데이트할 수 있습니다
  • 제약 조건을 변경하지 않고 출력 형식을 JSON에서 마크다운으로 바꿀 수 있습니다
  • 나머지 요소는 그대로 유지하면서 서로 다른 예시 집합을 A/B 시험할 수 있습니다
  • 각 부분을 독립적으로 버전 관리할 수 있습니다
class Prompt:
    def __init__(self):
        self.context = ''
        self.task = ''
        self.constraints = []
        self.output_format = ''
        self.examples = []

    def build(self):
        parts = []
        if self.context:
            parts.append(f'<context>\n{self.context}\n</context>')
        if self.task:
            parts.append(f'<task>\n{self.task}\n</task>')
        if self.constraints:
            c = '\n'.join(f'- {r}' for r in self.constraints)
            parts.append(f'<constraints>\n{c}\n</constraints>')
        if self.output_format:
            parts.append(f'<output_format>\n{self.output_format}\n</output_format>')
        return '\n\n'.join(parts)

부분을 생략해도 되는 경우

모든 Prompt에 다섯 가지 부분이 모두 필요한 것은 아닙니다. 다음 지침을 따르십시오.

  • 맥락 생략: 작업 자체만으로 설명이 충분한 경우(예: 이 문장을 번역하십시오)
  • 제약 조건 생략: 예외 상황이 없는 간단한 추출 작업인 경우
  • 예시 생략: 작업이 단순하거나 모델이 이미 제로샷으로 잘 수행하는 경우
  • 작업과 출력 형식은 항상 포함: 이것이 최소한으로 필요한 부분입니다

간단한 Prompt를 지나치게 구체화하면 이점 없이 불필요한 내용만 늘어납니다.

빠른 확인

모듈식 Prompt에서 출력 구조가 잘못 생성되었습니다. 어느 부분을 먼저 확인해야 합니까?

모듈식 부분 — 핵심 요점

모듈식 Prompt 부분은 유지 관리와 문제 해결이 쉬운 Prompt 설계의 토대입니다.

  • 다섯 가지 핵심 부분: 맥락, 작업, 제약 조건, 출력 형식, 예시
  • 각 부분에는 하나의 책임만 있습니다 — 여러 책임을 섞으면 혼란이 생깁니다
  • 모듈식 구조를 사용하면 부분별 문제 해결과 A/B 시험이 가능합니다
  • Prompt는 원시 문자열이 아니라 구조화된 객체나 함수로 저장하십시오
  • 필요하지 않은 부분은 생략하십시오 — 지나친 구체화는 불필요한 내용을 추가합니다
  • 단순하지 않은 모든 Prompt에는 최소한 작업과 출력 형식을 항상 포함하십시오

자주 묻는 질문

“모듈식 프롬프트 섹션” 강의는 무료인가요?

네 — “모듈식 프롬프트 섹션” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 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개 중 2번째 강의입니다.

“모듈식 프롬프트 섹션” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. XML 태그를 구분자로 사용하기
  2. 모듈식 프롬프트 섹션
  3. 머리말-본문-꼬리말 프롬프트 패턴
  4. 프롬프트 구성 모범 사례
← AI Prompt Engineering(으)로 돌아가기