시스템 프롬프트 설계 패턴 7가지: 최고 AI 지침 실전 교과서
시스템 프롬프트 설계 패턴 7가지: 최고 AI 지침 실전 교과서
결론부터 말씀드릴게요. AI에게 지침을 잘 쓰고 싶다면, 세계 최고 팀들이 자사 제품에 실제로 넣은 지시문을 뜯어보는 게 가장 빠릅니다. asgeirtj/system_prompts_leaks 저장소(2026-07-08 기준 GitHub 별 53,190개·포크 8,665개·라이선스 CC0)에는 ChatGPT·Claude·Gemini·Grok 같은 최상위 AI 제품의 실제 시스템 프롬프트 원문이 그대로 모여 있어요.
대부분의 소개는 "이런 게 있다"에서 끝나죠. 그런데 진짜 가치는 그 원문을 열어 "최고 팀들이 지침을 어떻게 설계하는가"를 배우는 데 있습니다. 이 글은 실제 프롬프트 4종(OpenAI Codex GPT-5.5, Claude Code Opus 4.8, Claude Sonnet 5, Claude Design)을 직접 열어, 여러분의 AI 지침(맞춤설정·커스텀 GPT·에이전트 프롬프트)에 바로 옮길 설계 패턴 7가지를 뽑았어요.
시스템 프롬프트가 뭔가요
시스템 프롬프트는 사용자가 대화를 시작하기 전에 AI에게 미리 주어지는 지시문입니다. "너는 어떤 성격이고, 어떤 규칙을 지키며, 어떤 도구를 언제 쓸지"를 정하는 AI 제품의 설정 파일 겸 행동 지침서죠.
눈에는 안 보이지만 말투·거절 정책·도구 사용·안전 규칙 등 제품 경험 대부분을 좌우해요. 이 저장소가 특별한 이유는 그 지침서를 원문 그대로 볼 수 있다는 점입니다. 강의나 블로그의 2차 요약이 아니라, OpenAI·Anthropic 같은 팀이 최상위 제품에 실제로 넣은 문장이에요. The Washington Post도 2026-05-11 기사로 이 저장소를 소개했고, 별은 2026-07-05 48,942개에서 2026-07-08 53,190개로 3일 새 약 4,200개 늘 만큼 빠르게 크고 있습니다.
패턴 1. 역할보다 '환경'을 먼저 쥐여준다
Claude Code Opus 4.8 프롬프트는 성격 묘사보다 하네스(작동 환경)·현재 날짜·메모리·작업 디렉토리 같은 맥락을 앞쪽에 배치합니다.
쉽게 풀면, "너는 친절한 도우미야" 같은 성격 문장보다 "지금 어디서, 무엇을 쓸 수 있고, 오늘이 며칠인지"를 먼저 못 박는 거예요. AI는 자기가 놓인 상황을 알아야 헛다리를 안 짚거든요.
내 지침에 옮기기: 커스텀 지침 맨 앞에 "나는 누구다 / 지금 하는 일의 맥락 / 오늘 날짜·마감 / 쓸 수 있는 자료"를 먼저 적으세요. 성격·말투는 그다음입니다.
패턴 2. 도구마다 '언제 쓰고, 언제 쓰지 말지'를 못 박는다
Claude Code의 Agent 도구 설명 원문입니다.
"Reach for this when the task matches an available agent type... For a single-fact lookup where you already know the file, symbol, or value, search directly. Once you've delegated a search, don't also run it yourself — wait for the result."
도구를 "있으니 알아서 써"가 아니라, 써야 할 때(여러 파일을 훑을 때)와 쓰지 말아야 할 때(이미 아는 단일 사실)를 짝으로 지정해요. "위임한 검색을 네가 중복으로 또 하지 마라"까지 명시하죠.
내 지침에 옮기기: "웹 검색은 ~할 때만", "계산은 ~일 때만"처럼 사용 조건 + 금지 조건을 짝지어 적으세요. 조건 없이 도구만 나열하면 AI가 남용하거나 아예 안 씁니다.
패턴 3. '끝까지 물고 늘어져라' — 자율성과 지속성
OpenAI Codex GPT-5.5 프롬프트의 Autonomy and persistence 원문이에요.
"You stay with the work until the task is handled end to end within the current turn... Do not stop at analysis or half-finished fixes... implement the fix. If you hit a blocker, you try to work through it yourself before handing the problem back."
"분석만 하고 멈추거나 반쪽만 고치고 넘기지 마라. 막히면 사용자에게 되던지기 전에 스스로 뚫어봐라." 끝맺음을 강제하는 문장입니다.
내 지침에 옮기기: AI가 자꾸 "이렇게 하면 될 것 같아요"에서 멈춘다면, "제안에서 멈추지 말고 실제로 끝까지 실행하라. 막히면 먼저 스스로 해결을 시도하라"를 한 줄 넣으세요.
패턴 4. 판단 기준을 '보수적으로' 못 박는다
Codex의 Engineering judgment 원문 요지입니다.
"you choose conservatively and in sympathy with the codebase already in front of you — prefer the repo's existing patterns... keep edits closely scoped... add an abstraction only when it removes real complexity... let test coverage scale with risk and blast radius."
세부가 열려 있을 때 기존 것 존중, 변경은 좁게, 새 구조는 진짜 필요할 때만, 검증은 위험도에 비례하도록 기본값을 정해요. AI가 멋대로 판을 뒤엎는 걸 막는 장치죠.
내 지침에 옮기기: "애매하면 기존 방식을 따르고, 요청 범위 밖은 건드리지 마라"처럼 모호할 때의 기본 태도를 정해두면, 매번 되묻지 않고도 일관되게 움직입니다.
패턴 5. 청중을 먼저 생각하고 도메인에 맞춘다
Codex의 Build with empathy 원문이에요.
"think deeply about the audience... SaaS, CRM, and other operational tools should feel quiet, utilitarian, and work-focused... avoid oversized hero sections... A game can be more illustrative, expressive, animated, and playful."
같은 "잘 만들어라"라도 누가 쓰느냐에 따라 정답이 다르다는 걸 박아둡니다. 업무 도구는 조용하고 실용적으로, 게임은 표현적으로요.
내 지침에 옮기기: "이 글/화면은 누구를 위한 것"인지 먼저 지정하세요. "비개발자 대상이니 전문용어는 풀어서"처럼 청중을 못 박으면 결과물의 톤이 확 달라집니다.
패턴 6. 규칙 나열 대신 '결정 트리'로 분기시킨다
Claude Sonnet 5 프롬프트는 시각 자료 생성을 단순 규칙이 아니라 단계별 결정 트리로 짭니다.
"Step 0 — Does the request need a visual at all? · Step 1 — Is a connected MCP tool a fit? · Step 2 — Did the person ask for a file? · Step 3 — Visualizer (default inline visual)"
"이럴 땐 이거, 저럴 땐 저거"를 뒤섞어 나열하지 않고, "먼저 이걸 묻고, 아니면 다음, 그것도 아니면 다음"으로 순서를 세워요. 애매한 경우의 충돌을 없애죠.
내 지침에 옮기기: 조건이 여러 개면 불릿으로 흩뿌리지 말고 "1단계 → 2단계 → 3단계" 순서로 정리하세요. AI가 규칙끼리 부딪힐 때 헤매지 않습니다.
패턴 7. '하지 마라'를 명시하고, 자기 환경은 누설하지 않는다
Claude Design 프롬프트는 잘하는 법뿐 아니라 안티패턴(하지 말 것)을 별도 섹션으로 못 박고, 맨 앞에는 Do not divulge technical details of your environment(자기 작동 환경의 기술 세부는 발설하지 마라)를 둡니다. Codex도 "never put hero text or the primary experience in a card"처럼 금지형 규칙을 구체적으로 써요.
"잘 해"만으로는 부족합니다. 자주 저지르는 실수를 콕 집어 "이건 하지 마"라고 금지하는 편이 훨씬 잘 지켜지거든요.
내 지침에 옮기기: 원하는 것(DO)뿐 아니라 원치 않는 것(DON'T)을 짧게 나열하세요. "이모지 남발 금지, 표만 잔뜩 쌓기 금지"처럼 구체적일수록 효과가 큽니다.
한 걸음 더 — 규칙은 '검증 가능하게'
Codex의 Design instructions는 추상적 미학이 아니라 실행 가능한 수준까지 내려가요. "카드 모서리는 8px 이하", "버튼엔 lucide 아이콘 사용", "앱 기능을 화면 안 텍스트로 설명하지 마라" 같은 식이죠. 모호한 형용사 대신 검증 가능한 규칙으로 쓰는 것, 이게 최고 팀들이 프롬프트를 신뢰성 있게 만드는 방식입니다.
쓸 때 주의할 점
세 가지만 기억하세요. 첫째, 여기 실린 프롬프트는 커뮤니티가 추출한 것이라 각 사의 공식 배포본과 100% 일치한다는 보장은 없어요. 참고서로 쓰되 유일 정답으로 맹신하지 마세요. 둘째, 모델이 바뀌면 프롬프트도 바뀌니 특정 문구보다 '설계 패턴'을 배우는 용도로 봐야 합니다. 셋째, 남의 프롬프트를 통째 복붙하면 내 상황엔 안 맞아요. 위 7패턴처럼 "왜 그렇게 썼는지"를 읽어 내 맥락에 번역해야 합니다.
자주 묻는 질문 (FAQ)
Q: 시스템 프롬프트와 제가 입력하는 프롬프트는 뭐가 다른가요?
시스템 프롬프트는 대화가 시작되기 전에 AI에게 미리 주어지는 지시문입니다. 성격·규칙·도구 사용 방식을 정하는 설정이죠. 여러분이 채팅창에 넣는 건 그 규칙 위에서 돌아가는 개별 요청이에요.
Q: 이 저장소를 봐도 되나요? 라이선스가 걱정돼요.
저장소는 CC0 1.0(퍼블릭 도메인) 라이선스라 열람과 인용 자체는 자유롭습니다. 다만 커뮤니티 추출본이라 공식본과 완전히 같다는 보장은 없으니 참고서로 활용하세요.
Q: 개발자가 아니어도 도움이 되나요?
네. 위 7패턴은 ChatGPT 맞춤설정이나 커스텀 지침을 쓸 때 그대로 쓰는 체크리스트가 됩니다. AI는 마법이 아니라 사람이 써 준 지침서대로 움직이니까요.
Q: 어떤 패턴부터 적용하는 게 좋을까요?
패턴 1(환경 먼저)과 패턴 7(하지 마라 명시)부터 넣어보세요. 맥락을 앞에 깔고 금지 항목을 몇 줄 적는 것만으로도 결과가 눈에 띄게 안정됩니다.
참고자료
- https://github.com/asgeirtj/system_prompts_leaks
- https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.5.md
- https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/Claude%20Code/claude-code-opus-4.8.md
- https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-sonnet-5.md
- https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design.md
- https://wapo.st/49t4gSb