04. 갭 분석 및 PoC 구현 계획

본 문서는 보유 자산으로 즉시 충족되지 않는 요구사항(🟡 부분 / 🔴 미보유)을 솔직히 식별하고, 각 항목의 보유 기반 → 신규 구현 범위 → 난도를 제시한다. 사업계획서 「추진전략 / 리스크 관리」 작성 근거.

핵심 메시지 — 미보유 항목은 모두 기반 기술이 이미 확보되어 있어, 신규 구현이 아니라 기존 컴포넌트 위에 얇은 층을 추가하는 수준이다. 기술적 리스크가 통제 가능.


1. 갭 항목 요약

# 요구 현 상태 난도
G1 항목별 초안 스트리밍(첫 응답 5초) 🔴 일괄 응답 SSE 푸시 계층 신규
G2 예산 80%/100% 알림·차단 🟡 토큰 집계만 임계 정책·차단 미들웨어 신규
G3 LLM Fallback(30초 타임아웃 모델 전환) 🟡 동종 fallback+retry 타임아웃 트리거 모델 전환 보강
G4 개인정보 비식별·ZDR·시큐어 삭제·감사로그 🔴 보안 기반만 마스킹/삭제/로그 모듈 신규
G5 자금 유형 분류체계 🟡 유사도 매칭 정책자금 자금명 라벨·매핑 테이블
G6 KWCAG 2.2 접근성 🟡 aria 일부 전면 준수·자동 검사
G7 동시 50인·99.5% / K8s 🟡 Celery 큐 K8s 매니페스트·부하테스트

2. 항목별 구현 전략

G1. 항목별 초안 스트리밍 — 중

  • 보유 기반: ai_engine의 Celery 항목 단위 분해(rfp_tasks.py), task_prerun/postrun 시그널, ai_dashboard의 Redis 캐시 이벤트.
  • 신규 범위: ① 엔진 stream=True 옵션 활성화(OpenAI 호환 API는 SSE 네이티브 지원) ② FastAPI StreamingResponse/SSE 엔드포인트 ③ Redis Pub/Sub로 항목별 부분 결과 푸시 ④ 프론트 EventSource 수신.
  • 참고 자산: 사내 SSE+Redis Pub/Sub 실시간 진행률 패턴 보유(타 프로젝트). 첫 응답 5초 목표는 "첫 항목 first-token 푸시"로 달성.

G2. 예산 알림·차단 — 하

  • 보유 기반: llm_mixin._track_usage()·logging_mixin._log_llm_call()로 토큰·비용이 이미 집계됨. ai_dashboard에 조회 API 존재.
  • 신규 범위: ① 일/월 예산 설정 테이블 ② 호출 전 누적 비용 체크 미들웨어(80% 알림 / 100% 차단) ③ 대시보드 알림 위젯. 데이터는 이미 흐르고 있어 정책 계층만 추가.

G3. LLM Fallback 강화 — 하

  • 보유 기반: model_selector.select_model() 동종 fallback, Celery soft_time_limit·max_retries=3.
  • 신규 범위: 주 모델 호출에 30초 타임아웃 가드 → 예외 시 select_model대체 provider 자동 호출(민간↔로컬 vLLM 교차). 팩토리·셀렉터가 이미 있어 연결만 추가.

G4. 개인정보 비식별·ZDR·시큐어 삭제 — 중

  • 보유 기반: Infisical 시크릿 관리, .gitleaks.toml 스캔, 네트워크 격리, MinIO/PostgreSQL 분리.
  • 신규 범위:
  • 마스킹: LLM 호출 전 사업자등록번호·기업명 등 정규식/NER 마스킹 → 응답 후 복원(프롬프트 빌더에 전·후처리 훅 삽입).
  • ZDR: 민간 LLM 제공사 DPA·비저장 확약(계약/운영 절차) + OpenRouter/Gemini의 no-retention 옵션 적용.
  • 시큐어 삭제: 다운로드 완료 시 임시 데이터 즉시 삭제 + 7일 TTL 잡(Celery beat) → MinIO 객체·임시 레코드 purge.
  • 감사 로그: 운영 DB와 분리된 로그 스토어(append-only) 3년 보존.
  • 데이터 흐름·저장 계층이 명확히 분리되어 있어 훅 지점이 분명함.

G5. 자금 유형 분류 — 하

  • 보유 기반: RFPRequirement.category, rfp_query_service 유사도 매칭, PromptRegistry 유형별 프롬프트.
  • 신규 범위: 정책자금 자금명(창업기반·혁신성장·신시장진출 등) ↔ 신청서 서식 ↔ 프롬프트 매핑 테이블 정의. 공단 제공 공고문·서식으로 구축.

G6. KWCAG 2.2 접근성 — 중

  • 보유 기반: rfp-gen 프론트 aria 속성 일부, Tailwind 반응형, role="dialog"/aria-modal.
  • 신규 범위: 전 컴포넌트 시맨틱·키보드 내비·명도대비·스크린리더 점검 + axe 자동 검사 CI 도입. (사내 a11y axe 진단 도구 보유.)

G7. 동시성·가용성·K8s — 중

  • 보유 기반: Celery+Redis 분산 큐(동시 처리 기반), infra/k8s base/apps/services 구조 정의.
  • 신규 범위: K8s 매니페스트 실제 작성(HPA·readiness/liveness), 50인 동시 부하 테스트, SLA 모니터링. Queue 방식은 RFP가 명시적으로 허용.

3. PoC 단계 권고 (8~10주 가정)

주차 작업 보유 자산 활용
1–2 정책자금 도메인 데이터 적재(공고문·서식·예시 RAG 인덱싱), 자금 유형 분류 테이블(G5) data_pipeline·knowledge_hub 그대로
2–4 유형별 프롬프트 작성, HWP/PDF 서식 매핑·출력(B-2) PromptRegistry·hwpx_generator 그대로
3–5 스트리밍(G1)·Fallback 강화(G3) ai_engine Celery/셀렉터 확장
4–6 공단 포털 SSO 연동(scope 추가), 웹 에디터 도메인 적용 portal-nginx·rfp-gen 프론트
5–7 비식별·ZDR·시큐어 삭제·감사로그(G4) 보안 기반 + 신규 훅
6–8 예산 차단(G2)·대시보드, KWCAG(G6) ai_dashboard 확장
7–9 OnPrem(CSAP형) 배포·부하 테스트(G7)·UAT docker-compose.onprem 그대로
9–10 안정화·결함 0건·가용률 검증

4. 리스크 관리

리스크 대응
민간 LLM API 장애(공단 인지 한계) 모델 팩토리 다중 provider + 로컬 vLLM fallback(폐쇄망 모드는 외부 의존 0)
한글 서식 레이아웃 깨짐 python-hwpx 네이티브 조립(변환 방식 회피) + HWP_EXPORT_REQUIREMENTS 명세
할루시네이션 RAG 근거 주입 + Few-Shot + 면책 문구 삽입
개인정보 유출 호출 전 마스킹 + ZDR 계약 + 망 격리 + 감사로그
동시성 한계 Celery Queue + K8s HPA, RFP 허용 Queue 방식

5. 결론

미보유·부분 항목 7건 중 하(下) 난도 3건은 기존 데이터/컴포넌트에 정책 계층만 추가, 중(中) 난도 4건도 기반 기술(SSE·Celery·격리 저장·a11y 도구)을 보유해 신규 R&D 리스크가 없다. 반면 통상 가장 어려운 CSAP형 외부망 독립 배포·한국어 RAG·HWPX 네이티브 출력은 즉시 보유. 종합적으로 본 PoC는 기보유 자산의 도메인 재적용 중심이며, 정량 목표(30초·80% 적합도·99.5%) 달성 가능성이 높다.