AIoT · Mobile
CareRhythm PET — 반려동물 AI 헬스 모니터링
센서로 수집한 소리·활동·수면을 개체별 베이스라인으로 학습해 이상징후를 "겁주지 않는 인텔리전스 리포트"로 알려주는 AIoT 반려동물 앱
- 소속
- 담담소프트
- 기간
- 2026.04 – 현재
- 역할
- 기획 · 앱(React Native) · 서버 연동
- 기여도
- 100%
Expo SDK 51React NativeTypeScriptReact Navigationreact-native-svgFastAPIEAS BuildCloudflare Tunnel
01
Overview
웨어러블/환경 센서(케어리듬 핀)가 반려견의 짖음·낑낑·활동(IMU)·수면을 수집하면, AI가 2주간 개체별 베이스라인을 학습해 매일의 건강 점수와 이상징후를 산출하는 AIoT 헬스케어 앱입니다. 예비창업패키지 과제로 담담소프트에서 개발 중입니다.
02
Background
반려인은 반려동물의 이상을 "느낌"으로만 감지하고, 병원에 가도 평소 데이터가 없어 설명하기 어렵습니다. 개체마다 정상 범위가 달라 일괄 기준이 아닌 개별 베이스라인이 필요했습니다.
03
Problem
개체별 정상 패턴 학습, 이상 알림을 "공포"가 아닌 "근거 있는 리포트"로 전달하기, 그리고 초기 MVP의 목업 화면을 실제 서버 연동으로 매끄럽게 전환하는 것이 과제였습니다.
04
My Role
- Expo(React Native) 기반 16개 화면 및 SVG 게이지/도넛/트렌드 차트 구현
- FastAPI 백엔드와 연동되는 타입 세이프 API 클라이언트 및 병렬 데이터 로딩 설계
- 설명가능한 이상 알림 UI(이상 점수·베이스라인 편차·시간 가중·SNR)와 피드백 루프 구성
05
Architecture
앱 부팅 시 SessionProvider가 토큰을 확보하고 DataProvider가 8개 엔드포인트를 Promise.all로 병렬 로딩합니다. 서버 DTO(snake_case)를 클라이언트 형태(camelCase)로 매핑하되 기존 목업 모듈과 동일한 이름·형태로 재노출해 화면 코드 변경 없이 목업→서버로 전환했고, 네트워크 실패 시 정적 목업으로 폴백합니다.
센서(케어리듬 핀) · 소리·IMU·수면→FastAPI 백엔드 (베이스라인·이상탐지)→타입 세이프 API 클라이언트→DataProvider (병렬 로딩 · DTO 매핑)→React Native 화면 (점수·타임라인·리포트)
06
Key Features
- ▸개체별 베이스라인 기반 일일 건강 점수
- ▸설명가능한 이상 알림(근거 행 + correct/false alarm 피드백)
- ▸일/주/월 리포트(막대·도넛·트렌드·히트맵)
- ▸수의사 공유용 A4 리포트 미리보기
07
Technical Decisions
목업→서버 전환을 "동일 인터페이스 재노출"로 설계
왜 → 화면을 다시 쓰지 않고 import 경로만 바꾸도록, DataProvider가 기존 목업과 같은 이름/형태로 데이터를 내보내게 했습니다.
알림을 빨간 경고가 아닌 이슈카드형 근거 리포트로
왜 → 반려인을 불안하게 하는 대신 판단 근거(이상 점수·편차·SNR)를 제시해 신뢰를 주고 오탐 피드백을 받도록 했습니다.
09
Result
- 16개 화면과 실제 서버 연동(인증·병렬 로딩·오프라인 폴백)까지 동작하는 MVP
- Oura 참고 다크 럭셔리 디자인 토큰 시스템 구축
10
What I Learned
- 프로토타입을 실제 서비스로 이행할 때의 데이터 계약 설계
- AI 결과를 사용자가 신뢰하게 만드는 설명가능 UI