H-Helper
운동 루틴 생성부터 기록, 분석까지 지원하는 피트니스 웹앱입니다. 사용자 맞춤형 루틴과 수행 기록 기반 통계를 제공하며, SSR과 동적 import를 통한 퍼포먼스 최적화, 반응형 UI가 특징입니다.
📌 개발 기간
- v1: 2024/11/06 - 2024/12/19
- v2: 2025/03/25 - 2025/04/30
⚙️ 사용 기술
- Next.js 15 (App Router)
- TypeScript
- MongoDB
- React Query
- TailwindCSS 4.0
- Shadcn-UI
- Vercel
- NextAuth.js
- Zod
🧩 기술적 도전
- React Query Hydration + SSR 최적화: 서버에서 dehydrate 후 HydrationBoundary로 클라이언트 재사용 → 초기 로딩 개선 및 일관성 유지
- 동적 임포트를 통한 번들 최적화: Sidebar, Drawer 등을 `next/dynamic`으로 지연 로딩 → 모바일 UX 최적화
- 반응형 Drawer/Dialog 통합 구조: Shadcn-UI 컴포넌트를 기반으로 모바일/데스크탑에 맞는 UI 자동 전환
- MongoDB 트랜잭션 처리: 회원 탈퇴 시 관련 도큐먼트 일괄 삭제를 트랜잭션으로 처리 → 데이터 정합성 확보
✨ 주요 기능
- 운동 루틴 생성 및 편집 (세트 수, 반복, 중량 설정)
- 운동 세션 기록 및 세트별 수행 정보 저장
- 주간 대시보드: 세션 진행률 및 완료율 시각화
- 운동 데이터 분석: 부위별 수행 빈도, 중량 변화 추이 등
📁 스키마 개요
- User: 이메일, 닉네임, 소셜 로그인 정보 포함. provider 조합으로 복합 인덱스 구성.
- Exercise: 운동 이름, 부위, 설명, 영상 URL, 태그 포함.
- ExercisePlan: 사용자 루틴 정의 (운동 항목 + 세트 구성).
- ExerciseSession: 실제 수행 기록. 세트별 reps, weight, endTime 저장. 상태 추적 필드 포함.