텍스트-투-SQL(Text-to-SQL)에 사용되는 대규모 언어 모델(LLMs)은 구문 오류, 유효하지 않은 식별자 참조, 또는 SQL 스코핑 및 타입 규칙 위반이 포함된 쿼리를 자주 생성합니다. 이러한 오류를 복구하는 것은 프로그램의 정확성 문제이지만, 기존 접근 방식들은 실행 피드백(Execution Feedback, EF)에 의존하며, 이는 증상 수준의 방언 특정 오류 메시지를 통해 LLM에게 근본 원인에 대해 추측하도록 강요합니다. 우리는 이 패러다임에서 '중재 역설(Arbitration Paradox)'을 식별했습니다: 시스템은 복구를 제안하는 데 필요한 모델과 그 복구가 요구되는 속성을 충족하는지 최종 판단을 내리는 데 필요한 모델 모두가 검증되지 않은 상태에 의존한다는 것입니다. 우리는 텍스트-투-SQL 복구 문제를 속성 기반 프로그램 복구로 재정립함으로써 이 역설을 해결합니다.
우리의 프레임워크인 Post-SQLFix는 SQL을 방언 인식 정규 쿼리 구조(Canonical Query Structure, CQS)로 표준화하고, 세 가지 계층의 속성 레이어(구문적(Syntactic), 문맥 자유 구조적(Context-Free Structural), 문맥 민감 의미론적(Context-Sensitive Semantic))를 가진 계층적 정적 분석기를 통해 이를 검증합니다. 이 분석기는 LLM의 복구 제안을 안내하기 위해 정확하고 스키마 인식적인 위반 진단 정보를 생성합니다. 이후 '적용 전 검증 시간 모니터(Verify-Before-Apply Temporal Monitor)'는 위반 횟수를 줄이고, 해결된 위반 사항을 재도입하지 않으며, 연산자 계약(operator contracts)을 만족하는 복구만을 수락합니다. 이러한 런타임 불변성(runtime invariants)은 선언된 규칙 계열과 연산자 계약에 의해 경계 지어지며, 유한한 재시도 예산은 정지를 보장합니다.
3개 확립된 벤치마크(BIRD, Spider, Mini-Dev)에서 3,000개가 넘는 평가 사례, 3가지 SQL 방언(SQLite, MySQL, PostgreSQL), 그리고 6가지 모델 구성을 아우르는 테스트 결과, Post-SQLFix는 EF가 복구하지 못한 실행 오류 중 77.8%를 해결하는 동시에, 절반 이하의 복구 반복 횟수와 30% 적은 토큰을 사용했습니다. 결정적으로, 모니터 하에서 수락된 전환(transition)들은 평가에서 정적으로 감지 가능한 구조적 퇴행을 유발하지 않았으며, 이는 검증된 복구 충실도를 최대 +11.6 퍼센트포인트의 절대 정확도 개선으로 전환시켰습니다.