체중 관리에서 가장 먼저 필요한 건 의지가 아니라 기준선 숫자입니다.
이번에 추가한 칼로리 계산기(TDEE)는 신체 정보와 활동량을 입력하면 BMR/TDEE를 계산하고, 감량·유지·증량 목표 칼로리를 즉시 제안합니다.

핵심 로직 요약

  1. BMR 계산: Mifflin-St Jeor 공식
  2. TDEE 계산: BMR × 활동계수
  3. 목표별 칼로리: 감량/유지/증량 범위 제시
  4. 매크로 가이드: 단백질·지방 최소치를 먼저 배정하고 탄수화물 계산

1) BMR 계산

성별에 따라 다음 공식을 사용합니다.

  • 남성: 10*w + 6.25*h - 5*a + 5
  • 여성: 10*w + 6.25*h - 5*a - 161

(단위: w=kg, h=cm, a=age)

2) TDEE 계산

활동계수(activity factor)를 곱해 유지 칼로리를 계산합니다.

  • 좌식: 1.2
  • 가벼운 활동: 1.375
  • 보통 활동: 1.55
  • 높은 활동: 1.725
  • 매우 높은 활동: 1.9

TDEE = BMR * 활동계수

3) 감량/증량 권장 칼로리

초기 적용이 쉬운 범위로 다음 값을 함께 표시합니다.

  • 감량(보수): TDEE * 0.85
  • 감량(적극): TDEE * 0.80
  • 증량(린 벌크): TDEE * 1.06
  • 증량(적극): TDEE * 1.12

4) 매크로 가이드(유지 칼로리 기준)

  • 단백질: 체중 * 1.8g
  • 지방: 체중 * 0.8g
  • 탄수화물: 남는 칼로리 / 4
const proteinG = weight * 1.8;
const fatG = weight * 0.8;
const carbG = (tdee - (proteinG * 4 + fatG * 9)) / 4;

예외 처리

  • 나이(10~100), 키(120~230), 몸무게(25~250) 범위 검증
  • 입력값 누락 시 결과 영역 초기화
  • 복사 API 실패 시 폴백(execCommand('copy')) 적용
  • 단백질/지방 최소치만으로 유지칼로리를 거의 채우는 케이스에서 탄수화물 값이 낮게 나올 수 있음을 안내

30분 개선 포인트: 주간 변화 속도 안내 추가

같은 TDEE 숫자라도 체감이 어려운 경우가 많아, 결과 안내문에 다음 참고치를 추가했습니다.

  • 보수 감량: ((TDEE - TDEE*0.85) * 7) / 7700
  • 린 증량: ((TDEE*1.06 - TDEE) * 7) / 7700

즉, 단순히 하루 칼로리만 보여주는 게 아니라 주당 어느 정도 변화 속도를 기대할 수 있는지까지 같이 보여주도록 개선했습니다.

내부 링크

요약

이번 칼로리 계산기 로직의 핵심은 다음입니다.

  • BMR과 TDEE를 분리 계산해 기준선 명확화
  • 감량/증량을 단일 값이 아닌 범위로 제시
  • 매크로를 실전 입력 가능한 g 단위로 안내
  • 입력 검증 + 복사 UX로 즉시 사용성 확보