← 블로그

칼로리 추적의 수학

모든 칼로리 트래커는 당신을 대신해 계산합니다. 대부분은 그 식을 보여주지 않습니다. 여기에는 그 식들을, 계산 예시와 함께, 순서대로 담았습니다. 앞의 내용이 뒤의 내용의 바탕이 됩니다.

이 글은 계산의 다섯 층을 다룹니다. 기초 대사가 어떻게 추정되는지, 그 추정치가 어떻게 일일 에너지 목표가 되는지, 앱이 실제 데이터로 당신의 실제 소비량을 어떻게 학습하는지, 부분 섭취할 때 음식 항목이 어떻게 비례 조정되는지, 그리고 칼로리 적자가 어떻게 지방과 제지방 손실로 이어지는지입니다. 모든 수치는 하나의 방정식까지 추적할 수 있습니다. 모든 방정식은 인용된 출처까지 추적할 수 있습니다.

5단계 방정식 스택: BMR은 formula TDEE로 이어지고, 이것이 실제 데이터의 adaptive TDEE로 정교해진 뒤, deficit로 변환되고, 마지막으로 body composition 변화로 예측됩니다

Layer 1: BMR estimation

당신의 기초 대사율(Basal Metabolic Rate)은 완전히 휴식한 상태에서 몸이 소비하는 에너지입니다. 가만히 누워 있고, 깨어 있으며, 온도가 중립적인 방 안에 있는 상태입니다. 이는 전체 일일 소비량의 대략 60-70%를 차지합니다.

가장 널리 검증된 공식은 Mifflin-St Jeor(1990)입니다.

BMR (male)   = 10 x weight(kg) + 6.25 x height(cm) - 5 x age + 5
BMR (female) = 10 x weight(kg) + 6.25 x height(cm) - 5 x age - 161

각 항은 생리적 관계를 반영합니다. 몸집이 클수록 더 많은 에너지를 소비합니다(체중 항의 영향이 가장 큽니다). 키가 클수록 표면적과 대사적으로 활성인 조직이 더 많습니다. 대사는 나이가 들수록 감소합니다. 성별 보정값은 평균적인 체성분 차이를 반영합니다.

계산 예시. 30세 남성, 82 kg, 178 cm:

10 x 82   = 820
6.25 x 178 = 1,112.5
5 x 30    = 150
sex offset = +5

BMR = 820 + 1,112.5 - 150 + 5 = 1,787.5 kcal

이는 집단 평균입니다. Mifflin-St Jeor는 498명을 대상으로 한 간접 열량측정 데이터에서 도출되었습니다. 개인 단위에서는 표준 오차가 대략 ±200 kcal이며, 이는 같은 신체 정보를 가진 두 사람의 BMR이 400 kcal까지 다를 수 있다는 뜻입니다. 이 공식은 당신의 개인 측정값이 아니라 종 모양 분포의 중심을 줍니다.

출처: Mifflin, M.D. 외. "A new predictive equation for resting energy expenditure in healthy individuals." American Journal of Clinical Nutrition, 1990.

Layer 2: from BMR to TDEE

BMR은 바닥값입니다. 총 일일 에너지 소비량(TDEE)은 그 외의 모든 것을 더합니다. 걷기, 일하기, 운동하기, 음식을 소화하기, 몸을 가만히 못 두는 동작까지 포함됩니다. 전통적인 방식은 BMR에 활동 계수를 곱합니다.

Activity LevelMultiplierWhat it actually means
Sedentary1.200책상 업무, 거의 걷지 않음
Lightly Active1.375~8,000 steps/day 또는 가벼운 운동 주 2회
Moderately Active1.550~10,000 steps + 저항 운동 주 3회
Active1.725육체노동 또는 훈련 주 5회
Very Active1.900매일 강도 높은 훈련 + 활동적인 생활

계산 예시의 경우(BMR = 1,788 kcal, Lightly Active):

TDEE = 1,788 x 1.375 = 2,458 kcal

문제는 한 번 보면 바로 보입니다. 단계 간 차이는 0.175이고, BMR이 1,788일 때 이는 약 310 kcal 차이입니다. 바나나 하나에 땅콩버터 한 스푼을 더한 수준입니다. 활동 수준을 잘못 고르면(대부분 그렇게 합니다), 첫 식사를 기록하기도 전에 TDEE 추정치가 수백 칼로리씩 빗나갑니다.

더 큰 문제는 이 계수들이 NEAT(Non-Exercise Activity Thermogenesis), 즉 안절부절, 자세 변화, 서성거림, 집안일을 담아내지 못한다는 점입니다. NEAT만으로도 신체 정보와 운동 습관이 같은 사람들 사이에 하루 700 kcal 이상 차이가 날 수 있습니다.

BMR / TDEE 계산기

성별

체중 항--
키 항--
연령 항목--
성별 보정--

기초대사량--

활동량--

TDEE--

Layer 3: adaptive TDEE

정적 공식은 당신과 비슷한 사람이 아마 얼마나 소비하는지를 추정합니다. Adaptive TDEE는 실제로 당신이 얼마나 소비했는지를 계산합니다. 당신의 몸에서 일어난 변화로 거꾸로 풀어내는 방식입니다.

핵심은 간단합니다. 섭취한 칼로리와 체중 변화만 알면, 소비량을 구할 수 있습니다.

The algorithm

28일 데이터 구간이 주어졌다고 가정합니다.

Step 1. 기록된 날의 칼로리 섭취량만 평균냅니다. 식단 기록이 없는 날은 완전히 제외합니다. 0으로 계산하지 않습니다.

Step 2. 일일 체중 기록은 7일 Exponential Moving Average로 부드럽게 만들어 물, 글리코겐, 나트륨 잡음을 걸러냅니다. 그런 다음 부드러워진 시계열에 최소제곱 선형회귀를 적용합니다. 기울기가 당신의 실제 체중 추세(kg/day)입니다.

Step 3. 체중 기울기를 칼로리로 변환합니다.

caloric impact = daily weight slope x 7,700 kcal/kg

7,700 kcal/kg 수치는 체조직의 에너지 밀도에 대한 표준 근사값입니다. 지방은 약 7,700, 제지방은 약 1,800의 가중 혼합으로 봅니다.

Step 4. TDEE를 추정합니다.

TDEE = average daily intake - caloric impact

체중이 줄고 있다면 칼로리 효과는 음수이므로 TDEE가 섭취량보다 높게 나옵니다. 체중이 늘고 있다면 더 낮게 나옵니다. 체중이 안정적이라면 TDEE는 섭취량과 같습니다.

Step 5. 일일 보정값은 이전 추정치에서 ±100 kcal로 제한합니다. 이렇게 하면 잡음이 큰 데이터가 지나치게 흔들리는 것을 막습니다.

Worked example

다음은 주당 약 0.3 kg 감량 중인 사람의 실제 28일 데이터입니다.

DayWeight (kg)EMA (kg)CaloriesTracked?
182.382.302,180Yes
482.582.352,210Yes
781.882.152,050Yes
1082.081.96--No
1481.781.722,100Yes
2180.981.122,180Yes
2481.080.932,120Yes
2880.780.722,050Yes

28-day adaptive TDEE example: raw weight dots bounce around while the EMA line reveals a clear downward trend, with a regression line showing -0.042 kg per day

계산은 이렇습니다.

Average intake (tracked days): 2,150 kcal/day
EMA weight slope (regression): -0.042 kg/day
Caloric impact: -0.042 x 7,700 = -323 kcal/day
Estimated TDEE: 2,150 - (-323) = 2,473 kcal

이 수치는 당신의 실제 대사를 반영합니다. NEAT, 적응, 유전, 모든 요소가 들어갑니다. 활동 수준을 추측할 필요가 없습니다.

Why 28 days

일일 체중은 수분 저류, 글리코겐 저장량, 위장관 내 음식 무게, 나트륨 섭취 때문에 ±1 kg까지 흔들립니다. 주당 0.5 kg 감량하는 사람에게 14일 동안 기대되는 신호는 약 1 kg이며, 이는 잡음 바닥을 겨우 넘는 수준입니다. 28일 구간은 같은 잡음 위에서 약 2 kg의 신호를 담아내므로, 신호 대 잡음비를 대략 두 배로 높입니다.

윈도우 길이, EMA 평활화, 수렴 특성에 대한 자세한 내용은 Why Your TDEE Calculator Is Probably Wrong를 보세요.

Layer 4: macro scaling

음식 항목을 기록할 때, 당신은 데이터베이스에 있는 정확한 1회 제공량을 먹는 경우가 거의 없습니다. Macro scaling은 모든 값을 비례적으로 조정하는 계산입니다.

scaling factor = consumed amount / serving size

모든 매크로가 같은 배율로 곱해집니다. 선형 스케일링입니다.

계산 예시. 귀리 데이터베이스 항목: 100g 1회 제공량, 389 kcal, 단백질 13.2g, 탄수화물 66.3g, 지방 6.9g. 당신은 45g을 먹었습니다.

factor = 45 / 100 = 0.45

calories: 389 x 0.45 = 175.1 kcal
protein:  13.2 x 0.45 = 5.9g
carbs:    66.3 x 0.45 = 29.8g
fat:      6.9 x 0.45 = 3.1g

이건 단순하지만, 사람들을 헷갈리게 하는 미묘한 점이 있습니다. 매크로 합계가 항상 칼로리와 맞아떨어지지는 않습니다.

Atwater 계수(단백질 4 kcal/g, 탄수화물 4 kcal/g, 지방 9 kcal/g)는 근사값입니다. 실제 값은 식품마다 다릅니다. 식이섬유는 대략 2 kcal/g, 알코올은 7 kcal/g 정도를 제공하지만, 둘 다 표준 매크로는 아닙니다. 식품 데이터베이스가 총 칼로리와 매크로를 함께 표시할 때, 이 값들은 서로 독립적인 실험실 측정에서 나온 경우가 많습니다. 각 매크로를 소수 첫째 자리까지 반올림하고 Atwater 계수를 적용하면, 합계가 표시 칼로리와 1회 제공량당 5-15 kcal 차이날 수 있습니다. 이 차이는 하루 전체 기록에서 누적됩니다.

이건 버그가 아닙니다. Atwater 체계의 본질적인 부정확성입니다. 총 칼로리 수치는 매크로를 더한 값보다 더 정확합니다. 총 칼로리는 폭열량계나 일반성분 분석으로 직접 측정되기 때문입니다.

Layer 5: deficit math and body composition

에너지 균형 방정식:

weight change = (intake - expenditure) / energy density of tissue

하루 500 kcal 적자는 표준 7,700 kcal/kg를 사용하면 주당 0.45 kg 감량을 만들어야 합니다. 하지만 그 수치는 잃는 체중이 전부 지방이라는 가정에 기대고 있습니다. 현실은 다릅니다.

Forbes/Hall model은 체지방량에 따라 감량분이 지방과 제지방 중 어느 쪽으로 얼마나 배분되는지 예측합니다.

P-ratio = fat mass / (fat mass + 10.4)

P-ratio는 체중 변화 중 지방에서 오는 비율입니다. 상수 10.4는 체성분 연구에서 경험적으로 도출된 값입니다(Forbes 1987, Hall 2007에서 보정).

체지방이 높을수록 P-ratio가 높아져 감량의 더 큰 부분이 지방에서 나옵니다. 체지방이 낮을수록 제지방이 더 많이 희생됩니다. 그래서 체지방률이 낮은 상태에서 공격적인 적자를 거는 것은 비효율적입니다. 수학적으로 불리합니다.

계산 예시. 체지방률 22%인 80 kg 사람이 하루 500 kcal 적자를 유지할 때:

Fat mass:       80 x 0.22 = 17.6 kg
P-ratio:        17.6 / (17.6 + 10.4) = 0.629
Mixed density:  0.629 x 7,700 + 0.371 x 1,800 = 5,510 kcal/kg
Daily loss:     500 / 5,510 = 0.091 kg/day
Daily fat loss: 0.091 x 0.629 = 0.057 kg/day
Weekly total:   0.64 kg
  of which fat: 0.40 kg (63%)
  of which lean: 0.24 kg (37%)

P-ratio outcome: a 500 kcal deficit at 22% body fat produces 0.64 kg per week of total loss, split 63% fat and 37% lean, not 0.45 kg of pure fat

주당 0.45 kg의 순수 지방 감량이 아닙니다. 실제 수치는 출발점에 따라 달라집니다.

체지방률 35%에서는 P-ratio가 0.77로, 감량의 거의 80%가 지방입니다. 체지방률 12%에서는 0.54로 떨어져, 감량의 거의 절반이 제지방입니다. 같은 적자라도, 몸이 다르면 결과도 다릅니다.

P-Ratio 계산기

%

체지방량--
제지방량--
P-비율--
혼합 밀도--
일일 합계--
일일 지방--
일일 린--

주간 합계--
그중 지방--
그중 살코기--

출처: Forbes, G.B. "Lean body mass-body fat interrelationships in humans." Nutrition Reviews, 1987. Hall, K.D. "Body fat and fat-free mass inter-relationships." British Journal of Nutrition, 2007.


앱에서 이걸 어디서 보게 되나

이 식들은 Onyx Tenet 안에서 실행됩니다. 실제 화면에서는 이렇게 보입니다.

TDEE 카드에는 공식 추정치와 적응값이 함께 표시되고, 신뢰 배지와 데이터 커버리지 통계가 함께 나옵니다. TDEE Trajectory 차트는 추정치가 시간에 따라 어떻게 변해 왔는지 보여줍니다. 이 예시에서는 adaptive TDEE(2,163 kcal)가 formula estimate(2,172 kcal)와 거의 일치하며, 26회의 체중 측정과 28일의 기록으로 확인됩니다.

Onyx Tenet TDEE 카드. 적응된 TDEE 2,163 kcal, HIGH 신뢰도 배지, 공식 추정치 2,172 kcal, Watch 보정 계수, 30일 TDEE 추세 차트 표시

주간 요약은 Layer 5의 에너지 균형 방정식을 적용합니다. 평균 섭취량(1,991 kcal)에서 평균 TDEE(2,254 kcal)를 빼면 하루 적자는 263 kcal이고, 이는 주당 -0.24 kg의 체중 변화로 이어집니다. 아래 세부 내역에서는 매일의 매크로를 볼 수 있습니다.

Onyx Tenet 주간 요약: 평균 섭취량 1,991 kcal, 평균 TDEE 2,254 kcal, 하루 263 kcal 적자, 예상 체중 변화는 주당 -0.24 kg입니다

모든 수치는 위의 방정식 중 하나로 이어집니다. 블랙박스는 없습니다.

Onyx Tenet의 Adaptive TDEE는 무료입니다. 기록과 체중 측정을 약 4주간 하면 자동으로 활성화됩니다. 구독은 필요 없습니다.

관련 기사