Petdori 2.0: 반려동물 헬스케어 데이터 파이프라인

센서부터 대시보드까지, 실시간 생체 데이터의 수집·처리·시각화를 하나의 흐름으로 연결합니다.

프로젝트 개요

Petdori 2.0은 1.0의 반자동 파이프라인을 완전 자동화된 실시간 스트리밍 플랫폼으로 고도화한 버전입니다. 센서/크롤러에서 수집된 생체 신호(심박/활동/체온 등)는 Kafka → Spark Streaming을 거쳐 Redis와 PostgreSQL에 기록됩니다. 실시간 데이터는 WebSocket으로 React 대시보드에 전달되고, 배치 데이터는 Airflow + dbt로 모델링되어 Tableau에서 분석됩니다.

서비스 화면

실시간 생체 데이터 대시보드
건강 이력 리포트
실시간 지표 카드
알림/이벤트 로그
집계 트렌드

핵심 기능

실시간 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 검증.

아키텍처

architecture-0

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

담당 역할

문제 해결

회고