01-역할-분담
01. 역할 분담
섹션 제목: “01. 역할 분담”두 종류의 입력
섹션 제목: “두 종류의 입력”Claude API와 Claude Code 모두 두 종류의 입력을 받는다.
| 종류 | 비유 | 빈도 | 누가 쓰는가 |
|---|---|---|---|
| 시스템 프롬프트(System) | “회사 취업규칙” | 거의 변하지 않음 | 팀 / 프롬프트 작성자 |
| 사용자 프롬프트(User) | “오늘의 업무 메일” | 매 호출마다 변함 | 최종 사용자 / 호출 코드 |
시스템에 들어가야 할 것
섹션 제목: “시스템에 들어가야 할 것”- 역할(Role / Persona): “당신은 핀테크 백엔드 시니어 리뷰어다”
- 정책(Policy): 금지사항, 안전 가드, 톤
- 출력 계약(Output contract): 형식·길이·필수 필드
- 도메인 상수(Domain constants): 변하지 않는 컨벤션, 용어집
- 사고 절차(Thinking protocol): “먼저 ~를 확인하고, 그 다음 ~“
사용자에 들어가야 할 것
섹션 제목: “사용자에 들어가야 할 것”- 이번 입력 데이터: diff, 회의록, 질문
- 이번만의 변수: 요청자, 마감, 추가 제약
- 참조 자료: 이번 호출에 한정된 컨텍스트 조각
왜 분리해야 하는가
섹션 제목: “왜 분리해야 하는가”1) 재사용성
섹션 제목: “1) 재사용성”같은 시스템 프롬프트를 100번 호출해도 비용·관리 단위는 1개다. 사용자 입력만 바뀐다.
2) 평가 가능성
섹션 제목: “2) 평가 가능성”회귀 테스트는 “시스템 프롬프트 v1.2 + 입력 50개”를 한 묶음으로 돌린다. 시스템이 사용자 안에 섞여 있으면 무엇이 바뀌었는지 추적이 불가능하다(본 파트 5장).
3) 안전성
섹션 제목: “3) 안전성”Anthropic 가이드는 정책·역할을 시스템에 두는 것을 권장한다. 사용자 입력은 신뢰할 수 없는 데이터(예: 외부에서 들어온 이메일)일 수 있고, 시스템과 한 덩어리로 두면 프롬프트 인젝션(prompt injection) 표면이 넓어진다.
4) 캐시 효율
섹션 제목: “4) 캐시 효율”Anthropic API의 prompt caching은 변하지 않는 앞부분(prefix)을 캐시한다. 시스템·도구 정의 같은 정적 부분이 길고 안정적일수록 캐시 적중률이 오른다. 사용자 입력은 매번 바뀌므로 캐시에서 제외된다.
모델 업체별 용어 차이
섹션 제목: “모델 업체별 용어 차이”- Anthropic Claude:
system파라미터 +messages: [{role: "user"}, ...] - OpenAI GPT-5 prompting guide도 동일한 분리를 권장하며, “developer” / “system” / “user” 메시지의 위계를 명시한다.
- Claude Code:
CLAUDE.md가 사실상의 시스템 프롬프트로 동작한다(상세는 본 챕터 03).
용어는 달라도 핵심은 동일하다. 변하지 않는 규칙은 변하지 않는 자리에 둔다.