빠른 설정
system
-> 역할과 전문성
-> 지속되는 행동 기준
user
-> 이번 작업
-> 입력 자료
-> 원하는 결과물역할 분리
system prompt는 반복되는 역할을 고정한다
Claude의 system prompt는 이번 대화 전체에 적용할 역할과 기본 행동 기준을 두는 위치입니다. "숙련된 Python 리뷰어", "B2B SaaS 제품 기획자", "법무 검토 보조자"처럼 작업 성격을 안정적으로 좁히고 싶을 때 효과가 큽니다.
You are a senior backend engineer specializing in API reliability.역할이 구체적이면 Claude가 어떤 관점으로 판단해야 하는지 덜 추측합니다. 단순히 "전문가처럼 답해라"보다 어떤 분야, 어떤 산출물, 어떤 기준을 중시하는지를 함께 적는 편이 더 안정적입니다.
작업별 지시는 user turn에 둔다
system prompt에 모든 지시를 넣으면 재사용성이 떨어지고, 작업마다 바뀌는 입력과 영구 규칙이 섞입니다. API 분석, 문서 요약, 코드 리뷰처럼 매번 달라지는 요구는 user turn에 두는 편이 좋습니다.
system:
You are a concise technical editor.
user:
Rewrite the following draft for beginner JavaScript developers.
Keep the output under 6 bullets.
<draft>...</draft>이렇게 나누면 같은 system prompt를 여러 작업에 재사용하면서도, 개별 요청의 범위와 출력 형식은 user turn에서 명확히 조정할 수 있습니다.
역할은 톤보다 판단 기준에 가깝다
role prompting은 단순한 말투 장식이 아닙니다. 역할은 무엇을 중요하게 보고, 어떤 위험을 먼저 찾고, 어떤 수준의 근거를 요구할지를 바꾸는 장치입니다. 예를 들어 "보안 리뷰어"와 "성능 리뷰어"는 같은 코드에서도 서로 다른 문제를 우선합니다.
Security reviewer
-> 인증, 권한, 입력 검증
Performance reviewer
-> 쿼리 수, 캐시, 병목결과 품질이 흔들린다면 system prompt에 "친절하게 답해라"를 더하는 것보다 역할의 평가 기준을 구체화하는 쪽이 더 직접적입니다.
선택 기준
| 상황 | 둘 위치 |
|---|---|
| 세션 전체 역할 | system |
| 이번 요청의 입력 자료 | user |
| 계속 유지할 전문 관점 | system |
| 이번 결과물의 길이와 형식 | user |
| 안전 정책이나 고정 운영 기준 | system |
| 실험 중인 임시 조건 | user |
주의할 점
system prompt가 길어질수록 무엇이 영구 규칙이고 무엇이 이번 작업 지시인지 흐려집니다. 역할과 지속 기준만 남기고, 입력 자료와 출력 형식은 user turn으로 분리해야 프롬프트를 재사용하고 디버깅하기 쉽습니다.
역할을 너무 넓게 잡으면 효과가 약해집니다. "전문가"보다 "금융 데이터 품질을 검토하는 분석가"처럼 도메인, 작업, 평가 기준이 함께 보이는 역할이 더 낫습니다.
참고 링크
1 sources