weneedstress
최근 수정 시각: 2026-08-28 22:24:49
1. 개요
weneedstress는 운동·식단·신체를 한 앱에서 기록하는 개인 건강 트래커 PWA다. 세트 단위로 무게·횟수·시간·거리·RPE를 남기고, 끼니마다 먹은 것을 담고, 체중과 부위 변화를 추적한다.
이름이 재미있는데, 스트레스가 필요하다는 뜻이다 — 근육은 부하 없이 자라지 않는다.
이 앱은 jacemaster의 운동·식단 탭의 원본이기도 하다. 2026-06-08에 jacemaster가 이 앱의 스키마와 데이터를 복사해 셸 안에 네이티브로 다시 구현했는데, 그때 규약이 원본 무변경이었다 — 읽기만 하고 쓰지 않는다. 그래서 지금도 독립 앱과 통합 모듈이 나란히 산다. 통합 과정에서 원본의 제공량 환산 버그가 발견돼 jacemaster 쪽에서 고쳐지기도 했다.
2. 핵심 기능
- 운동 — 세션 기록과 상세, 워크아웃 템플릿, 종목 관리, 이력, PR 후보. 세트마다 워밍업·드롭세트·실패·일반 태그를 붙인다.
- 식단 — 끼니 기록, 음식 보관함(즐겨찾기·사용 횟수), 레시피, 이력.
- AI 식단·제품 분석 — 사진을 올리면 Gemini가 음식과 예상 제공량, 총 영양소를 추정한다. 결과를 손으로 다듬은 뒤 바로 끼니에 추가하거나 음식 보관함에 등록한다. 제품 라벨 분석 경로도 따로 있다.
- 식단 내보내기 — 하루 요약을 공유용 카드로 굽는다. 정보 밀도, 매크로 색상, 음식 썸네일, 한 줄 메모를 골라 PC·모바일 아트보드로 뽑는다.
- 통계 — 일별 칼로리 흐름, 목표 준수율, 자주 먹는 음식, 주간 운동량, 최근 4주 세트 점유율, 추정 1RM 상위, 최근 12개 체중.
- 신체·캘린더 — 체중 추이와 부위 변화, 그리고 운동 플랜을 예정·완료·건너뜀으로 표시하는 달력.
- 오프라인 PWA — 서비스 워커와 오프라인 셸.
3. 기술 스택
| 영역 | 기술 |
|---|---|
| 웹 | SvelteKit 2 + Svelte 5 + TypeScript, Tailwind 4, chart.js |
| ORM | Drizzle |
| 저장 | Cloudflare D1(기록) + R2(식단 사진) |
| 인증 | better-auth (자체 계정) |
| AI | Google Gemini — 식단·제품 사진 분석 |
| 호스팅 | Cloudflare Pages |
4. 개발 배경
운동 기록 앱도, 식단 앱도, 체중 앱도 이미 세상에 널려 있다. 문제는 셋이 따로 논다는 것이다. 이번 주에 얼마나 들었는지와 이번 주에 뭘 먹었는지를 나란히 놓고 보려면 앱을 세 번 열어야 했다.
weneedstress는 그 셋을 한 데이터베이스에 담는다. 그래서 통계 화면에서 "주간 운동량"과 "일별 칼로리 흐름"이 같은 화면에 있고, 그게 이 앱을 만든 이유의 거의 전부다.
식단 사진 분석은 나중에 붙은 기능인데, 실제로는 이게 앱을 계속 쓰게 만든다. 먹은 걸 손으로 입력하는 일은 사흘이면 그만두게 되지만, 사진 한 장은 계속 찍게 된다.
5. 링크
- 라이브: weneedstress.pages.dev
- GitHub: architectofthoughts/weneedstress
6. 관련 문서
- jacemaster — 이 앱을 이식해 품은 통합 허브
- JaceApps 대문