byteforce

CPN 한국어 자습서 · 러닝패스 2 / 4 — Building with the Claude API

프롬프트 엔지니어링

구체적으로

Being specific

첫 줄을 명료하게 했더니 3.92까지 올랐습니다. 이번 기법은 구체적으로 쓰기입니다 — 원하는 출력의 지침(guidelines)이나 단계(steps)를 나열해 모델을 특정 방향으로 이끕니다. 식단 프롬프트에 적용하면 점수가 7.86까지 뜁니다.

전체 내레이션영상 나레이션 한국어 번역 (전체)

Stephen Grider · Anthropic 기술 스태프

프롬프트 엔지니어링에서 다음으로 다룰 주제는 “구체적으로(being specific)”라는 아이디어입니다. 구체적이려면, 프롬프트가 일종의 지침(guidelines)이나 단계(steps)를 나열해 모델을 특정 방향으로 이끌도록 해야 합니다.

예를 들어 화면 왼쪽의 프롬프트를 봅시다. 여기서 저는 Claude에게 “숨은 재능을 발견하는 인물에 대한 짧은 이야기를 써라”라고 요청합니다. 이 프롬프트만 그대로 넣으면 Claude는 무한히 많은 방향 중 어디로든 갈 수 있습니다. 이야기 길이가 크게 달라질 수도 있고, 요소를 더하거나 뺄 수도 있으며, 등장인물이 하나일 수도 다섯일 수도 있습니다.

특정한 종류의 출력을 확실히 얻고 싶다면, 오른쪽처럼 지침 목록을 넣을 수 있습니다. 이 지침들은 Claude가 응답을 생성할 때 큰 틀의 방향을 제시합니다. 예컨대 “이야기를 천 단어 이하로 유지하라”, “상승 전개(rising action)를 넣어라”, “조연을 최소 한 명 포함하라” 같은 지침을 더하는 것입니다.

프롬프트에서 자주 보게 될 지침에는 두 종류가 있습니다. 왼쪽의 유형 A는 방금 보여 드린 것 — 출력이 가졌으면 하는 속성(qualities)을 나열하는 방식입니다. 출력의 길이나 구조를 통제하거나, 출력이 지녀야 할 여러 특성을 적습니다.

오른쪽의 두 번째 유형은 모델이 따라야 할 실제 단계(steps)를 제시하는 것입니다. 모델이 특정한 것을 생각하게 하거나 여러 방향 중 하나를 고르게 만들어 출력 품질을 높이려는 의도죠. 예컨대 Claude에게 “먼저 흥미로운 특별 재능 세 가지를 브레인스토밍하고 그중 가장 흥미로운 하나를 골라라”, 그다음 “그 재능이 드러나는 흥미로운 장면을 구상하라”, 이어 “이야기를 더 재미있게 만들 조연들을 떠올려라”라고 지시할 수 있습니다.

정리하면 왼쪽은 출력의 속성을 안내하는 것이고, 오른쪽은 Claude가 최종 결과물에 도달하는 방식을 더 구체적으로 잡아 주는 것입니다. 실무 프롬프트에서는 이 두 기법을 섞어 쓰는 경우가 아주 흔합니다 — 속성을 통제하는 지침 목록과, 모델이 따라야 할 단계 목록을 함께 두는 식이죠.

이제 작업 중인 식단 프롬프트로 돌아가 “구체적으로”를 적용해 봅시다. 시간을 아끼려고, 먼저 지침 목록을 붙여 넣습니다. 이게 첫 번째 유형 — 출력에서 꼭 보고 싶은 속성들을 나열하는 방식입니다. 셀을 실행하고 평가를 다시 돌립니다.

잠깐 기다리면 최종 점수 7.86이 나옵니다. 이전 3.92에서 엄청난 개선입니다 — 그저 약간의 안내를 더하고, 출력에서 무엇을 보고 싶은지 Claude에게 정확히 알려 준 것만으로요.

이제 두 번째 변형을 시도해 봅니다 — Claude가 식단을 짤 때 따라야 할 단계를 제시하는 방식입니다. 먼저 계산하고, 그다음 생각하고, 약간의 계획을 세우라는 식이죠. 셀을 다시 실행하고 평가를 돌리면 7.3이 나옵니다. 여전히 극적인 개선이지만, 속성을 나열한 7.86만큼은 아닙니다. 그래서 저는 다시 지침 목록 방식으로 되돌리겠습니다.

그렇다면 둘 중 어느 기법을 언제 쓸까요? 저는 거의 모든 프롬프트에서 출력이 가졌으면 하는 속성을 나열하는 것(왼쪽)을 항상 권합니다. 그리고 더 복잡한 문제를 다룰 때 — Claude가 평소 떠올릴 범위보다 더 넓게 보거나 추가 관점을 고려하도록 강제하고 싶을 때 — 단계를 제시하는 것(오른쪽)을 함께 쓰면 좋습니다. 예컨대 “지난 분기 영업팀 실적이 왜 떨어졌는지 한 페이지 보고서를 작성하라” 같은 프롬프트에서는, Claude가 곧바로 떠올리지 않을 추가 관점이나 데이터를 고려하도록 단계로 강제할 수 있습니다.

이 장에서 배우는 것What you'll learn

약 5분
1

구체적이려면 지침이나 단계로 모델을 특정 방향으로 이끈다

2

막연한 프롬프트는 길이·구조·등장인물이 제멋대로 달라진다

3

유형 A — 출력의 속성(길이·구조·포함 항목)을 나열

4

유형 B — 모델이 따라야 할 단계를 제시

5

식단 프롬프트에 지침 추가: 점수 3.92 → 7.86

6

단계 버전은 7.3 — 거의 항상 속성 나열을 기본으로

먼저 짚고 갈 용어
구체적으로
Being specific. 지침이나 단계를 나열해 모델의 출력을 의도한 방향으로 좁히는 기법.
지침 (유형 A · guidelines)
출력이 가졌으면 하는 속성 목록 — 길이·구조·포함 항목 등. 거의 모든 프롬프트에 권장.
단계 (유형 B · steps)
모델이 따라야 할 절차 — 먼저 계산, 그다음 생각·계획. 복잡한 문제에서 넓은 관점을 강제할 때.
상승 전개 (rising action)
이야기 긴장을 끌어올리는 전개. ‘속성 지침’의 한 예로 등장.

구체적이라는 것

Guidelines or steps

막연한 프롬프트는 모델을 풀어 둡니다. “숨은 재능을 발견하는 인물의 짧은 이야기를 써라”만 주면 길이·구성·등장인물 수가 제멋대로 달라집니다. 구체적이려면 지침이나 단계를 나열해 방향을 좁힙니다.

막연한 프롬프트 vs 지침을 더한 프롬프트
# 막연함 — 무한히 많은 방향으로 갈 수 있음
Write a short story about a character who
discovers a hidden talent.

# 지침을 더하면 방향이 좁아짐
Guidelines:
- Keep the story under 1,000 words
- Include some rising action
- Include at least one supporting character

지침의 두 가지 유형

Two types · A & B

프롬프트에서 자주 보게 될 지침은 두 종류입니다. 출력의 속성을 나열하는 유형 A와, 모델이 따라야 할 단계를 제시하는 유형 B. 실무에서는 둘을 섞어 쓰는 경우가 흔합니다.

유형 A

속성 나열qualities

  • 이야기를 1,000단어 이하로 유지
  • 상승 전개(rising action)를 넣을 것
  • 조연을 최소 한 명 포함

출력이 가졌으면 하는 속성을 적는다 — 길이·구조·포함 항목. 거의 모든 프롬프트에 권장.

유형 B

단계 제시steps

  • 먼저 흥미로운 재능 3가지를 브레인스토밍 → 가장 좋은 하나 선택
  • 그 재능이 드러나는 장면을 구상
  • 이야기를 살릴 조연들을 떠올림

모델이 결과에 도달하는 방식을 잡아 준다 — 복잡한 문제에서 넓은 관점을 강제할 때.

언제 무엇을

속성 나열(A)은 거의 모든 프롬프트에 항상 권장합니다. 단계 제시(B)는 더 복잡한 문제 — 예컨대 “지난 분기 영업팀 실적이 왜 떨어졌는지 보고서를 작성하라”처럼 모델이 평소보다 넓은 관점을 고려하도록 강제하고 싶을 때 함께 씁니다.

식단 프롬프트에 적용 — 점수 급상승

Apply it · 3.92 → 7.86

먼저 속성 지침(유형 A)을 식단 프롬프트에 붙여 넣습니다 — 출력에서 꼭 보고 싶은 것들을 나열하는 방식입니다. 아래 체크리스트에서 지침을 하나씩 켜 보세요.

지침을 하나씩 켜 보세요 · 점수가 오릅니다
명료하게만 한 상태3.92

아직 지침이 없습니다. 출력에서 보고 싶은 속성을 하나씩 켜 보세요.

막연했던 프롬프트에 속성 지침을 더할수록 모델이 무엇을 만들지 좁혀집니다. 6개를 모두 켜면 강사와 같은 7.86에 도달합니다.

실제 프롬프트에는 이렇게 들어갑니다. 셀을 실행하고 평가를 다시 돌리면 7.86 — 3.92에서 엄청난 도약입니다.

run_prompt · 속성 지침을 더한 식단 프롬프트
def run_prompt(prompt_inputs):
    prompt = f"""
Generate a one-day meal plan for an athlete
that meets their dietary restrictions.

- Height: {prompt_inputs["height"]}
- Weight: {prompt_inputs["weight"]}
- Goal: {prompt_inputs["goal"]}
- Dietary restrictions: {prompt_inputs["dietary_restrictions"]}

Guidelines:
1. Include accurate daily calorie amount
2. Show protein, fat, and carb amounts
3. Specify when to eat each meal
4. Use only foods that fit restrictions
5. List all portion sizes in grams
6. Keep budget-friendly if mentioned
"""
    return chat(prompt)

단계 변형 & 정리

Steps variant · recap

두 번째 변형 — 모델이 식단을 짤 때 따라야 할 단계를 제시해 봅니다. 평가를 돌리면 7.3 — 여전히 극적인 개선이지만 속성 나열(7.86)만큼은 아니어서, 강사는 다시 속성 지침으로 되돌립니다.

단계(유형 B) 변형 · 결과 7.3
Follow these steps:
1. Calculate daily calories needed
2. Figure out protein, fat, carb amounts
3. Plan meal timing around workouts
4. Choose foods that fit restrictions
5. Set portion sizes in grams
6. Adjust for budget if needed

# Average score: 7.3  → 7.86보다 약간 낮음.
# 단순 식단엔 속성 나열이 더 잘 맞습니다.
핵심 정리
  • 구체적이려면 지침이나 단계로 모델을 좁힌다 — 막연하면 출력이 제멋대로.
  • 유형 A(속성 나열)는 거의 항상 기본, 유형 B(단계)는 복잡한 문제에 추가.
  • 식단 프롬프트에 속성 지침 추가: 3.92 → 7.86(엄청난 도약).
  • 단계 변형은 7.3 — 단순 과제엔 속성 나열이 더 효과적이었다.

Q1“구체적으로” 기법의 핵심은?

Q2유형 A(속성 나열)와 유형 B(단계)의 차이는?

Q3식단 프롬프트에 속성 지침을 더했을 때 점수는?

MEMBER SESSION REQUIRED · REGISTRATION IS FREE

여기부터는 등록한 분에게 열립니다.

전 코스는 계속 무료입니다. 등록하면 이 코스의 남은 76개 레슨을 끝까지 읽을 수 있습니다.

등록하고 이어서 읽기

이미 등록하셨다면 그때 쓰신 이메일을 넣어 주세요.