무료 생체 나이 계산기를 만들었습니다 — 18가지 입력 항목, 2분 소요, 혈액 검사 없음
핵심 요약
- dorsi.ai/biological-age-calculator를 새로 출시했습니다 — 무료 생체 나이 추정 도구: 18가지 자가 보고 입력 항목, 2분 소요, 가입 없음, 이메일 불필요, 혈액 검사 없음. 사용자의 데이터는 브라우저를 절대 벗어나지 않습니다.
- 14편의 동료 평가(peer-reviewed) 코호트 연구에 근거합니다 (Aune 2016 BMJ, Nes 2011 MSSE, Mandsager 2018 JAMA Network Open, Saeidifard 2019, Paluch 2022 Lancet Public Health, Windred 2024 SLEEP, Doll 2004 BMJ 등). 모든 계수는 클릭하여 바로 확인할 수 있는 연구 논문으로 연결됩니다.
- 결과는 단일 나이 수치로만 끝나지 않습니다 — 신체 조성, 심혈관 체력, 근력 및 활동성, 수면 및 회복, 생활 습관 등 5개 영역별 세부 분석을 제공합니다. 이 세부 분석은 어떤 생활 습관 요인이 가장 큰 개선 레버인지 알려주며, 이는 실제로 변화를 만들어내는 핵심 요소입니다.
- 점수 측정 엔진은 MIT 라이선스로 공개된 오픈소스입니다: github.com/YusongCui/biological-age-calculator. 임의의 AI 어시스턴트가 동일한 알고리즘을 실행할 수 있도록 Claude Code / Codex CLI 스킬로 패키징했으며, 모든 앱에 내장할 수 있는 순수 JS 모듈로도 제공합니다. 모든 계수를 검토해 보세요. 제시된 기준표에 동의하지 않는다면 포크(fork)하여 수정하실 수 있습니다.
- 저희는 혈액/DNA 시계를 개발하지 않았으며, 그와 같다고 주장하지도 않습니다. PhenoAge나 GrimAge 수준의 정확도를 원하신다면 200~500달러 상당의 검사실 검사(TruDiagnostic, NOVOS)가 필요합니다. 저희가 구현한 것은 최선의 무료 출발점이며, "현재 나의 상태"를 파악하는 첫 신호이자 중재 방향을 설정하는 도구로서 유용합니다.
개발 배경
2주 전, 저희는 생체 나이가 실제로 계산되는 방식에 대해 심층적으로 다루었습니다. 당시 확인한 내용을 요약하면 다음과 같습니다:
- 골드 표준 시계(GrimAge, DunedinPACE)는 200~500달러의 DNA 메틸화 검사와 병원 방문이 필요합니다. 대부분의 사람들은 이 검사를 받을 일이 없습니다.
- 무료 또는 저렴한 대안들은 두 부류로 나뉩니다. 한 부류는 솔직하게 제공합니다(Garmin의 피트니스 나이 = VO₂max 재포장, Apple의 유산소 피트니스 = 동일 방식). 다른 부류는 자체 점수를 마케팅 용어로 포장한 뒤 신뢰를 요구합니다("생체 나이", "웰니스 점수", "바이탈리티 지수" — 내부 알고리즘은 모두 정의되어 있지 않음).
- 하지만 누구도 제대로 구축하지 않은 중간 지대가 있었습니다. 누구나 2분 만에 자가 보고할 수 있는 입력 항목을 사용하고, 각 가감된 연수가 정확히 어디서 유래했는지 투명하게 공개하며, 근거가 명확하고 출처가 인용된 무료 추정 도구입니다.
그래서 직접 만들었습니다. dorsi.ai/biological-age-calculator는 무료이며, 가입이나 이메일 제출이 필요 없고, 입력 데이터에 대한 어떠한 분석 수집도 진행하지 않습니다. 점수 측정 엔진을 검증하거나 재사용할 수 있도록 MIT 라이선스 기반 오픈소스로 공개되어 있습니다.
입력 항목
질문 순서에 따라 5개 영역으로 분류된 18가지 입력 항목은 다음과 같습니다:
기본 정보 (여러 영역에서 활용됨)
- 나이, 성별, 신장, 체중
신체 조성 — Aune 2016 BMJ (BMI U자형 관계) + Janssen 2004 AJCN (BMI와 독립적인 허리둘레)
- 허리둘레
심혈관 체력 — Nes 2011 MSSE (비운동 기반 VO₂peak 회귀) + Aune 2017 BMC Med (안정시 심박수 → 사망률) + Mandsager 2018 JAMA Network Open (VO₂max → 사망률)
- 안정시 심박수
- 주당 유산소 운동 횟수
- 평균 운동 시간
- 일반적인 운동 강도 (낮음 / 보통 / 높은 강도)
근력 및 활동성 — Saeidifard 2019 Eur J Prev Cardiol (근력 → 사망률) + Paluch 2022 Lancet Public Health (일일 걸음 수) + Patterson 2018 Eur J Epidemiol (좌식 시간)
- 주당 근력 운동 횟수 (0회 / 1회 / 2회 / 3회 이상)
- 일일 걸음 수 구간 (<5천 / 5천–8천 / 8천–1만 / 1만 이상)
- 일일 좌식 시간 (시간)
수면 및 회복 — Yin 2017 J Am Heart Assoc (수면 시간 U자형 관계) + Windred 2024 SLEEP (수면 시간보다 수면 규칙성이 더 강한 영향력)
- 평균 수면 시간
- 수면 규칙성 (1–5점, 5점은 "취침 시간과 기상 시간이 매우 일정함")
생활 습관 — Doll 2004 BMJ (흡연) + GBD 2018 Lancet (음주) + Estruch 2018 NEJM PREDIMED (식단) + Cohen 2007 JAMA (스트레스)
- 흡연 상태 (비흡연 / 과거 흡연 / 현재 흡연 + 현재 흡연 시 일일 개비 수)
- 주당 음주 횟수/잔 수
- 식단 품질 (1–5점)
- 스트레스 수준 (1–5점)
양식 상단에는 단위 전환 스위치(미터법 / 야드파운드법)가 있으며, 설정은 localStorage에 저장됩니다. 슬라이더에는 현재 값과 함께 짧은 정성적 설명(3 — 보통, 4 — 일관됨)이 표시되므로 사용자가 무엇을 선택하고 있는지 항상 명확히 알 수 있습니다.
결과물
결과는 단순한 단일 숫자가 아닙니다. 단순 조회용이 아닌, 실질적으로 실행할 수 있도록 설계된 구조화된 세부 분석 결과를 제공합니다.
메인 결과 — X세 (추정치) 형태로 표시되는 주요 나이 수치이며, ±3세와 같은 형태는 사용하지 않습니다. 고정된 신뢰 구간을 의도적으로 표시하지 않는 이유는, 불확실성이 사용자가 정확히 답변할 수 있는 입력 항목과 각 영역이 개인 프로필에 기여하는 방식에 따라 달라지기 때문입니다. 정밀도를 명확히 알고 있는 것처럼 가장하는 것은 정직하지 못합니다.
종합 평가 블록 — 색상 테마 강조 상자:
- 실제 나이보다 젊음 (≥3년): "실제 나이보다 약 X세 젊습니다. 훌륭합니다 — 당신의 습관이 나이를 되돌려주고 있습니다. 계속 유지하세요. 아래 영역은 당신의 가장 강력한 강점을 보여줍니다. 이를 유지하고, 중립적인 항목 중 하나를 초록색 영역으로 올릴 수 있는지 찾아보세요."
- 실제 나이와 일치 (3년 이내): "실제 나이 수준을 유지하고 있습니다. 인구 평균 수준입니다. 아래 영역은 더 앞서 나갈 수 있는 부분을 보여줍니다 — 가장 비중이 큰 중립 항목을 선택해 초록색으로 바꿔보세요."
- 실제 나이보다 많음 (≥3년): "실제 나이보다 약 X세 많습니다. 당황하지 마세요 — 이 숫자는 빠르게 개선될 수 있는 종류입니다. 아래의 주황색 항목을 확인해 보세요. 가장 비중이 큰 항목이 당신의 가장 강력한 개선 레버입니다. 연구 문헌에 따르면 수면 규칙성, 일일 걸음 수, 금연이 가장 빠른 변화를 이끌어냅니다."
영역별 세부 분석 — 이 부분이야말로 계산기를 실제로 유용하게 만드는 핵심입니다. 5개 영역 각각에 대해 다음 항목이 제공됩니다:
- 가로 크기 막대 (음의 변화량/우수한 경우 청록색, 양의 변화량/나이가 더해지는 경우 주황색)
- 부호가 포함된 연수 값 (
+1.5년또는−6.0년) - 사용자의 실제 입력값을 기반으로 생성된 한 줄 산출 근거
예를 들어, 일반적인 입력 항목 조합에서는 다음과 같이 표시될 수 있습니다:
신체 조성 +1.5년 BMI 25.5 (과체중, +0.5년) ·
허리둘레 92 cm (WHO 1차 위험 기준값, +1년).
심혈관 체력 −6.0년 추정 VO₂max 52 mL/kg·min, 동연령·성별
기준값 42를 크게 상회 ·
안정시 심박수 55 bpm (정상 범위 내).
근력 및 활동성 −1.5년 근력 운동 주 2회 (−1.5년) ·
일일 8천~1만 걸음 (−1년) ·
좌식 6.0시간 (보통, +0.5년).
수면 및 회복 +0.5년 수면 7.5시간/일 (적정 7–8시간 구간, 0년) ·
규칙성 4/5 (일관됨, −0.5년).
생활 습관 −2.0년 흡연: 비흡연 (0년) ·
음주 주 4회/잔 (소량, +0.3년) ·
식단 품질 4/5 (−1년) ·
스트레스 2/5 (0년).
바로 여기에 가치가 있습니다. 메인 나이 숫자는 관심을 끄는 요소일 뿐이며, 행별 세부 분석이야말로 내일부터 실제로 무엇을 해야 하는지를 알려줍니다.
무료 PDF 결과 저장 — A4 1페이지 분량, 약 12 KB로, 영역별 산출 근거를 포함하여 위의 모든 내용을 정돈해 보여줍니다. 다운로드 시 가입이 필요하지 않습니다.
의도적으로 제외한 기능
저희가 의도적으로 구현하지 않은 몇 가지 사항과 그 이유는 다음과 같습니다:
- CTA 없음, 이메일 차단벽 없음, 대기열 유도 없음. 순수한 SEO 및 브랜드 자산입니다. 저희는 전환 파이프라인 최적화가 아닌, 품질과 인용의 깊이에 승부를 걸었습니다.
- 메인 숫자 옆에 고정된
±X년신뢰 구간을 두지 않음. 허위 정밀도를 암시하는 것은 이 분야에서 가장 흔한 부정직함입니다. 제시된 수치는 추정치일 뿐입니다 — 숫자 옆에는 "추정치"라는 단어가 명시되어 있으며, 방법론 섹션에서 그 한계를 설명합니다. - "보충제 / 도서 / 코칭 구매" 업셀링 없음. 계산기는 계산기일 뿐입니다. 다른 부가 판매는 존재하지 않습니다.
- 달력상의 나이 시계이면서 생체 나이 시계인 척하지 않음. 1세대 DNAm 시계(Horvath, Hannum)는 훌륭한 과학적 성과지만 사망률이 아닌 달력상의 나이를 예측하도록 훈련되었습니다. 저희는 이러한 오류를 반복하지 않습니다.
잘못 활용할 경우의 주의사항
몇 가지 솔직한 주의사항입니다:
- 절대적인 수치는 최선의 경우에도 ±5년의 오차가 발생합니다. 자가 보고에 따른 편향은 실제로 존재하며, 특히 스트레스, 식단 품질, 수면 규칙성에서 더욱 그렇습니다. 무엇을 변경할지 결정할 때는 영역 간 상대적 순위를 활용하세요. 이 부분은 신뢰할 수 있습니다.
- 저희는 최선의 스케일링을 사용하여 위험비(hazard ratio)를 "연수"로 변환했습니다. 코호트 연구는 위험비를 제공합니다. 저희는 이를 5개 영역을 합산할 수 있는 연수 스케일로 매핑했습니다. 이 매핑은 타당하지만 유일한 정답은 아닙니다. 다른 팀이 입력값별 연수 값을 다소 다르게 설정하여 동일한 알고리즘을 재구성하더라도 두 방식 모두 논리적으로 방어 가능합니다.
- NTNU VO₂max 계수는 발표된 연구값의 약 3% 범위 내로 조정되었습니다. 이 계수들은 일반적인 입력값에 대해 생리학적으로 타당한 VO₂max 결과치를 생성합니다. 대략적인 추정을 넘어 오픈소스 라이브러리를 활용하려는 경우, Nes 2011 표 2(Table 2)와 대조하여 계수를 확인하세요.
- 인종적 편향. 인용된 연구의 대부분은 유럽계 혈통을 대상으로 진행되었습니다. 상대적 순위는 유효하지만, 비유럽계 사용자의 경우 절대적 연수에 약간의 오차가 있을 수 있습니다.
- 이 도구는 임상 진단용이 아닙니다. 웰니스 및 교육 목적으로 설계되었습니다. 결과에 우려되는 부분이 있다면 전문 의료진과 상담하세요.
오픈소스 — 포크, 코드 확인, 어디서나 실행 가능
점수 측정 엔진은 MIT 라이선스 하에 github.com/YusongCui/biological-age-calculator에 공개되어 있습니다.
제공되는 구성 요소:
lib/scoring.js— 메인 점수 측정기 + 영역별 산출 근거 생성기, ES 모듈, 모든 Node 16+ 환경 또는 브라우저에서 실행 가능. 약 370행, 외부 의존성 없음(zero dependencies).lib/ntnu-fitness.js— Nes 2011 PA-R 계산기 및 VO₂peak 회귀식lib/vo2max-norms.js— ACSM 연령/성별 VO₂max 중앙값references/methodology.md— 모든 점수 측정표, 전체 알고리즘, 주석이 달린 NTNU 회귀식references/papers.md— 14편 논문 전체에 대한 DOI 포함 완전한 APA 인용문references/faq.md— 사용자용 Q&A 14개
또한 SKILL.md가 포함되어 있어, 임의의 AI 어시스턴트(Claude Code, Codex CLI 또는 agentskills.io 명세를 따르는 모든 시스템)에서 단 두 줄로 포터블 스킬로 설치할 수 있습니다:
# Claude Code (모든 프로젝트에 개인 설치)
git clone https://github.com/YusongCui/biological-age-calculator.git \
~/.claude/skills/biological-age-calculator
# Codex CLI
git clone https://github.com/YusongCui/biological-age-calculator.git \
~/.agents/skills/biological-age-calculator
설치 후 AI 어시스턴트는 "내 생체 나이는 몇 살인가요?" / "내가 실제 나이보다 빠르게 늙고 있나요?" / *"생체 나이를 낮추려면 어떻게 해야 하나요?"*와 같은 프롬프트를 인식하고, 웹 계산기와 동일한 알고리즘을 실행하여 영역별 근거와 함께 결과를 제공합니다. 전체 설치 지침은 README를 참조하시고, 대화에서 스킬이 실제로 작동하는 예시는 examples/example-conversation.md를 확인하세요.
직접 체험해 보세요
→ dorsi.ai/biological-age-calculator (웹, 2분 소요, 무료)
→ github.com/YusongCui/biological-age-calculator (오픈소스 점수 측정 엔진 + AI 스킬)
이 오픈소스 버전을 기반으로 iOS 앱, 챗봇, CGM 연동 도구, 자가 실험 대시보드 등을 구축하신다면 꼭 알려주세요. GitHub 리포지토리에 대한 PR은 언제나 환영하며, 특히 점수 측정표 중 하나에 대해 연구 문헌에 기반한 조정안이 있다면 더욱 감사하겠습니다.
내부적으로 어떤 과학적 원리가 작동하는지 — 3세대에 걸친 생체 나이 시계, PhenoAge와 GrimAge의 실제 구성 요소, DunedinPACE가 중재 효과 추적의 골드 표준인 이유 등 더 깊이 있는 과학적 배경이 궁금하시다면 저희의 생체 나이의 실제 계산 방식에 대한 가이드에서 모두 확인하실 수 있습니다.
관련 글
이제 시작해 볼까요?
App Store에서 Dorsi를 다운로드하고 훈련 결정을 간편하게 관리하세요.
App Store에서 다운로드