Skip to content

Repository files navigation

💤 ZZZ

한국어 English 구조 가이드 실행 방법

웨어러블 데이터와 환경 센서를 함께 활용하여

취침 전 수면 질을 예측하고, 기상 후 결과를 해석하는 개인 맞춤형 수면 관리 서비스


Node.js Express Raspberry Pi SQLite Google Health AWS

Status Platform Domain


🚀 Quick Start

처음 프로젝트를 받은 뒤 루트 디렉터리에서 아래 명령만 실행하면 시드 데이터 기반 데모 화면을 바로 확인할 수 있습니다.

이 Quick Start는 발표/시연용 기본 실행 흐름입니다.

  • Google Health 연결, Raspberry Pi, DHT11, MQ-5 센서가 없어도 실행됩니다.
  • npm run seed-demo가 시연용 Google Health/센서/수면/피드백 데이터를 DB에 넣습니다.
  • Ollama는 선택 사항입니다. 자연어 피드백을 확장하고 싶을 때만 설정합니다.
npm install
cp .env.example .env
npm run init-db
npm run seed-demo
npm run dev

실행 후 브라우저에서 http://localhost:3000으로 접속합니다.

선택적으로 더 자연스러운 설명형 문구를 생성하려면 Ollama를 설치한 뒤 .env에서 SLM_ENDPOINT, SLM_MODEL을 설정합니다.

ollama pull gemma4:e4b
ollama serve

Raspberry Pi 센서 수집 기능을 실제 장비에서 개발할 때만 해당 환경에서 npm install i2c-bus를 별도로 실행합니다.

자세한 실행 방법은 HOW_TO_RUN.md를 참고합니다.


🔍 Overview

ZZZ는 취침 전에 오늘 밤의 수면 질 저하 가능성을 예측하고, 기상 후에는 실제 수면 결과와 사용자 체감을 함께 해석하며, 반복 사용을 통해 점진적으로 개인화되는 스마트 헬스케어 서비스입니다.

이 프로젝트는 단순히 “어젯밤 어떻게 잤는지”를 보여주는 데서 끝나는 것이 아니라, 다음과 같은 순환 구조를 지향합니다.

  • 웨어러블 및 환경 데이터 수집
  • 현재 상태와 수면 결과 해석
  • 행동 가능한 피드백 제공
  • 누적 패턴을 반영한 이후 예측 기준 갱신

즉, ZZZ는 단순한 수면 기록 서비스가 아니라 사전 개입, 설명 가능한 해석, 점진적 개인화를 핵심으로 두는 서비스입니다.


🤔 Why ZZZ?

기존의 많은 수면 관련 서비스는 주로 기상 후 결과 확인에 머무릅니다.
사용자는 수면 시간, 수면 단계, 점수와 같은 결과를 볼 수는 있지만, 이미 수면이 끝난 뒤이기 때문에 그날 밤의 행동을 바꾸기에는 늦은 경우가 많습니다.

또한 같은 수면 데이터가 기록되더라도 사용자가 실제로 느끼는 만족도는 다를 수 있으며, 단순한 점수만으로는 왜 그런 결과가 나왔는지 이해하기 어려운 경우도 많습니다.

ZZZ는 이러한 한계를 보완하기 위해 다음과 같은 방향을 목표로 합니다.

  • 취침 전에 수면 질 저하 가능성을 예측
  • 결과를 단순 점수로 끝내지 않고 해석 가능한 이유와 행동 제안 제공
  • 기상 후 실제 수면 결과와 주관적 만족도를 함께 반영
  • 누적된 사용자 패턴을 바탕으로 이후 예측과 해석을 점진적으로 보정

✨ Core Value

1. 사전 개입

취침 전 시점에 현재 상태와 환경을 바탕으로 수면 질 저하 가능성을 미리 예측하고, 사용자가 실제로 행동을 바꿀 수 있는 기회를 제공합니다.

2. 설명 가능한 해석

단순히 결과를 보여주는 것이 아니라, 왜 그런 결과가 나왔는지와 어떤 요인이 영향을 주었는지를 함께 설명하는 방향을 지향합니다.

3. 점진적 개인화

자동 계산 결과와 사용자의 주관적 만족도를 함께 반영하여, 시간이 지날수록 사용자에게 더 맞는 예측 기준과 해석 기준으로 조정됩니다.


🛠 Main Features

취침 전 수면 질 저하 위험 예측

취침 전 1시간의 웨어러블 데이터와 환경 데이터를 바탕으로 오늘 밤 수면 질 저하 가능성을 예측합니다.

현재 위험 요인 및 행동 제안 제공

예측 결과와 함께 현재 위험 요인 1~2개를 제시하고, 바로 실천할 수 있는 행동 제안 1개를 제공합니다.

기상 후 원인 분석

기상 후 실제 수면 결과와 사용자 만족도를 함께 반영하여 주요 원인, 보조 원인, 설명형 피드백을 생성합니다.

Sleep Score 계산

서비스는 다음 기준을 바탕으로 100점 만점의 Sleep Score를 계산합니다.

  • Time Asleep — 50점
  • Deep & REM — 25점
  • Restoration — 25점

누적 패턴 데이터 갱신

수면 결과, 사용자 만족도, 자동 점수와 체감의 차이를 누적하여 이후 예측과 해석의 기준으로 반영합니다.


🏗 System Concept

ZZZ는 On-Premise 구현을 중심으로 설계된 스마트 헬스케어 시스템이며, 이후 클라우드 확장까지 고려한 구조를 갖습니다.

On-Premise Layer

  • Raspberry Pi 기반 환경 센서 수집
  • Google Health API 호출
  • 로컬 버퍼 및 저장
  • feature 생성
  • 취침 전 예측
  • 기상 후 사후 분석
  • REST API 및 대시보드 서비스 제공

Cloud-Ready Layer

  • 장기 저장
  • 확장 가능한 처리 파이프라인
  • 설명형 피드백 계층 강화
  • 서비스 구조 확장

현재 프로젝트는 On-Premise 구현을 우선으로 진행하되, 이후 클라우드 전환 시에도 구조적으로 자연스럽게 이어질 수 있도록 설계하고 있습니다.


💻 Tech Stack

  • Backend: Node.js, Express
  • Database: SQLite
  • Hardware: Raspberry Pi, DHT11, MQ-5 + ADC module
  • External API: Google Health API
  • Infra: AWS (future extension architecture)

🎯 Project Direction

이 프로젝트는 의료 진단 시스템을 목표로 하지 않습니다.

대신 사용자가 자신의 수면을 더 잘 이해하고, 취침 전에 행동을 조정하며, 기상 후 결과를 해석하고, 반복 사용을 통해 점진적으로 더 맞는 기준을 형성할 수 있도록 돕는 보조적 스마트 헬스케어 서비스를 목표로 합니다.

장기적으로는 다음과 같은 방향을 지향합니다.

  • 더 강한 개인화
  • 더 명확한 해석
  • On-Premise와 Cloud의 자연스러운 연결
  • 실제 구현 제약을 반영한 현실적인 스마트 헬스케어 서비스 설계

📚 문서 안내

프로젝트 구조와 실행 흐름, 각 계층의 역할은 아래 문서에서 확인할 수 있습니다.

README How to Run Decision Log API Plan RPi Layer Processing Layer Service Layer Storage Layer English README

Keywords: Smart Healthcare Sleep Quality Prediction Wearable Data Google Health API Raspberry Pi Environmental Sensing Explainable Feedback Personalized Health Service On-Premise System

About

[ZZZ] 웨어러블 및 환경 센싱 기반의 개인 맞춤형 수면 질 예측 및 해석 서비스

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages