12.3.3 다중 정답(Multiple Valid Queries) 허용 문제와 실행 기반 검증의 이점

12.3.3 다중 정답(Multiple Valid Queries) 허용 문제와 실행 기반 검증의 이점

소프트웨어 시스템 공학의 생태계에서 볼 때, 동일한 로직적 결론 공간(State Space)에 도달하기 위한 소스 코드의 경로(Path)가 무한히 여러 개 존재할 수 있다는 사실은 언어의 유연성을 증명하는 위대한 축복이다. 그러나 역설적으로, 그 생성된 코드를 정밀하게 채점(Evaluation)해야 하는 오라클 아키텍트의 입장에서는 이 현상이 오라클의 방어망을 붕괴시키는 가장 끔찍한 알고리즘적 악몽으로 작용한다.

특히 튜링 완전성에 필적하는 관계형 데이터베이스의 표준 제어 언어인 SQL은, 이러한 ‘다중 정답(Multiple Valid Queries)’ 특성이 인간의 상상을 초월할 정도로 극도로 다양하게 발현되는 특이점을 갖는다.

1. 정적 오라클의 다중 정답 처리 한계와 유지보수 지옥

과거 텍스트 유사도 매칭(Exact Match)이나 단순한 추상 구문 트리(AST) 구조 비교만으로 채점을 시도했던 1세대 정적(Static) 오라클들은, 이 폭발적인 다중 정답 문제를 하드코딩으로 무마하기 위해 골든 데이터셋 자체를 복잡하게 부풀려야만 했다.

예를 들어, “회사에서 가장 나이가 어린 직원의 이름을 찾아라“라는 아주 단순한 단일 질문에 대해서조차, 데이터셋을 구축하는 DBA들은 다음과 같이 발생 가능한 모든 구문적 경우의 수를 골든 데이터셋의 배열(Array) 덩어리에 강제로 때려 넣는 중노동을 반복해야 했다.

  • 배열 내 정답 예시 1 (정렬 및 리밋): SELECT Name FROM Users ORDER BY Age ASC LIMIT 1;
  • 배열 내 정답 예시 2 (집계 서브쿼리 활용): SELECT Name FROM Users WHERE Age = (SELECT MIN(Age) FROM Users);
  • 배열 내 정답 예시 3 (윈도우 함수 활용): WITH Ranked AS (SELECT Name, RANK() OVER(ORDER BY Age ASC) as rnk FROM Users) SELECT Name FROM Ranked WHERE rnk=1;

이 패러다임의 치명적인 문제점은, AI 모델이 논리적으로 아무런 하자가 없는 완벽한 정답 코드를 짜냈음에도 불구하고, 그 코드가 미처 DBA가 예상하지 못하여 등록해두지 않은 새로운 창의적 구조(예: LEFT OUTER JOIN을 비틀어 사용하는 방식)를 가졌다면, 정적 비교 검사기(Oracle)는 그 즉시 이 위대한 AI 모델을 0점 처리(False Negative) 해버린다는 점이다. 결국 시스템의 채점 정확도를 유지하기 위해 인간이 골든 데이터셋의 모든 정답 케이스를 갱신해 주어야 하는, 유지보수 비용이 무한대(Infinity)로 발산하는 기술 부채의 지옥이 열리게 된다.

2. 동적 실행 기반 오라클이 가져다주는 인프라적 해방(Liberation)

하지만 격리된 샌드박스와 런타임 엔진 위에서 가동되는 **‘실행 결과 비교(Execution Result Comparison) 체계’**는 이 모든 고통스러운 데이터셋 구축의 제약조건(Constraints)들을 단 한 번의 프레임워크 전환으로 완전히 파괴해 버린다.

실행 기반 오라클의 우주관에서는 골든 데이터셋의 JSON 인스턴스 안에, 그 질문을 대표하는 가장 최적화된 **단 1개의 모범 정답 쿼리 마스터본(golden_sql)**만 기입해 두면 족하다.
AI 에이전트가 인간 엔지니어는 상상조차 하지 못한 기상천외한 조인(JOIN) 역전 기법이나 서브쿼리 병합 구조를 사용하여 완전히 낯선 텍스트 문자열 라인들을 생성해 낸다 할지라도, 오라클 시스템은 전혀 당황하지 않는다. 오라클의 실행기(Executor)는 그 낯선 코드 필연의 생김새나 표면적 텐서를 파싱하여 쳐다보지도 않고, 그대로 라이브 런타임 샌드박스의 엔진 룸으로 무자비하게 밀어 넣어 컴파일 및 실행을 격발시켜 버리기 때문이다.

DB 엔진이 그 복잡계 코드를 삼킨 뒤 수백만 개의 데이터를 뒤집어엎고 최종적으로 인출해 낸 결과 텐서 덩어리가 ['Alice']라는 정답 데이터 시퀀스의 물리적 해시(Hash)와 1비트라도 틀리지 않고 똑같기만 하다면, 판별기(Comparator)는 그 예측 쿼리가 정답지 사전에 등록되어 있는지의 얄팍한 여부를 일체 따지지 않고 즉시 EX(Execution Accuracy) = 1 (True) 이라는 통쾌하고 절대적인 승리의 점수를 AI에게 하달한다.

결국 실행 기반의 검증 아키텍처를 도입한다는 것은, 단순한 채점 방식의 변경이 아니다. 그것은 MLOps 데이터 엔지니어들을 비결정적 코드 패터닝이라는 수작업 유지보수 노동 지옥에서 완전하게 해방(Liberation)시키고, 오직 **‘의미론적 데이터의 진실(Data Truth)’**이라는 단 하나의 꺾이지 않는 나침반으로만 AI의 수학적 지능을 측정할 수 있게 해주는 궁극의 평가 인프라 구축 완성을 의미한다.