매크로 계산기
칼로리 목표에 따라 단백질·탄수화물·지방 섭취량을 계산합니다.
매크로 계산기는 칼로리 목표와 피트니스 목표를 기반으로 세 가지 다량 영양소 — 단백질, 탄수화물, 지방 — 의 일일 권장 섭취량을 계산합니다. 다량 영양소는 식품의 에너지 공급 성분입니다: 단백질은 그램당 4칼로리, 탄수화물은 그램당 4칼로리, 지방은 그램당 9칼로리를 제공합니다.
일일 칼로리 목표, 체중, 주요 피트니스 목표(지방 감소, 유지 또는 근육 증가)를 입력합니다. 도구는 증거 기반의 매크로 비율을 적용합니다: 근육 증가를 위해서는 더 높은 단백질 목표(체중 kg당 약 1.6-2.2g), 에너지를 위한 충분한 탄수화물, 적당한 지방 섭취를 처방합니다.
매크로 목표는 절대적인 규칙이 아닌 가이드라인입니다. 개인 반응은 다르며, 식품 선호도, 소화, 운동 스타일 모두 역할을 합니다. 많은 사람들은 몇 주 동안 매크로를 추적함으로써 엄격한 계산 없이도 직관적으로 잘 먹을 수 있는 충분한 영양 인식을 얻습니다.
자주 묻는 질문
코드 구현
def calculate_macros(weight_kg: float, height_cm: float, age: int,
sex: str, activity: float, goal: str) -> dict:
"""
Calculate TDEE and macronutrient targets using Mifflin-St Jeor BMR.
sex: 'male' or 'female'
activity: 1.2=sedentary, 1.375=light, 1.55=moderate, 1.725=active, 1.9=very active
goal: 'lose' (-500 kcal), 'maintain', 'gain' (+300 kcal)
"""
if sex == "male":
bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age + 5
else:
bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age - 161
tdee = bmr * activity
adjustment = {"lose": -500, "maintain": 0, "gain": 300}.get(goal, 0)
target_calories = tdee + adjustment
# Macro splits (lose: 40/35/25, maintain: 35/40/25, gain: 30/45/25)
splits = {"lose": (0.40, 0.35, 0.25), "maintain": (0.35, 0.40, 0.25), "gain": (0.30, 0.45, 0.25)}
p_ratio, c_ratio, f_ratio = splits.get(goal, (0.35, 0.40, 0.25))
protein_g = target_calories * p_ratio / 4
carbs_g = target_calories * c_ratio / 4
fat_g = target_calories * f_ratio / 9
return {
"bmr": round(bmr), "tdee": round(tdee),
"target_calories": round(target_calories),
"protein_g": round(protein_g), "carbs_g": round(carbs_g), "fat_g": round(fat_g),
}
r = calculate_macros(70, 175, 30, "male", 1.55, "lose")
print(f"BMR : {r['bmr']} kcal")
print(f"TDEE : {r['tdee']} kcal")
print(f"Target Calories : {r['target_calories']} kcal")
print(f"Protein : {r['protein_g']} g")
print(f"Carbs : {r['carbs_g']} g")
print(f"Fat : {r['fat_g']} g")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.