12.2 오라클 시스템 아키텍처 설계 (Oracle System Architecture Design)
앞선 12.1절에서 증명한 ‘실행 결과 비교(Execution Result Comparison)’ 메커니즘의 철학적 무결성을 실제 엔터프라이즈 MLOps CI/CD 파이프라인 상에 견고한 코드로 구현하여 동작시키기 위해서는, 단순히 파이썬 psycopg2 커넥터를 연결하여 예측된 SELECT 쿼리와 정답 쿼리를 대충 두 번 던져보고 응답 텍스트를 문자열로 비교해 보는 식의 1차원적이고 순진한 스크립트 수준에서 철저히 벗어나야만 한다.
우리는 앞서 진단했던 ‘단순 텍스트 매칭의 맹점’, ‘결과 레코드 정렬(Order)의 비결정성’, ‘부동소수점 데이터 구조의 불일치’, 그리고 가장 치명적인 ’부주의한 데이터베이스 초기 상태 오염(State Corruption)’이라는 파괴적인 런타임 리스크들을 인프라 레벨에서 완벽히 억제하고 통제할 수 있는 **‘강력한 논리적 격리(Logical Isolation)와 다상(Multi-phase) 파이프라인 아키텍처’**를 시스템 밑바닥에서부터 차갑고 견고하게 조형(Architecting)해야 한다.
본 12.2절에서는 오직 Text-to-SQL(NL2SQL) 에이전트가 뱉어낸 쿼리 결과만을 초당 수백 건씩 병렬(Parallel)로 채점하고 검증하기 위해 특화되어 설계된, 전용 하이브리드 오라클 프레임워크의 마스터 청사진(Master Blueprint)을 제시한다.
이 거대한 오라클 아키텍처는 에러 전파를 막기 위해 하나의 스크립트로 짜인 통짜(Monolithic) 로직이 아니라, 다음과 같이 서로 책임을 엄격하게 분리(Separation of Concerns)한 세 개의 중추적인 차가운 마이크로 컴포넌트(Micro-components)로 구성되어 유기적인 단방향 파이프라인을 형성한다.
1. 샌드박스 실행 레이어 (Sandbox Execution Layer)
이 계층은 비대칭적으로 언제 메모리를 갉아먹거나 무한 루프 폭주를 일으킬지 모르는 위험한 타겟 예측 쿼리(Prediction SQL)와 결백한 정답 쿼리(Golden SQL)를 동시에 안전하게 받아내는 1차 방어선이다.
두 쿼리는 외부의 메인 프로덕션 DB와 완벽히 격리(Isolation)되고 동일한 상태(State)로 스냅샷(Snapshot) 복제된, 오직 채점만을 위해 일회용으로 띄워진 파괴 가능한 읽기 전용(Read-only) 데이터베이스 컨테이너 내부에 주입(Inject)된다. 이 레이어의 유일한 목적은 그 파괴적인 쿼리 폭발의 런타임 결과물인 2차원 데이터 레코드 행렬(Result Set) 자체만을 깨끗하게 로컬 메모리로 안전하게 인출(Fetch)해 내는 순수 인프라 제어(Infrastructure Control) 역할을 수행하는 것이다.
2. 텐서 정규화 레이어 (Tensor Normalization Layer)
샌드박스에서 막 인출되어 올라온 거친 2차원 원시(Raw) 결과 텐서들 사이에는 필연적으로 관계형 데이터베이스 특유의 잡음(Noise)과 비결정적인 요소들이 묻어있다.
이 계층은 두 개의 텐서에서 ORDER BY 절 부재로 인한 레코드 순서 뒤섞임, DATETIME과 TIMESTAMP 같은 날짜 포맷의 상이함, 그리고 FLOAT 연산에서 발생하는 미세한 부동소수점 반올림 오차(Floating-point precision errors) 등을, 사전에 정의된 차가운 수학적 정규식 규칙(Normalization Rules)에 따라 강제로 깎아맞추고 동일한 차원의 벡터 규격으로 통일시키는 필수 전처리(Pre-processing) 계층이다.
3. 결정론적 판별 블레이드 레이어 (Deterministic Comparator Blade Layer)
극도로 깨끗하게 불순물이 세척되고 정규화된 두 데이터 텐서 표면의 교집합과 차집합을, 바이트(Byte) 및 일관된 해시(Hash) 배열 단위로 겹쳐서 기계적으로 비교 연산하는 심판관 계층이다.
이 레이어는 최종적으로 텐서 간에 단 1비트의 어긋남도 없는지 수치적으로 확인한 후, 오라클의 최고 판결인 True(1, Pass) 또는 False(0, Fail)의 자비 없는 이진 채점(Binary Verdict) 결과를 CI 서버에 승인한다. 만약 오답으로 판명 날 경우, 단지 Fail만 뱉는 것이 아니라 파이썬 dict를 순회하며 정확히 어느 행(Row)의 어떤 컬럼(Column) 값이 예상 텐서와 어떻게 빗나갔는지 그 구체적인 차잇값을 정밀한 에러 메타데이터(Error Log Tracker) JSON으로 생성하여, AI 피드백 루프로 되던지는 영리한 헤드(Head) 계층의 역할까지 동시에 수행한다.
이어지는 하위 절들에서는 이 3단계 오라클 파이프라인의 전체적인 신호 흐름(Data Flow)을 거시적으로 조망해 보고, 특히 MLOps 서버 클러스터에서 수만 개의 쿼리를 병렬로 채점하는 거대한 채점장(Testing DB)을 멱등성(Idempotency)을 잃지 않고 안전하게 구축하기 위해 필수 불가결한 **‘도커(Docker) 기반의 샌드박스 프로비저닝 전략’**과 **‘프로덕션 스키마와의 DDL 형상 동기화(Schema Synchronization) 기법’**에 대하여 상세하고 기계적으로 분해하여 서술할 것이다.