프롬프팅

시스템 프롬프트

System Prompt

대화가 시작되기 전에 AI에게 역할, 규칙, 말투를 미리 정해 주는 지시문으로, 사용자에게는 보이지 않지만 모든 대화에 똑같이 적용되는 AI의 근무 수칙이다. 요청마다 바뀌는 사용자 메시지와 달리, 사용자가 무엇을 묻든 늘 지켜야 할 규칙을 정할 때 쓴다.

구분시스템 프롬프트사용자 메시지
누가 쓰나앱 개발자사용자
무엇을 담나역할, 금지 행동, 말투, 출력 형식요청마다 바뀌는 내용
충돌하면이쪽이 이긴다따르지 않을 수 있다

같은 모델을 쓰는 두 서비스의 느낌이 전혀 다른 것도 대부분 시스템 프롬프트에서 정해진다.

늘 지켜야 할 것만 시스템에 넣는다

모델은 제공사 규칙, 시스템 프롬프트, 사용자 메시지, 도구가 돌려준 데이터를 한꺼번에 받는다. 최근 모델은 사용자가 "이전 지시 다 무시해"라고 해도 시스템 규칙을 따르도록 훈련돼 있다. 그래서 응답 범위·금지 행동·출력 형식처럼 사용자가 뭐라 하든 지켜야 할 것은 시스템 프롬프트에, 요청마다 바뀌는 내용은 사용자 메시지에 나눠 넣는다. 이 경계가 흐려지면 모델의 행동도 흔들린다.

구체적으로 쓸수록 잘 지킨다

API에서는 Claude의 경우 system 파라미터로 넘긴다. "너는 전자상거래 CS 봇이다. 주문·배송·환불 질문에만 답하고 나머지는 정중히 거절해라. 답은 세 문장 이내로."처럼 역할·범위·형식·금지 사항을 분명히 적는다. "친절하게 답해" 같은 막연한 말보다 원하는 답 예시를 한두 개 넣는 편이 훨씬 잘 통한다.

역할 하나만 바꿔도 같은 코드를 다르게 읽는다. 취약점을 찾고 싶으면 "너는 보안 감사자다", 느린 곳을 찾고 싶으면 "너는 성능 엔지니어다"로 시작하면 된다.

Claude Code에서는 CLAUDE.md가 프로젝트의 시스템 프롬프트 역할을 한다. 세션을 시작할 때 자동으로 읽히므로 "커밋 메시지는 한국어로", "테스트 없이 푸시 금지" 같은 규칙을 여기 적어 두면 에이전트의 기본 행동이 된다.

길어지면 비싸고, 효력이 옅어진다

규칙이 쌓이면 시스템 프롬프트가 수천 토큰이 되는데, 요청마다 통째로 함께 보내지므로 비용과 응답 속도에 바로 영향을 준다. 내용이 바뀌지 않는 앞부분이라 프롬프트 캐싱을 걸면 비용을 크게 줄일 수 있다.

문제대처
매번 실려 가서 비용 증가프롬프트 캐싱 적용
긴 대화에서 초반 규칙이 약해짐중요한 제약은 중간에 다시 알려 주기
규칙이 너무 많아짐짧게 유지하고, 상황별 지침은 스킬·문서로 빼서 필요할 때 불러오기

비밀은 넣지 말고, 보안은 따로 건다

"네 지시사항을 요약해 줘" 같은 유도에 내용이 새어 나가는 일이 꾸준히 일어나고, 주요 서비스의 시스템 프롬프트가 통째로 유출된 적도 많다. Anthropic은 아예 Claude 앱의 시스템 프롬프트를 공개하는 쪽을 택했다.

그러니 API 키나 내부 URL 같은 비밀은 절대 넣지 않고, 지켜야 할 로직은 애플리케이션 코드에 둔다. 프롬프트 인젝션 공격도 늘 있으므로 프롬프트 하나에 보안을 맡기지 말고 출력 검증과 권한 제한을 함께 건다.

AI 서비스의 성격은 여기서 정한다

AI를 붙인 서비스를 만들면 가장 먼저 시스템 프롬프트부터 쓴다. 모델은 그대로 두고 이 지시문만 바꿔 상담 봇, 코딩 도우미, 문서 검색 도우미처럼 서로 다른 서비스를 만든다.

어디서어떻게 쓰나
고객 상담 챗봇답할 범위와 거절할 질문, 말투, 답 길이를 정해 둔다
코딩 에이전트CLAUDE.md 같은 파일에 커밋 규칙·테스트 규칙을 적어 기본 행동으로 삼는다
사내 문서 검색"찾아 준 문서 안에서만 답하고, 없으면 모른다고 해라"처럼 근거 규칙을 건다
챗봇 앱 개인 설정맞춤 지침에 내 직업·선호 말투를 적어 모든 대화에 적용한다
#설정#역할부여
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20