10.2.4 구문적 환상을 넘어선 실행의 진실: 실행 기반(Execution-Based) 데이터셋과 SQL/코드 생성 오라클

10.2.4 구문적 환상을 넘어선 실행의 진실: 실행 기반(Execution-Based) 데이터셋과 SQL/코드 생성 오라클

엔터프라이즈 환경에서 AI가 프로그래밍 소스 코드(Python, Java)나 복잡한 관계형 데이터베이스 질의어(SQL 쿼리 스크립트)를 자율적으로 생성해 내는 생성형 태스크(Generative Task)를 평가할 때, 기존의 자연어 처리(NLP) 도메인에서 남용되던 ‘단순한 문자열 정답 매칭(Exact String Matching)이나 텍스트 유사도 검증’ 시도는 필연적이고 처참한 실패(Catastrophic Failure)로 귀결될 수밖에 없다.

간단한 예로, SELECT name FROM users WHERE age > 20SELECT name FROM users WHERE 20 < age는 문자열의 형태나 토큰의 배열 순서가 완전히 이질적인 텍스트 구조를 가지지만, 프로덕션 RDBMS의 쿼리 옵티마이저(Relational Query Optimizer)를 거쳐 데이터베이스 엔진에서 파싱될 때는 수학적으로 정확히 동일한 레코드 세트를 반환하는 완벽한 ‘의미론적 동치(Semantic Equivalence)’ 관계다. 파이썬 알고리즘 도메인에서도 마찬가지다. 버블 정렬(Bubble Sort) 코드 스니펫과 퀵 정렬(Quick Sort) 코드 스니펫은 AST(Abstract Syntax Tree) 형태와 성능 복잡도는 극명하게 다르지만, 동일한 난수 배열 데이터를 주입했을 때 뱉어내는 최종 아웃풋 출력 결과만큼은 100% 동일한 정답이다.

이처럼 풀이 과정의 해답이 무한에 가까운 다형성(Polymorphism)을 띠는 극강의 코드 생성 도메인에서는, 텍스트의 표면적 형태를 멍청하게 채점하려는 얕은 시도를 완전히 포기해야만 한다. 대신 ’AI가 토해낸 낯선 코드를 실제로 안전한 샌드박스 환경(Docker/Wasm)에 주입하여 라이브 실행(Live Execution)시킨 뒤, 그 코드 런타임이 토해낸 최종 물리적 결괏값(Output Array Tensor, DB Record Set)을 사전에 정의된 골든 정답지와 차갑게 비교’하는 동적 런타임 오라클 시스템(Dynamic Runtime Oracle System) 아키텍처가 필수 불가결하다.

1. 다차원 데이터셋 스키마 설계: 상태 격리 환경(Isolated Environment)과 단위 테스트(Unit Test)의 명세화

이러한 철학 위에서 설계된 ’실행 기반 골든 데이터셋’의 단일 레코드(Row)는, 단순히 문서의 질문과 텍스트 정답만 초라하게 담고 있어서는 안 된다. 그 안에는 AI 코드가 실제로 런타임에 뒹굴며 실행될 ’완벽하게 통제되고 격리된 가상 환경(Isolated Environment)’의 스냅샷 상태값과, 생성된 코드를 찔러보고 괴롭힐 치밀한 ‘유닛 테스트(Unit Test) 어설션(Assertion)’ 케이스들의 쌍을 다차원적으로 동시에 품고 있어야만 하는 거대한 컨테이너 객체다.

{
  "test_id": "NL2SQL-FINANCE-099",
  "category": "Data_Analytics_Aggregation",
  "input_context": "지난달 카드 결제 테이블에서 100만 원 이상 구매한 VIP 고객의 이메일 무리 리스트를 추출해줘.",
  "golden_truth": {
    "validation_type": "execution_match_agnostic",
    "environment": {
      "db_engine": "PostgreSQL 14",
      "schema_ddl_file": "schema/ecommerce_dump_v2.sql",
      "mock_data_seed": 42
    },
    "test_fixtures": [
      {
        "query_timeout_ms": 5000,
        "expected_execution_result_set": [
          {"email": "vip_heavy1@company.com"},
          {"email": "vip_heavy2@company.com"}
        ]
      }
    ]
  }
}

위의 골든 데이터셋 템플릿 JSON 스키마가 오라클 엔진에게 지시하는 냉정한 철학은 단호하고 명확하다. “AI가 내부 구조적으로 어떤 기상천외한 서브 쿼리(Sub-query)나 기괴한 조인(JOIN) 문법을 짜든 문체에는 결코 상관하지 않겠다. 단지 그 놈이 짠 쿼리 코드를 ecommerce_dump_v2 DDL 스키마가 엄격히 적용된 일회용 격리 테스트 DB 메모리에 던져 넣었을 때, 벤치마크 반환되는 레코드 세트의 최종 모양이 expected_execution_result_set에 통제된 저 두 줄의 이메일 배열과 (프로그래밍 정렬 순서와 관계없이) 정확히 Hashing 일치하는지만을 잔혹하게 평가하겠다.”

2. 런타임 오라클 파이프라인 매핑: 샌드박스 프로비저닝 러너(Runner)와 동적 결과 비교기

실행 기반 데이터셋을 온전히 소화해 내기 위한 MLOps 오라클 파이프라인은 전체 AI 인프라 아키텍처 구축 컴포넌트 중에서 가장 무겁고 정교한 클라우드 엔지니어링 리소스를 혹독하게 요구한다.

  1. [샌드박스 프로비저닝 (Ephemeral Sandbox Provisioning)]: 앞선 9장에서 상세히 다루어 살펴본 일회용 Docker 컨테이너나 WebAssembly(Wasm) 마이크로 런타임이 격렬하게 활약할 차례다. 오라클 러너(Runner) 코어는 코드를 실평가하기 단 1초 전, 골든 데이터셋 JSON에 명시된 environment 셋업 명세(예: SQLite 인메모리 DB를 순간적으로 생성하고 수만 건의 더미 테이블 레코드를 로딩하는 작업)를 0.1초의 지연 없이 완벽하게 구축(Setup)하고 프로비저닝 완료해야 한다.
  2. [방검복을 입은 안전한 통제 실행 (Safe & Quarantined Execution)]: AI가 제멋대로 생성한 낯선 해킹 가능 코드를 샌드박스 내부의 깊숙한 곳에서 실행시킨다. 만약 이 어설픈 코드가 재귀적 무한 루프(Infinite Loop)에 빠진다면 query_timeout_ms 오라클 룰이 즉각 작동하여 프로세스를 Kill 시키고 실패(Fail) 처리한다. 혹은 존재하지도 않는 가상의 환각 테이블을 SELECT 쿼리하다가 발생하는 SQL 컴파일/런타임 에러(SQLException)를 파이프라인이 낚아채어 자비 없이 0점 오답(Syntax Error)으로 즉시 분류해 버린다.
  3. [의미론적 결과물의 동치성 알고리즘 검사 (Semantic Equivalence Check)]: 치명적인 런타임 에러나 메모리 누수 없이 코드 실행이 무사히 끝났다면, 오라클 코어는 샌드박스 런타임이 최종적으로 뱉어낸 실제 결괏값 텐서 배열(Actual Runtime Result)과 데이터셋에 박힌 불변의 진리 expected_execution_result_set을 메모리 상에서 비교 적충한다. 이때 단순히 문자열로 비교하는 것이 아니라, 컬럼의 정렬 순서(Order)나 JSON 키(Key) 값의 순차 배열이 조금 다르더라도 해시 집합(Hash Set) 요소의 수학적 교집합이 100% 완벽히 일치하면 훌륭한 정답으로 깔끔하게 인정하고 Pass를 선언하는 ’유니버설 2D 데이터 비교 로직 체커(Universal Data Matrix Comparator)’를 알고리즘적으로 무겁게 적용해야만 한다.

결론적으로, 이 거대하고 무거운 **‘실행 기반 골든 데이터셋과 샌드박스 파이프라인 인프라스트럭처의 보유 규모’**야말로, 수많은 글로벌 B2B 코드/SQL 생성 AI SaaS 엔터프라이즈 스타트업들이 실전 시장에서 보유할 수 있는 가장 압도적이고 베낄 수 없는 강력한 기술적 해자(Technical Moat)다.
수동 검증이 불가능한 10만 개 이상의 완벽히 실행 가능한 (자연어 지시문 - 격리 DB 샌드박스 - 단위테스트 정답) 트리플 쌍을 구축해 낸 회사는, 구글이나 오픈AI에서 내일 당장 그 어떤 새로운 오픈소스 몬스터 모델이 튀어나오더라도 단 하루 만에 자사의 비즈니스 도메인에 맞춰 가중치를 파인튜닝(Fine-tuning)하고 회귀 오류(Regression Bug) 0%의 수학적 알고리즘 무결성을 당당히 증명해 낸 뒤, 수억 명의 프로덕션 망에 즉시 배포할 수 있는 그야말로 신에 가까운 개발 속도의 초격차(Super Gap) 역량을 거머쥐게 되는 것이다.