피드로 돌아가기
A Sleep Cycle Calculator That Accounts for Fall-Asleep Time
Dev.toDev.to
Frontend

Fall-Asleep Time 보정을 통한 수면 사이클 계산 정밀도 향상

A Sleep Cycle Calculator That Accounts for Fall-Asleep Time

SEN LLC2026년 4월 14일2beginner

Context

단순 90분 배수 계산 방식의 수면 계산기가 가진 실질적 입면 시간 무시 문제를 식별. 사용자가 침대에 눕는 시간과 실제 수면 진입 시간의 간극으로 인한 기상 시 피로도 증가 해결 필요.

Technical Solution

  • Fall-Asleep Time 변수를 도입하여 단순 사이클 배수에 가산하는 보정 로직 설계
  • 3~6개 사이클 범위를 동적으로 생성하는 calculateBedtimes 함수 구현
  • Date 객체의 밀리초 단위 연산을 통한 Midnight-crossing 시점의 시간 계산 정확성 확보
  • 수면 사이클 수에 따른 optimal, good, fair 품질 라벨링 시스템 구축
  • 외부 라이브러리 배제를 통한 Zero dependencies 환경 구현으로 런타임 오버헤드 최소화
  • 42개의 테스트 케이스를 통한 시간 계산 로직의 엣지 케이스 검증

- 사용자 경험 설계 시 실제 동작 시작점과 시스템 트리거 시점의 시차(Latency) 고려 - 비즈니스 로직의 순수 함수화를 통한 테스트 가능성 확보 및 의존성 제거 - 도메인 지식(수면 과학)을 정량적 라벨(Quality Label)로 변환하는 데이터 매핑 적용

원문 읽기