피드로 돌아가기
Dev.toDevOps
원문 읽기
Deterministic Core 기반 Never-block 구조로 LLM 의존성 완전 제거
Deterministic First, LLM Second: An Advisory CI Pre-Screen
AI 요약
Context
기존 Gemini 기반 PR 리뷰 시스템의 Quota Error, Timeout, JSON 파싱 오류로 인한 CI 파이프라인의 잦은 중단 발생. LLM이 의사결정 권한(Veto Power)을 가져 시스템 교체 시 수주가 소요되는 높은 결합도와 유지보수 비용이 한계점으로 작용.
Technical Solution
- Deterministic Classifier를 핵심 프로덕트로 정의하여 12개 규칙 기반의 Pure Function 구조 설계
- LLM(Groq)을 Advisory Layer로 분리하여 결과물에 영향력을 배제한 Never-block 계약 적용
- Python stdlib(urllib) 기반의 최소 의존성 구현으로 SDK 및 Transitive Vulnerability 리스크 제거
- continue-on-error: true 설정을 통해 LLM 장애 시에도 Deterministic Verdict를 보장하는 Graceful Degradation 구현
- System Prompt를 String Literal로 하드코딩하여 사용자 입력에 의한 Prompt Injection 경로 차단
- pull_request_target 및 SHA-pinned checkout을 적용한 Fork-safe 보안 모델 유지
실천 포인트
- 핵심 비즈니스 로직은 Deterministic한 Pure Function으로 구현했는가? - 외부 API(LLM 등)의 실패가 전체 파이프라인의 블로킹 요소가 되지 않도록 설계했는가? - LLM의 역할을 '결정(Decision)'이 아닌 '보완(Polish/Advisory)'으로 제한했는가? - 외부 라이브러리 의존성을 최소화하여 보안 공격 표면을 줄였는가?