LLM에게 실행 가능한 성공 기준을 제공하는 것은 단순한 PLAN.md 기반의 코드 생성 방식을 넘어, LLM이 스스로 문제를 해결하고 코드를 개선하는 데 필수적입니다. 이러한 기준이 없다면, LLM은 여전히 개발자의 지속적인 피드백 없이는 한계에 부딪히게 됩니다.
실행 가능한 성공 기준의 필요성
- 자체 복구 및 디버깅: LLM이 도입할 수 있는 예측 불가능한 버그를 스스로 식별하고 수정할 기회를 제공합니다.
- 개발자 병목 현상 해소: 개발자가 LLM의 모든 피드백을 처리하는 병목이 되는 것을 방지합니다.
- 고도화된 워크플로우: 과거의 단순한 커서(Cursor) 및 코파일럿(Copilot) 방식에서 벗어나, 에이전트 기반의 자율적인 코드 생성으로 진화합니다.
PLAN.md 내 성공 기준 섹션 활용저자는 PLAN.md에 ‘Success Criteria’ 섹션을 두어 LLM에게 명확한 목표를 제시합니다.
- 테스트 생성 및 실행: 특정 테스트 파일(예: test/controllers/goods_controller_test.rb)을 성공적으로 생성하고 실행하도록 지시합니다.
- 관련 테스트 조정: 기존 테스트 파일(예: test/controllers/foosels_controller_test.rb)을 성공적으로 조정하도록 요구합니다.
성공 기준의 구체적인 예시
- “계획에 따라 모든 셸 스크립트 분기가 오류 없이 실행될 때까지 구현합니다.”* “오류를 수정하고 test/models/barber.rb의 테스트가 성공적으로 실행되는지 확인합니다. 파일이 매우 크므로 새로 생성된 회귀 테스트 라인만 실행해도 괜찮습니다.”* “API 통합 시, 임시 스크립트를 생성하여 API 호출을 수행하고, cURL을 통해 실제 요청으로 API를 호출하며 다양한 API 호출 시퀀스가 성공하는지 확인합니다.”### LLM의 테스트 실행 유도저자는 프롬프트 마지막에 “언급된 테스트를 성공적으로 실행해야 합니다. 그렇지 않으면 작업이 승인될 수 없습니다!!!”와 같은 문구를 추가하여 LLM이 테스트 실행에 더 많은 주의를 기울이도록 유도합니다. LLM이 광범위한 PLAN.md에서 테스트 실행을 소홀히 하는 경향이 있더라도, PLAN.md에 명확히 정의된 테스트 범위는 LLM이 구현을 완료하고 관련 테스트를 생성, 조정, 실행하도록 다시 지시할 수 있는 기반이 됩니다.