본문으로 건너뛰기

ADR-002: No LLM at Runtime (런타임에서 LLM 사용 금지)

Status: Accepted | Date: 2026-02-10

맥락

Fascia는 빌드 단계에서 대규모 언어 모델(LLM)을 사용하여 사용자의 백엔드 시스템 설계를 돕습니다. 아키텍처 질문은 AI가 런타임 실행에도 참여해야 하는지 -- 즉, 요청을 해석하거나 의사결정을 내리거나 실시간으로 응답을 생성해야 하는지 -- 입니다.

많은 AI 기반 플랫폼이 설계 시 지능과 런타임 지능의 경계를 모호하게 합니다. 이는 비결정적 동작, 예측 불가능한 비용, 가변적인 지연 시간, 프롬프트 인젝션(prompt injection)과 같은 보안 문제로 이어질 수 있습니다.

결정

LLM 호출은 빌드 및 설계 단계에서 허용됩니다. 여기에는 Chat Studio(자연어 설계), Safety Agent(스펙 분석 및 리스크 분류), Risk Engine(정책 적용)이 포함됩니다.

런타임 Executor는 어떤 LLM API도 절대 호출하지 않습니다. 모든 런타임 동작은 결정적이며 컴파일된 스펙 번들에서 도출됩니다. Tool이 배포되면 AI의 개입 없이 스펙에 정의된 정확한 플로우 그래프를 따라 실행됩니다.

검토한 대안

옵션장점단점
런타임 LLM 없음 (선택됨)결정적, 예측 가능한 비용, 일관된 지연 시간, 감사 가능런타임에서의 유연성 감소
LLM 보조 런타임모호한 입력 처리, 자연어 쿼리 가능비결정적, 예측 불가능한 비용, 지연 시간 급증, 환각(hallucination) 리스크
하이브리드 (특정 런타임 작업에 LLM)이론적으로 양쪽 장점두 가지 실행 모델 유지 필요, 동작 보장 추론 어려움

결과

긍정적

  • 결정성 -- 모든 API 호출이 동일한 입력에 대해 동일한 결과를 반환합니다. 동작을 완전히 재현할 수 있습니다.
  • 예측 가능한 비용 -- 런타임 비용이 요청당 LLM 토큰 소비가 아닌, 컴퓨트 및 데이터베이스 사용량에 비례하여 증가합니다.
  • 일관된 지연 시간 -- 요청 처리 중 LLM 추론을 기다릴 필요가 없습니다. 응답 시간은 플로우 그래프 복잡도와 데이터베이스 쿼리에 의해 결정됩니다.
  • 감사 가능성 -- 모든 실행 단계를 플로우 그래프를 통해 추적할 수 있습니다. 실행 경로에 불투명한 AI 의사결정이 없습니다.
  • 보안 -- 런타임에서 프롬프트 인젝션 공격 표면이 없습니다. Executor는 자연어가 아닌 구조화된 데이터를 처리합니다.

부정적

  • 런타임에서 자연어 처리 불가 -- 고객 프로덕트의 최종 사용자는 대화형 인터페이스가 아닌 구조화된 API 호출을 통해 상호작용합니다. 자연어 처리가 필요한 경우 고객의 프론트엔드 레이어에서 별도로 처리해야 합니다.
  • 지능의 컴파일 아웃 -- 모든 AI 지원은 설계 시 구체적인 스펙을 생성해야 합니다. 런타임에서 지능이 적응할 수 없습니다.

리스크

  • 사용자가 AI 기반 런타임 기능(자연어 API 쿼리, 지능형 라우팅 등)을 기대할 수 있습니다. 제품 메시지에서 설계 시와 런타임의 경계를 명확히 전달해야 합니다.
  • 시장이 AI 네이티브 백엔드로 이동함에 따라, 이 결정은 향후 단계에서 재검토가 필요할 수 있습니다. 단, 결정성과 비용 예측 가능성에 대한 강력한 보장이 있어야 합니다.