Skip to content

neuwcodebox/disaster-feed

Repository files navigation

disaster-feed

재난/안전 관련 여러 데이터 소스를 주기적으로 수집해 공통 형태의 "이벤트"로 정리하고, 최신 정보를 API와 실시간 스트림(SSE)으로 제공하는 백엔드 서비스입니다.

Demo Screenshot

주요 기능

  • 다양한 소스에서 재난/안전 정보를 폴링 수집
  • 이벤트 형태로 정형화해 DB에 저장
  • 최신 이벤트 목록을 HTTP API로 제공
  • 실시간 UX를 위한 SSE 스트림 제공
  • AI 기반 분류

제공 데이터

  • 재난문자
  • 미소지진
  • 실시간 지진 정보
  • 소방활동
  • 화재출동
  • 산불
  • 기상 특보
  • 대기질 (PM, O3)
  • 교통 돌발정보
  • 산사태
  • 뉴스
  • SNS 이슈

데이터 흐름(요약)

  1. BullMQ 반복 잡으로 소스별 폴링
  2. 소스가 원본 fetch 후 이벤트로 정형화
  3. 이벤트를 DB에 저장하고, Pub/Sub으로 새 이벤트 ID 발행
  4. 각 인스턴스가 메시지를 수신해 SSE로 브로드캐스트
  5. SSE 재연결 시 누락분을 DB에서 보낸 뒤 live 전환

사용 기술

  • Node.js / TypeScript
  • Hono, Kysely
  • Postgres, Redis, BullMQ

로컬 실행

  1. Postgres/Redis 실행
docker-compose up -d
  1. 앱 실행
npm install
npm run dev
  1. 주요 엔드포인트
  • GET /events
  • GET /events/stream

면책 조항

이 프로젝트는 개인 학습 및 실험 목적으로 개발된 비상업적 오픈소스 소프트웨어입니다. 제공되는 데이터의 정확성, 완전성, 신뢰성에 대해 어떠한 보증도 하지 않으며, 이 소프트웨어의 사용으로 인해 발생하는 모든 종류의 손해에 대해 책임을 지지 않습니다. 실제 재난/안전 상황에서는 공식 채널과 기관의 정보를 반드시 확인하시기 바랍니다.

About

실시간 재난 현황 서버

Resources

Stars

Watchers

Forks

Releases

No releases published