Petdori 2.0은 1.0의 반자동 파이프라인을 완전 자동화된 실시간 스트리밍 플랫폼으로 고도화한 버전입니다. 센서/크롤러에서 수집된 생체 신호(심박/활동/체온 등)는 Kafka → Spark Streaming을 거쳐 Redis와 PostgreSQL에 기록됩니다. 실시간 데이터는 WebSocket으로 React 대시보드에 전달되고, 배치 데이터는 Airflow + dbt로 모델링되어 Tableau에서 분석됩니다.
Petdori 2.0: 반려동물 헬스케어 데이터 파이프라인
센서부터 대시보드까지, 실시간 생체 데이터의 수집·처리·시각화를 하나의 흐름으로 연결합니다.
프로젝트 개요
서비스 화면





핵심 기능
실시간 IoT 스트리밍 파이프라인
센서/크롤러 → Kafka → Spark Streaming → Redis + PostgreSQL. 파티션 키 설계, 체크포인트, 멱등 upsert로 일관성 보장.
WebSocket 기반 라이브 대시보드
Spring Boot가 Redis 캐시를 읽어 WebSocket으로 전달. 서버측 coalescing/우선순위 큐, 클라이언트 batched setState/throttle로 부하 제어.
자동화된 배치 분석
Airflow DAG로 ETL 자동화, dbt 모델을 Tableau로 시각화(집계 레이어/리프레시 전략 포함).
데이터 품질·스키마 컨트랙트
이상값 제거/중복 제거/스키마 동기화. Schema Registry(Avro/Protobuf)와 공통 데이터 컨트랙트, (선택) Great Expectations 검증.
아키텍처

Sensor/Crawler → Kafka(키 설계·idempotent producer) → Spark Streaming(체크포인트) → Redis(저지연) + PostgreSQL(영속) → Spring Boot → WebSocket → React 배치: Airflow + dbt → S3 스테이징 → Tableau. 관측성: Prometheus + Alertmanager, OpenTelemetry, 구조적 로깅
기술 스택
데이터 수집: FastAPI, Python 크롤러 실시간 처리: Kafka, Spark Streaming, Schema Registry(Avro/Protobuf) 저장소: PostgreSQL, Redis, (선택) MongoDB(장기 시계열) 배치 분석: Airflow, dbt, (선택) Great Expectations 시각화: React, Tableau, WebSocket 인프라/운영: Docker, Terraform, AWS S3, Prometheus + Alertmanager, OpenTelemetry
담당 역할
데이터 수집 및 Kafka 연동
FastAPI 게이트웨이/크롤러 설계, 파티션 키·idempotent producer 구성, 스키마 레지스트리 통합
Spark 스트리밍 파이프라인 구현
Kafka 컨슘/정제/집계 후 Redis·PostgreSQL 저장, 체크포인트·멱등 upsert로 Exactly-once 효과 달성
실시간 API 및 대시보드
Spring Boot WebSocket 엔드포인트와 React 실시간 렌더링, 서버측 coalescing/우선순위 큐 설계