← 프로젝트 목록

대표 프로젝트 · 비공개 자산

공공조달 입찰공고 데이터 자동 추출 · AI 검증 플랫폼

공공조달 입찰공고를 수집·변환·추출·AI검증까지 자동화한 멀티서비스 데이터 파이프라인 — 기획·백엔드·AI·인프라·프론트까지 1인 설계·개발·운영

2024 – 현재 · 설계 · 개발 · 운영 단독 담당 (백엔드 · AI · 인프라 · 프론트엔드)
  • Python
  • FastAPI
  • RabbitMQ
  • Airflow
  • MySQL
  • React
  • TypeScript
  • LLM (Gemini · OpenAI)
  • Docker
  • MCP

개요

공공조달 입찰공고 문서(HTML·HWP·PDF·이미지)에서 자격조건·기초금액·법정제비용 등 핵심 항목을 자동으로 추출하고, 그 결과를 AI로 보완검증해 신뢰도를 끌어올리는 데이터 플랫폼입니다.

크롤러 수집부터 비동기 추출 워커, 데이터베이스, 분석 대시보드, 운영 자동화까지 6개 이상의 서비스로 구성된 시스템을 기획 단계부터 단독으로 설계·개발·운영하고 있습니다.

규칙 기반 파싱과 LLM을 조합한 하이브리드 추출, 멀티 프로바이더 폴백, 레거시 DB 무중단 이관 등 실서비스 운영에서 마주하는 정확도·비용·가용성 문제를 직접 해결한 사례입니다.

아키텍처 · 데이터 흐름

  1. 수집 — 외부 크롤러가 공고 문서를 수집해 API(FastAPI)로 전달
  2. 분배 — 메시지 큐(RabbitMQ)로 작업을 비동기 분배 (비AI 빠른 건 / AI 느린 건 큐 분리)
  3. 변환 — 문서 포맷별로 HTML 정규화 (전용 변환기 + 디지털 PDF 파서, 실패 시 AI/OCR 폴백)
  4. 추출 — 규칙(정규식·파서)으로 1차 추출, 텍스트 없는 PDF·이미지는 LLM으로 추출
  5. 검증 — 추출 결과를 별도 LLM으로 재검증하고 의심 케이스 플래깅
  6. 적재 — 레거시 운영 DB와 신규 BI DB에 dual-write로 동시 저장
  7. 활용 — 비교·통계 API → React 대시보드 시각화, 운영은 MCP·Airflow로 자동화

데이터 수집 · API 서버 (FastAPI)

크롤러가 보낸 공고를 큐로 분배하고, 정확도 비교·AI 호출 현황·자동검수·배포 API와 JWT 기반 인증/권한을 제공.

추출 워커 (RabbitMQ)

문서 다운로드 → HTML 변환 → 핵심 항목 추출을 비동기로 처리. 운영/개발/테스트 환경별, 단계별로 워커를 분리.

AI 추출 · 보완검증 워커

텍스트가 없는 PDF·이미지는 LLM으로 직접 추출하고, 규칙으로 뽑은 결과를 별도 LLM으로 재검증하는 전용 큐/워커.

운영 MCP 서버

AI 코딩 에이전트가 로그·DB·큐·컨테이너 상태를 권한 제어 하에(읽기 전용·화이트리스트) 조회하도록 만든 커스텀 도구 세트.

데이터 인프라 (MySQL)

레거시(구버전·EUC-KR)와 신규(최신·utf8mb4)를 dual-write로 병행하며 점진적으로 이관하는 데이터 계층.

분석 대시보드 (React 19 · TS)

필드별 추출 정확도 비교, AI 호출·비용 현황, 자동검수 조건/통계, 재수집 승인 워크플로우, 권한 관리를 제공.

AI 활용

하이브리드 추출 (규칙 + LLM)

구조화된 문서는 규칙 기반 파서로 빠르고 저렴하게, 텍스트가 없는 PDF·이미지만 LLM으로 추출해 비용과 정확도의 균형을 맞춤.

멀티 프로바이더 폴백 · 병렬 race

기본 모델을 우선 호출하고, 지연/실패 시 보조 모델을 병렬로 경쟁시켜 먼저 성공한 결과를 채택. 그래도 실패하면 장시간 재시도로 가용성 확보.

AI 보완 검증

규칙으로 추출한 결과를 별도 LLM으로 재검증해 불일치/의심 케이스를 플래깅하고 운영·개발 데이터를 자동 대조.

프롬프트 버전 관리 (DB 기반)

프롬프트를 버전·모델 단위로 DB에서 관리하고 A/B 비교 후 활성화 토글. 모델별 정확도·비용을 실측 비교해 운영 모델을 의사결정.

구조화 출력 + 도메인 검증

JSON 스키마 강제 출력으로 파싱 안정성을 확보하고, 금액 범위·코드 매칭·길이 등 도메인 규칙과 유니코드/인코딩 정규화로 후처리 검증.

비용 최적화 · 관측성

프롬프트를 고정/가변 파트로 분리해 캐시 적중을 유도하고, 호출별 토큰·비용·응답시간·폴백 경로를 로깅해 추적.

AI 개발 하네스 (MCP · 에이전트)

커스텀 MCP 서버 + 서브에이전트/스킬 + 작업이력 자동화로 코딩 에이전트(Claude Code 등)의 개발 생산성을 끌어올림.

서비스 자동화 · 운영

비동기 큐 파이프라인

비AI 빠른 건과 AI 느린 건을 큐로 분리해 처리량·지연을 최적화하고, 환경별 워커를 격리해 운영 안정성을 확보.

스케줄 배치 오케스트레이션 (Airflow)

레거시→신규 DB 증분 이관을 일 단위로 자동화. catchup으로 과거 누락분을 자동 보정하고, 청크 단위 멱등 처리로 부분 실패를 격리.

무중단 배포

graceful shutdown으로 처리 중 메시지를 마친 뒤 종료, durable 큐로 재시작 시 작업 유지, 배포 백업 보존으로 롤백 가능.

운영 견고성

연결 재시도·heartbeat, 메시지 재큐/DLQ, 에러 이력 DB 기록, 시간별 로그 로테이션으로 장애 내성을 확보.

비교 검증 자동화

신규/기존 데이터를 다수 필드에 대해 자동 비교해 정확도를 산출하고 대시보드로 시각화.

개발 환경 자동화

멀티 git 워크트리 + 환경파일 감시 동기화(PowerShell)로 여러 작업 세션을 병렬로 안전하게 운영.

기술 스택

백엔드

  • Python
  • FastAPI
  • SQLAlchemy
  • pika
  • JWT

비동기 · 배치

  • RabbitMQ
  • Apache Airflow
  • Celery
  • Redis

데이터

  • MySQL 5.5→8.4
  • dual-write 마이그레이션
  • pandas

AI / LLM

  • Google Gemini
  • OpenAI
  • OCR
  • 프롬프트 버전관리
  • 구조화 출력
  • 멀티 프로바이더 폴백

프론트엔드

  • React 19
  • TypeScript
  • React Router
  • Chart.js
  • Tailwind

인프라 · 운영

  • Docker Compose
  • Nginx
  • SSH
  • MCP 서버
  • 멀티 워크트리

핵심 역할 · 성과

  • 기획·DB설계·백엔드·AI·인프라·프론트엔드까지 전 스택을 단독으로 설계·개발·운영
  • 레거시 RDB를 운영 중단 없이 신규 인프라로 dual-write 점진 이관
  • LLM을 프로덕션 추출 파이프라인에 통합하며 비용·정확도·가용성을 동시에 달성
  • AI 코딩 에이전트용 사내 MCP 하네스를 직접 구축해 개발 생산성 향상

업무 자산이라 서버·접속정보·고객 데이터 등 내부 구현 세부는 비공개입니다. 본 페이지는 아키텍처·기법·역량 수준으로만 정리했으며, 더 깊은 내용은 문의 시 별도 공유드립니다.

← 프로젝트 목록