피드로 돌아가기
Reviving TruthGuard AI: From Zero History to Full CRUD with GitHub Copilot
Dev.toDev.to
Backend

SQLite 도입과 GitHub Copilot을 통한 Prototype의 Production-ready 전환

Reviving TruthGuard AI: From Zero History to Full CRUD with GitHub Copilot

Awaisranahmad2026년 5월 22일5intermediate

Context

실시간 웹 검색과 LLM을 결합한 가짜 뉴스 탐지 시스템의 초기 프로토타입 단계에서 데이터 지속성 부재와 환경 설정의 하드코딩 문제 발생. Streamlit 기반의 일회성 세션 구조로 인해 페이지 새로고침 시 모든 분석 결과가 소멸하는 구조적 한계 노출.

Technical Solution

  • SQLite 기반의 history_manager.py 모듈 구축을 통한 분석 이력의 영구 저장 및 CRUD 기능 구현
  • Parameterized Query 적용을 통한 SQL Injection 방어 및 데이터베이스 연결 관리 최적화
  • python-dotenv 도입과 st.secrets fallback 체인 설계를 통한 로컬 및 클라우드 환경 간 API 키 관리 일원화
  • LLM의 Markdown 응답에서 정형 데이터를 추출하는 parsing 로직 구현으로 DB 저장 가능한 구조화된 필드 생성
  • pytest 기반의 Unit Test 환경 구축으로 API 변경에 따른 시스템 취약점 보완 및 회귀 테스트 가능 구조 확보
  • st.rerun() 적용을 통한 최신 Streamlit API 호환성 확보 및 세션 상태 관리 최적화

- 프로토타입의 데이터 지속성을 위해 경량 SQLite DB를 도입하고 CRUD 모듈을 분리하여 설계할 것 - 환경 변수 설정 시 .env와 플랫폼 전용 Secret Store를 결합한 Fallback 메커니즘을 구축하여 배포 유연성 확보 - LLM 출력값의 비정형성을 해결하기 위해 DB 저장 전 전처리 단계에서 정형 데이터 추출 함수를 반드시 구현 - AI 코딩 어시스턴트 활용 시 '함수 시그니처 정의 후 구현체 생성' 및 '테스트 코드 선행 작성' 패턴을 통해 정밀도 향상

원문 읽기