11.2 아키텍처 설계: 이원화된 오라클 시스템 (Dual-Oracle System)
AI 챗봇 설계에 있어서 가장 흔한 안티 패턴(Anti-Pattern)은 언어 모델에게 시스템의 모든 제어권을 일임하는 ’단일 뇌(Single-brain) 아키텍처’다. 이 구조에서는 모델이 사용자의 의도를 분석하는 동시에 데이터의 연산까지 수행하려 들며 치명적인 환각(Hallucination)의 늪에 빠지게 된다.
이를 극복하기 위해, 결정론적 무결성이 요구되는 엔터프라이즈 급 챗봇은 필연적으로 ‘이원화된 오라클 시스템(Dual-Oracle System)’ 구조를 채택해야 한다. 이 구조는 AI의 뛰어난 ’자연어 추론 능력’과 전통적 소프트웨어의 ’결정론적 계산 능력’을 완전히 분리하고, 그 교차점을 통제하는 강력한 검증망을 세우는 데 목적이 있다.
1. 아키텍처의 논리적 3분할
이원화된 아키텍처는 시스템을 세 가지 상호 독립적인 티어(Tier)로 강제 분리한다.
- 추론 엔진 (Reasoning Engine - LLM): 사용자의 모호하고 복잡한 자연어 쿼리(“내 연봉 5천인데, 대출 얼마까지 돼?”)를 파싱(Parsing)하여, 백엔드가 이해할 수 있는 결정론적 데이터 구조(예:
{"intent": "LOAN_LIMIT", "annual_income": 50000000})로 추출하는 역할만 수행한다. 이 엔진에게는 어떠한 수학적 연산 권한도 부여하지 않는다. - 계산 엔진 (Calculation Engine - Legacy Rule Engine): AI 시스템 외부(Out-of-band)에 위치하는 사내 레거시 비즈니스 서버다. 추출된 파라미터를 API 형태로 전달받아, 사내 규정에 입각한 절대적인 결과(
max_loan_amount=150_000_000)를 연산하여 반환한다. - 검증 오라클 (Verification Oracle): 테스트 및 런타임 단계에서 추론 엔진이 추출한 변수와, 계산 엔진이 반환한 결과값을 교차 검증하여 논리의 무결성을 평가하는 최종 수문장이다.
2. 런타임 섀도우 모드(Shadow Mode)와 오라클의 포지셔닝
이원화된 오라클은 단순히 CI/CD 파이프라인의 테스트 스크립트에서만 머무는 것이 아니라, 챗봇이 실제 사용자에게 응답을 렌더링하기 직전의 런타임 방어벽(Guardrail)으로도 작동해야 한다.
- 파이프라인 플로우:
- 사용자가 질문한다.
- LLM이 의도와 파라미터를 JSON 형태로 추출한다 (System A).
- 동시에 이 파라미터가 레거시 계산 엔진의 API로 전송된다 (System B).
- 오라클이 작동하여, 시스템 A에서 획득한 ‘LLM의 자연어 초안’ 내의 수치가 시스템 B에서 도출된 결괏값과 정확히 일치(Exact Match)하는지 검사한다.
- 불일치가 발생할 경우 사용자에게 환각이 포함된 답변이 노출되는 것을 즉시 차단(Blocking)하고, “시스템 에러로 계산할 수 없습니다“라는 폴백(Fallback) 안전 응답으로 대치한다.
3. 이원화 스키마(Schema)를 통한 데이터 계약 강제
이 두 세계가 충돌 없이 협력하기 위해서는 철저한 구조적 계약(Data Contract)이 필수적이다. 오라클 아키텍트는 Pydantic이나 JSON Schema를 이용하여 LLM이 계산 엔진에 넘길 입력값을 강제 규격화해야 한다.
// LLM과 계산 엔진 간의 이원화 오라클 계약 스키마 예시
{
"type": "object",
"properties": {
"intent": {"enum": ["CALCULATE_LOAN", "CHECK_INTEREST_RATE"]},
"parameters": {
"type": "object",
"properties": {
"income": {"type": "integer", "minimum": 0},
"credit_score": {"type": "integer", "minimum": 1, "maximum": 1000}
},
"required": ["income"]
}
},
"required": ["intent", "parameters"]
}
이처럼 강제화된 스키마는 비결정성의 덩어리인 언어 모델을 예측 가능한 ’소프트웨어 부품(Component)’으로 길들인다. 이원화된 오라클 아키텍처는 “언어 모델을 믿지 마라. 오직 언어 모델이 통과한 구조화된 데이터와, 그것이 맹목적으로 따르는 전통적 함수(Function)의 계산 결과만을 믿어라“라는 AI 엔지니어링의 대원칙을 실천하는 하드웨어적 구현체이다.