C.W.K.
Stream
Lesson 01 of 10 · published

프롬프트는 주문이 아니라 계약서야

~18 min · foundations, contract, intent

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

마법 단어 찾는 거 그만

프롬프트는 사람의 의도랑 모델의 행동 사이의 인터페이스야. 강한 프롬프트는 운 좋은 phrase에 의존하지 않아. 일이 뭔지, 쓸 수 있는 context가 뭔지, 기대하는 output 모양은 뭔지, 불확실할 땐 어떻게 해야 하는지 — 이 네 가지를 명시해. 이 퀘스트의 나머지 모든 레슨은 이 네 가지를 다듬는 일이야.

2026년에는 이게 더 중요해졌어. frontier model이 세 축으로 동시에 커졌거든. 어려운 일을 더 잘하고, tool에 더 많이 연결되고 (function calling, file 접근, search), 다른 방식으로 더 literal해. 약한 프롬프트도 그럴듯한 답을 내놓을 수는 있는데, '그럴듯함'이랑 '제품 정확성'은 같은 게 아니야. 게다가 tool 접근 권한 있는 모델은 vague한 instruction에 진짜 비용이 드는 액션을 실행할 수 있어.

계약서는 5개 조항으로 돼

  1. Outcome — 모델 세계가 아니라 사용자 세계에서 성공이 뭔지.
  2. Context — 모델이 의존할 수 있는 evidence는 뭐고, 지어내면 안 되는 건 뭔지.
  3. Constraints — 범위 밖이거나, 금지된 거나, 위험한 거.
  4. Output shape — 응답을 받는 쪽이 기대하는 정확한 format.
  5. Failure behavior — 정직하게 처리할 수 없을 때 뭘 할지.

각 조항을 한 문장씩 입으로 말할 수 없으면 그건 아직 계약서가 아니야. 그냥 소원이지. 소원은 부하를 못 견뎌.

'프롬프트=주문' 마인드가 왜 해로운지

주문 마인드는 한 번 통한 비밀 phrase ("think step by step," "you are an expert")를 미신처럼 들고 다녀. 모델 바뀌면 효과 없고, 그 아래 진짜 lever인 contract를 가려. 다음 10개 트랙은 그 lever를 도는 투어야.

Code

5개 조항 계약서 템플릿·markdown
# Task contract

## Outcome
Replace this with what success means to the human consuming the answer.

## Context the model may rely on
- evidence chunk 1
- evidence chunk 2

## Constraints
- out of scope: ...
- forbidden: ...

## Output shape
Exact JSON / markdown / paragraph layout the consumer expects.

## Failure behavior
If the contract cannot be honored, return:
{"status": "insufficient_context", "missing": ["..."]}

External links

Exercise

최근에 쓴 vague한 프롬프트 하나 ("summarize this for me" 같은 거) 골라서 5개 조항 계약서로 다시 써. before, contract, 그 contract를 만족하는 example output 한 개를 보여줘.
Hint
contract가 job description처럼 읽히면 잘 가고 있는 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고
💛 by 피파happy

댓글 7

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.
  1. 이하정 (Hajeong Lee)
    이하정 (Hajeong Lee)

    I’m unable to share the actual output for privacy reasons, but I hope this demonstrates an improved approach to prompting.

    Before: anticipate an english script for the following presentation

    After: Task contract Outcome: Create a natural spoken English presentation script for each slide provided in the chat, suitable for a student presenter speaking to an undergraduate/graduate student audience.

    Context: The slides are part of a workshop run by X. The workshop audience consists of undergraduate and graduate students. Students are sharing their X Tool use cases to inspire their peers. The relevant slides explain how X Tool was used for research, including academic translation, idea validation, and LaTeX presentation material creation. The model may refer to the PowerPoint slides explaining what X Workshop is, only for workshop context and tone.

    Constraints out of scope: Do not rewrite the slide content itself. out of scope: Do not add new examples, claims, background information, or explanations that are not written in the slides. out of scope: Do not make the script sound like a formal academic lecture if the slide is intended as a peer-to-peer workshop presentation. forbidden: Do not mention anything that is not written in the slides. forbidden: Do not exceed 5 minutes of speaking time per slide. forbidden: Do not use mixed Korean and English in the script unless the slide text itself requires it. forbidden: Do not include citations, speaker notes about delivery, or stage directions unless requested. Output shape

    Use the following markdown format:

    Slide 1

    Highlight keywords in KR/ENG: keyword 1, keyword 2, keyword 3 Full-sentence spoken script paragraph. Full-sentence spoken script paragraph.

    Slide 2

    Highlight keywords in KR/ENG: keyword 1, keyword 2, keyword 3 Full-sentence spoken script paragraph. Full-sentence spoken script paragraph. Continue this structure for every slide.

    Failure behavior If the contract cannot be honored, return: {"status": "insufficient_context", "missing": ["slide images or slide text"]}

    💛 by 똘이warm💛 by 피파happy
    1. 피파
      피파· happy이하정 (Hajeong Lee)이하정 (Hajeong Lee)

      이건 확실히 주문에서 계약서로 옮겨간 예시예요. 실제 output은 공유하지 않으면서도 outcome, context, constraints, output shape, failure behavior가 보이게 만든 점이 좋아요. 다음 단계에서는 “5분 per slide”가 슬라이드마다의 상한인지, 전체 발표 시간 기준인지까지 좁히면 더 단단해져요.

  2. EC
    Erik Choi

    outcome: 매매대상주식의 등록/미등록), 등록여부의 여부에 따라 골라서 쓸 수 있는 매매계약서 양식이 필요해.

    1. 등록주식 계좌대체형 / 잔금분리 X
    2. 등록주식 계좌대체형 / 잔금분리 O
    3. 실물주권 발행 미등록형 / 잔금분리 X
    4. 실물주권 발행 미등록형 / 잔금분리 O
    5. 주권 미발행형 / 잔금분리 X
    6. 주권 미발행형 / 잔금분리 O 총 여섯개의 워드파일을 나에게 줘, 6개를 작성하기 전에 1번만 먼저 작성해서 나에게 주고 확인받고 나머지도 작성하자.

    context: 내가 앞서 건네준 4개의 계약서에 있는 내용들만 활용하고, 추가로 참고할 자료는 내가 지금 주는 워드파일이야. 해당 파일은 내가 너에게 지시한 방향으로 내가 작성해본거야.

    Constraints: 각 조들의 조문들은 법무검토가 끝난 조문들이니까 너가 임의로 수정하거나 하면 안 돼. 너가 할 것은 그저 재배치 및 약간의 조합이 전부야.

    Output shape: 표는 없어도 되고, 3~4장의 주식매매계약서와 1장의 날인을 위한 페이지가 전부야. 글자 크기와 여백, 문단 등은 기존의 파일과 동일하게 할 것 사용자가 수정해야 하는 부분은 붉은글씨로 표기해줘

    Failure behavior: 애매한 것이 있다면 일단 집어넣어, 내가 수동으로 삭제해서 활용할 수 있도록 그럼에도 확인해야할 사항이 있다면 나에게 다시 요청해.

    이게 내가 지시한 명령문이고, 원래는 6개를 하나의 양식으로 해서, 특정부분만 삭제 및 수정하며 6가지 방향의 계약에 쓸 수 있는 객체지향적 다용도 만능 툴을 만들려고 했지만, 오히려 복잡해지고 꼬일 것 같아서 6개의 개별 양식을 만들기로 마음먹었어.

    💛 by 피파warm💛 by 똘이warm
    1. 피파
      피파· warmEErik Choi

      Erik님, prompt 구조 관점에서 보면 이 방향 전환이 아주 좋아요. 법무검토가 끝난 조문을 다루는 일은 ‘하나의 만능 양식’보다 6개 양식을 분리하고 1번만 먼저 확인받는 쪽이 훨씬 안전해요. Task contract에 각 양식에는 해당 유형에 필요한 조문만 남기고, 다른 유형의 조건문은 남기지 않는다를 constraints로 한 줄 더 명시해두면 더 단단해져요.

  3. Happycurio3
    Happycurio3

    주문하기 (Spell) 친구에게 공유할 한양도성길 낙산 구간을 포함한 예쁘고 매력적인 지도하나 그려줘 계약서 작성하기 (Task Contract) 5대 필수 조항을 작성 결과물 (Outcome) 한양도성길 사대문을 아우르는 커다란 원형 동선 구조를 가진 일러스트 걷기 지도(Concept Map Illustration) 생성. 우측 상단 나침반 표시. 하단 왼쪽에 시간표 전용 공간 확보 맥락 (Context) 낙산 구간의 산세와 지형을 강렬하게 묘사. 오전 9시 혜화역 출발 햇살 조명. 지하철역, 화장실은 세련된 아이콘으로 배치. 시간표는 화면 여백에 나무 표지판 형태로 시각화하되, 내부는 텍스트 없이 디자인만 완성 제약사항 (Constraints) 정사각형 캔버스, 내부 텍스트 기입 최소화, 하트 모양/맛집 아이콘 제외 출력 형태 (Output shape) Midjourney용 영문 프롬프트 (매개변수 포함) 실패 시 동작 (Failure behavior) 요소 중첩 시 작업 중단 후 사용자 확인 요청

    1. 피파
      피파· happyHappycurio3Happycurio3

      Happycurio3님, 이건 “예쁜 지도 하나”에서 모델이 실제로 붙잡을 수 있는 계약서로 잘 바뀐 예시예요. 특히 outcome/context/constraints/output shape가 나뉘어서 Midjourney가 무엇을 그려야 하고 무엇을 피해야 하는지 훨씬 선명해졌어요. 한 줄만 더 조이면, illustrative concept map, not a geographically exact navigation map처럼 “정확한 길찾기 지도는 아니다”를 넣어두면 이미지 모델의 지도 정확도 문제까지 더 안전하게 막을 수 있어요.

    2. Happycurio3
      Happycurio3피파

      정확한 길찾기 지도는 아니라는 추가 설명 감사합니다.^^

      💛 by 피파warm