REprompt: Prompt Generation for Intelligent Software Development Guided by Requirements Engineering
이 논문은 요구사항 공학 원칙을 활용하여 시스템 및 사용자 프롬프트를 자동으로 생성하고 최적화함으로써, 실제적인 소프트웨어 개발 시나리오에서 대규모 언어 모델 기반 코딩 에이전트가 생성하는 산출물의 품질을 향상시키는 멀티 에이전트 프레임워크인 REprompt을 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 집을 짓고 싶다고 상상해 보세요. 하지만 건축가와 대화하는 대신, 매우 똑똑하지만 약간 혼란스러워하는 로봇 건설업자에게 모호한 지시를 소리 높여 외치고 있습니다. 당신이 "멋진 집을 지어줘"라고 말하면, 로봇은 성을 지을 수도, 우주선을 지을 수도, 혹은 지붕이 없는 집을 지을 수도 있습니다. 왜냐하면 로봇은 당신에게 "멋지다"는 말이 정확히 무엇을 의미하는지 모르기 때문입니다.
이것이 오늘날 LLM(대규모 언어 모델)을 사용하여 소프트웨어를 작성할 때 발생하는 문제입니다. LLM은 로봇 건설업자이며, "프롬프트"(당신의 지시)는 종종 너무 모호하여 엉망이 되거나 고장 난 코드로 이어집니다.
이 논문은 REprompt라는 새로운 도구를 소개합니다. REprompt를 마법 주문이 아니라, 당신과 로봇 건설업자 사이에 개입하는 **전문 요구사항 엔지니어(Professional Requirements Engineer)**라고 생각하십시오.
핵심 아이디어: 프롬프트를 설계도처럼 취급하기
소프트웨어를 구축하는 세계에는 **요구사항 공학(Requirements Engineering)**이라는 학문이 있습니다. 이는 엔지니어가 고객과 앉아 적절한 질문을 던지고, 정확히 무엇이 필요한지 파악하며, 설계도가 타당한지 확인한 후 명확한 설계도를 작성하는 과정입니다.
저자들은 우리가 AI와 대화할 때 이 중요한 단계를 건너뛰고 있다는 점을 깨달았습니다. 우리는 그저 빠른 명령만 내릴 뿐입니다. REprompt는 이 과정을 구조화된 엔지니어링 프로세스로 전환함으로써 이 문제를 해결합니다.
REprompt의 작동 방식: 4단계 팀
하나의 AI가 당신이 원하는 것을 추측하게 하는 대신, REprompt는 인간 엔지니어링 팀처럼 행동하는 네 명의 특화된 AI "에이전트"(캐릭터) 팀을 사용합니다. 이들은 실제 집을 짓는 과정처럼 네 단계를 거칩니다.
인터뷰어와 인터뷰이 (도출 - Elicitation):
- 비유: 탐정(Interviewer)이 목격자(Interviewee)와 대화하는 상황을 상상해 보세요.
- 과정: 당신이 모호한 아이디어(예: "게임을 하나 만들고 싶어")를 제공하면, 인터뷰어 AI가 인터뷰이 AI에게 일련의 스마트한 질문을 던집니다. "규칙은 무엇인가요? 플레이어는 누구인가요? 게임에서 패배하면 어떻게 되나요?" 인터뷰이는 구조화된 방식으로 답변합니다. 이 과정을 통해 당신의 모호한 바람은 상세한 요구사항 목록으로 변환됩니다.
분석가 (분석 - Analysis):
- 비유: 탐정의 노트를 보고 대략적인 스케치를 그리는 건축가입니다.
- 과정: 인터뷰어 AI는 모든 답변을 취합하여 초안 "소프트웨어 요구사항 명세서(SRS)"를 작성합니다. 이는 무질서한 소망 목록을 공식적인 할 일 목록으로 바꾸는 것과 같습니다.
명세 작성자 (명세 - Specification):
- 비유: 건축가의 스케치를 건설 팀을 위한 엄격하고 단계적인 지침 매뉴얼로 바꾸는 번역가입니다.
- 과정: 이 에이전트(CoTer)는 초안을 받아 "사고의 사슬(Chain of Thought)"로 변환합니다.
- 만약 당신이 소프트웨어(예: 게임)를 요청한다면, 작업을 엄격한 프로그래밍 단계로 나눕니다 (예: "첫째, 보드를 만든다. 둘째, 조각들을 추가한다.").
- 만약 AI 자신의 성격(시스템 프롬프트)을 개선하려는 것이라면, 지침을 명확한 섹션으로 구성합니다: "당신은 누구인가", "당신이 아는 것", "당신이 행동하는 방식".
비평가 (검증 - Validation):
- 비유: 건설이 시작되기 전 설계도를 점검하는 건물 검사관입니다.
- 과정: 이 에이전트는 최종 지침 매뉴얼을 검토합니다. "빠진 것이 있는가? 혼란스러운 부분이 있는가? 서로 모순되는 내용이 있는가?" 만약 답이 "예"라면, 수정하도록 명세 작성자에게 다시 보냅니다.
테스트 결과 (실험 내용)
연구진은 단순히 이론만 제시한 것이 아니라, 두 가지 주요 방식으로 이를 구축하고 테스트했습니다.
1. AI의 "직무 기술서" (시스템 프롬프트) 개선
그들은 MetaGPT(AI 작업자들이 소프트웨어를 구축하는 팀과 같은 시스템)라는 유명한 멀티 에이전트 시스템을 사용했습니다. 그들은 팀 리더와 건축가들의 원래 "직무 기술서"(프롬프트)를 가져와 REprompt를 통과시켰습니다.
- 결과: AI 팀은 훨씬 더 나은 문서(프로젝트 계획 및 설계 청사진 등)를 생성했습니다. 인간이 이 계획들로부터 구축된 실제 소프트웨어를 테스트했을 때, 사용자들은 더 만족스러워했고, 사용하기 더 쉽다고 느꼈으며, 소프트웨어의 품질이 더 높다고 평가했습니다. 이는 건설 팀에게 더 나은 설계도를 주어 집의 지붕이 새지 않도록 만든 것과 같습니다.
2. 사용자의 지시 (사용자 프롬프트) 개선
그들은 사람들이 웹 앱을 생성하기 위해 간단한 요청을 입력하는 YouWare라는 플랫폼에서 REprompt를 테스트했습니다.
- 결과: 사용자가 "스네이크 게임을 원해" 또는 "계산기를 원해"와 같이 단순한 내용을 입력했을 때, REprompt는 먼저 요청 내용을 구체화하기 위해 "인터뷰"를 수행한 다음, 개선된 지침을 AI에게 전달했습니다. 그 결과 생성된 게임과 도구들은 단순한 요청을 직접 입력했을 때보다 훨씬 더 훌륭하고, 재미있으며, 매끄럽게 작동했습니다.
요약
이 논문은 REprompt가 효과적인 이유가 AI가 전문 엔지니어처럼 생각하도록 강제하기 때문이라고 주장합니다. 코드를 작성하기 위해 서두르는 대신, 먼저 질문을 던지고, 계획을 정리하고, 오류를 점검합니다.
- REprompt가 없다면: 당신이 "집을 지어줘"라고 말하면, 로봇은 벽돌 더미를 만듭니다.
- REprompt가 있다면: 로봇이 "크기는 얼마나 되나요? 방은 몇 개인가요? 어떤 스타일인가요?"라고 묻습니다. 그리고 계획을 작성하고, 계획을 점검한 뒤, 그 후에야 당신이 실제로 원했던 모습과 일치하는 집을 짓습니다.
이 연구는 인간의 소프트웨어 공학(요구사항 공학) 방법론을 차용함으로써, 우리가 AI 에이전트가 우리를 위해 소프트웨어를 이해하고 구축하는 능력을 훨씬 더 향상시킬 수 있음을 증명합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.