결론부터 말하자면, 새 문서에서 등장한 “developer” 역할은 기존 “system” 역할이 이름만 바뀐 것에 가깝습니다.
OpenAI 쪽에서 ‘시스템(system) 프롬프트’라는 용어를 “개발자(developer) 지시사항”으로 부르도록 변경하면서,
‘개발자가 지정한 규칙(Chain of Command)’이 사용자 입력보다 우선순위를 가진다는 점을 조금 더 명확히 드러내려는 의도로 해석할 수 있습니다.
아래는 각각의 역할이 어떻게 달라졌는지를 정리한 내용입니다.
1. “system” → “developer”로의 명칭 변경 배경
기존 문서에서는 “system” 역할이 모델의 전반적인 동작 방식을 규정하고,
사용자 메시지와 비교했을 때 가장 높은 우선순위를 갖는다고 설명해 왔습니다.
그런데 최근 문서에서는 이를 **“developer”**라는 이름으로 대체하여,
“이 메시지는 개발자가 원하는 동작 지침이며, 사용자 요청보다 우선한다”는 개념을 명확히 하고 있습니다.
- 예전: “system” 프롬프트
- 현재: “developer” 프롬프트 (기본 우선순위가 가장 높음)
즉, “시스템”이라는 모호한 단어 대신 “개발자 지시사항”이라는 보다 분명한 이름을 사용해,
최종 응답 형성에 있어 개발자의 의도가 사용자 요청보다 먼저 적용된다는 점을 강조한 것입니다.
2. “developer” 역할과 “user” 역할의 차이
- developer:
- 이전의 “system” 역할과 동일하게, 모델이 “가장 먼저” 따라야 할 규칙을 서술합니다.
- Chain of Command가 적용되므로, user 메시지와 충돌이 생기면 developer의 지침이 우선합니다.
- 예: “당신은 친절하고 정중한 어조로 답변해야 합니다.”, “법적으로 문제가 될 수 있는 답변을 피하세요.” 등
- user:
- 기존과 동일하게, 사용자가 실제로 모델에게 묻거나 요청하는 내용입니다.
- 일반적으로 가장 많이 바뀌고, 가장 많이 추가되는 메시지 타입입니다.
- 예: “프로그래밍에 관한 하이쿠를 써줄래요?”, “이전에 말한 컨테이너 기술을 자세히 설명해 주세요.” 등
3. “assistant” 역할과의 관계
- assistant:
- 여전히 모델(챗봇)이 생성해내는 실제 답변(출력)입니다.
- 대화 기록에서 과거의 assistant 메시지를 “예시”로 제시하면, 모델이 “이전에 이렇게 답했다”는 맥락을 참고해 일관성 있는 답변을 생성할 수 있습니다.
- “developer”나 “user”가 제시한 지침 및 정보들을 종합하여 최종적으로 만들어낸 답이 assistant 역할로 기록됩니다.
4. 새 구조 요약: 우선순위(Chain of Command)
- developer (구 system)
- 전체 대화의 최상위 규칙(행동 지침)
- 개발자가 모델에게 절대적인 원칙이나 정책을 부여
- user
- 실제 사용자(또는 예시로 제시된 사용자 메시지)가 요청하는 내용
- developer 지침과 충돌이 없으면 최대한 이 요구사항을 반영
- assistant
- 모델이 최종적으로 생성하는 대답
- developer와 user의 지침을 모두 고려하되, 우선순위가 높은 developer 지침을 어기지는 않음
5. 알아두면 좋은 점
- 기능적 차이는 거의 없다
- “developer” 역할 자체가 새로 추가된 별도의 로직이기보다는,
기존 “system” 역할을 좀 더 직관적인 이름으로 바꾼 것에 가깝습니다. - 따라서, 이전에 “system” 메시지를 활용하던 방식 그대로 “developer” 메시지에 대입하면 됩니다.
- “developer” 역할 자체가 새로 추가된 별도의 로직이기보다는,
- 기존 코드 호환성
- 아직까지도 “system” 역할이 동작하지 않는 것은 아닙니다.
- 다만 공식 문서 상에서 명칭이 바뀐 만큼, 향후 새로운 샘플 코드나 예시에서는 “developer”를 사용하는 모습을 많이 보게 될 것입니다.
- 개발자 지침 vs. 사용자 의도
- ChatGPT가 답변을 구성할 때, 항상 “개발자(=system) 지침 > 사용자 입력”이라는 계층적 구조를 거칩니다.
- 따라서 모델에게 준수시키고 싶은 절대적 가이드라인(회사 정책, 윤리 기준 등)은 반드시 developer(구 system) 역할에 작성해 두는 것이 안전합니다.
마무리
정리하면, developer는 기존 system을 대체하는 역할명으로, OpenAI가 “개발자 지침이 사용자 메시지보다 우선한다”는 체계를 좀 더 명시적으로 보여주기 위해 새로 도입(또는 “이름 변경”)한 것입니다. 실제 기능적 차이는 크지 않고, 문서에서 “Previously called the system prompt”라고 명시하고 있을 정도로 system → developer로 명칭만 달라졌다고 이해하시면 됩니다.
관련 포스트
https://glasslego.tistory.com/43
OpenAI API의 Role 개념 정리 및 사용 예시
OpenAI API를 사용할 때 가장 중요한 개념 중 하나는 role입니다. OpenAI의 Chat API에서는 대화의 흐름을 정의하기 위해 role을 활용합니다. 이 글에서는 role의 개념과 언제, 어떻게 사용해야 하는지를 예
glasslego.tistory.com
'IT 활용 기술 > ai 활용' 카테고리의 다른 글
AI 에이전트: 자율적 인공지능의 과거와 현재, 그리고 미래 활용 사례 (0) | 2025.03.04 |
---|---|
Copy.ai vs Writesonic: AI 콘텐츠 생성 툴 비교와 요금제 분석 (0) | 2025.03.03 |
유투브 동영상 생성 AI 툴 (1) | 2025.02.28 |
유튜브 동영상 요약 AI 툴 (0) | 2025.02.28 |
분야별 특화 AI 도구 목록 (0) | 2025.02.27 |