Technology
기술 스택 개요
StatPan은 공공 데이터를 안정적으로 수집·정제·서빙하기 위해 검증된 오픈소스 기술과 클라우드 인프라를 조합합니다.
운영 현황
1,600만+ 건
수집·적재된 데이터 레코드
347개 테이블
12개 스키마에 걸친 구조화 데이터
30+ DAG
Apache Airflow 기반 일일 자동 수집 파이프라인
270+ API
국회·DART·금융위·한국은행·통계청·FRED 연동
데이터 소스별 규모
| 소스 | 규모 | 설명 |
|---|---|---|
| 금융위원회 (FSC) | 1,100만+ 건 | 주가, 재무제표, 기업개요, 시장지수 |
| 국회 (Assembly) | 280만+ 건 | 의안, 표결, 회의록, 일정, 보도자료 (275개 API 테이블) |
| 수집 메타데이터 | 160만+ 건 | ETL 스냅샷, 수집 이력 추적 |
| DART 전자공시 | 57만+ 건 | 복합 재무제표, 공시 페이로드 |
| 거시경제 (ECOS·FRED·KOSIS) | 21만+ 건 | 한국은행, 미연준, 통계청 시계열 |
| 서울 지오메트리 (Routi) | 3만+ 건 | 가로등, 안심귀가시설, POI 등 — 러닝 경로 추천용 |
데이터 파이프라인
[국회 API · DART · 금융위 · 한국은행 · FRED · 통계청 · 공공데이터포털]
↓
[수집 레이어] Python · Apache Airflow (30+ DAG, 일일 스케줄 운영)
↓
[정제 레이어] DBT · 파싱 · 정규화 · 중복 제거
↓
[저장 레이어] PostgreSQL (1,600만+ 레코드) · OCI ADB 23ai (Vector Search)
↓
[서빙 레이어] FastAPI · MCP Server · Next.js 15
언어 & 프레임워크
| 기술 | 역할 |
|---|---|
| Python | 데이터 수집, 전처리, AI/ML 파이프라인, API 클라이언트 |
| Go | CLI 도구(Gira, datapan-cli), 에이전트 오케스트레이션 |
| TypeScript | 웹 애플리케이션, 프론트엔드 |
수집 & 오케스트레이션
| 기술 | 역할 |
|---|---|
| Apache Airflow | 30+ DAG 운영 — 국회·DART·금융위·한국은행·FRED·통계청 등 공공 API 일일 자동 수집 |
| DBT | 데이터 변환, 품질 검증, 스키마 테스트 |
| GitHub Actions | CI/CD, API 스펙 자동 동기화, 경량 스케줄 작업 |
| Alembic | 데이터베이스 스키마 마이그레이션 |
저장 & 검색
| 기술 | 역할 |
|---|---|
| PostgreSQL | 12개 스키마, 347개 테이블, 1,600만+ 레코드 운영 |
| OCI ADB 23ai | 구조화 데이터 + 벡터 검색 통합 |
| pgvector | 시맨틱 유사도 검색, 임베딩 저장 |
| EmbeddingGemma + llama.cpp | 로컬 임베딩 서빙 — 토큰 비용 없이 벡터 검색 운영 |
AI & 언어 모델
| 모델 | 역할 |
|---|---|
| Claude (Anthropic) | 코드 생성, 문서 분석, 에이전트 오케스트레이션 |
| Gemini (Google) | 멀티모달 분석, 대규모 컨텍스트 처리 |
| Codex (OpenAI) | 코드 리뷰, 자동화 태스크 |
| GLM-5.1 (Zhipu AI) | 다국어 처리, 보조 추론 |
| RAG | 문서 기반 정확한 AI 응답 생성 |
| MCP (Model Context Protocol) | AI 에이전트 — 데이터 직접 연동 |
AI 도구 & 에이전트
| 도구 | 역할 |
|---|---|
| OpenClaw | 멀티채널 AI 어시스턴트 (WhatsApp, Telegram, Slack 등) |
| Claude Code | CLI 기반 AI 코딩 에이전트 |
인프라
클라우드
- Oracle Cloud Infrastructure (OCI) — 컴퓨트, ADB 23ai, 오브젝트 스토리지
- Cloudflare — CDN, DNS, 보안, Pages (정적 사이트 호스팅)
- GitHub Pages — 문서 및 오픈소스 프로젝트 사이트
네트워크 & 보안
- Tailscale — 서비스 간 메시 VPN, 내부 통신 암호화
- Cloudflare Workers — 엣지 라우팅, API 프록시, 레이트 리미팅
- Cloudflare Zero Trust — 내부 서비스 접근 제어
프론트엔드
- Next.js 15 — Leginote 웹 애플리케이션
오픈소스 프로젝트
AssemblyMCP
국회 공공데이터 Open API 270개를 MCP 서버로 래핑합니다. Claude, GPT 등 MCP를 지원하는 AI 에이전트가 국회 데이터에 자연어로 질의할 수 있도록 합니다.
AI 에이전트 → MCP 클라이언트 → AssemblyMCP → 국회 Open API
현재 버전: v0.6.6 · GitHub 보기
Gira
Issue-to-PR AI 소프트웨어 워크플로우를 위한 GitHub-native control plane입니다. Finish, review, workflow convergence 단계를 명시적으로 다룹니다.
현재 버전: v2.8.0 · 릴리스 다운로드 1,267회 · GitHub 보기
Datapan CLI / Registry / Health
공공데이터포털(data.go.kr) API를 사람과 에이전트가 함께 다루기 쉽게 만드는 기반층입니다. datapan-cli(커맨드라인 도구), datapan-registry(버전이 붙은 API 스냅샷 레지스트리), datapan-health(공개 상태 모니터링)로 구성됩니다.
| 패키지 | 버전 | 다운로드 |
|---|---|---|
| datapan-cli | v0.1.39 | 164회 |
| datapan-registry | v2026.07.15 | 784회 |
| datapan-health | 출시 전 | - |
Python API 클라이언트
| 패키지 | 대상 | PyPI |
|---|---|---|
| assembly-api-client | 국회 오픈 API | 동적 스펙 파싱, 비동기, Pydantic |
| dart-api-client | DART 전자공시 83개 API | 자동 생성, Rate Limiting |
| lawpy | 법령 정보 API | 다국가 지원 |
데이터 품질
StatPan 파이프라인은 다음 기준으로 데이터 품질을 관리합니다.
- 출처 검증 — 국회 공식 Open API 및 공공기관 공식 채널만 사용
- 중복 제거 — 의안 번호, 일시, 출처 기반 deduplication
- 인코딩 표준화 — EUC-KR, CP949 등 레거시 인코딩을 UTF-8로 통일
- 형식 정규화 — 날짜, 의원명, 선거구 등 주요 필드 표준화
- DBT 테스트 — 파이프라인 실행마다 데이터 무결성 자동 검증
- ETL 스냅샷 — 160만+ 건의 수집 이력으로 파이프라인 실행 추적