피드로 돌아가기
Dev.toBackend
원문 읽기
TIMESTAMPTZ 기반 시차 대응과 대사 단계 모델링을 통한 고정밀 단식 트래킹 설계
Building LifeFast: A Solo Founder's Deep Dive into Fasting App Architecture
AI 요약
Context
단순 카운트다운 방식의 기존 헬스 앱이 제공하지 못한 생체 데이터 기반의 사용자 경험 구현 필요. 전 세계 40개 이상의 Timezone 대응과 복잡한 관계형 데이터 모델링이 요구되는 환경임.
Technical Solution
- PostgreSQL TIMESTAMPTZ 타입을 통한 내부 UTC 저장 및 사용자별 Timezone 문자열 병행 저장을 통한 정확한 로컬 시간 계산 설계
- 60초 주기 Cron Job과
cronRunningGuard 변수를 통한 작업 중복 실행 방지 및 상태 전이(SCHEDULED → ACTIVE) 자동화 구현 - RTK Query의 자동 Caching 및 Optimistic Update를 활용한 클라이언트 상태 관리 복잡도 제거와 AsyncStorage 기반 Offline 모드 지원
- 대사 연구 기반의 단계별 임계값(Threshold)을 정의하여 단순 퍼센트 수치를 생체 단계(Fed State ~ Autophagy) 정보로 변환하는 도메인 로직 구축
- PostgreSQL의 Relational 모델을 채택하여 유저, 단식 기록, 체중, 수분 섭취 등 상호 연관 데이터 간의 JOIN 성능 및 정규화 확보
실천 포인트
- 글로벌 서비스 설계 시 Local Timestamp 대신 TIMESTAMPTZ와 Timezone ID를 함께 저장하여 시차 오류 방지 - 대량 메일/알림 발송 시 외부 API Rate Limit을 고려한 순차적 처리(Sequential Delay) 로직 반드시 검토 - 초기 단계에서 복잡한 스케줄링 시스템 대신 단순 Cron Job과 Job Table 조합으로 MVP 빠르게 검증 - 수치 기반 UI 구현 시 Math.min/max를 이용한 상하한선(Boundary) 설정으로 비정상적인 데이터 노출 차단