칼로리 계산기(TDEE) 핵심 로직: BMR·활동계수·감량/증량 권장 칼로리 계산
체중 관리에서 가장 먼저 필요한 건 의지가 아니라 기준선 숫자입니다.
이번에 추가한 칼로리 계산기(TDEE)는 신체 정보와 활동량을 입력하면 BMR/TDEE를 계산하고, 감량·유지·증량 목표 칼로리를 즉시 제안합니다.
- 도구 바로가기: 칼로리 계산기(TDEE)
핵심 로직 요약
- BMR 계산: Mifflin-St Jeor 공식
- TDEE 계산: BMR × 활동계수
- 목표별 칼로리: 감량/유지/증량 범위 제시
- 매크로 가이드: 단백질·지방 최소치를 먼저 배정하고 탄수화물 계산
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로 즉시 사용성 확보