아티클 /

풍동과 레이스 파일, 그 차이 0.8%

2026-09-21 · Lo U Ian

CdA라는 숫자는 발표하기는 싸고 검증하기는 비쌉니다. 시장에 나온 에어로 제품은 전부 하나씩 내걸지만, 그게 무엇과 대조해서 나온 값인지 알려 주는 곳은 거의 없어요.

그래서 제 숫자를 내놓습니다. 이 논쟁을 끝낼 수 있는 유일한 장비와 대조해서요.

2026년 1월, 풀 디스턴스를 8시간 17분에 완주하는 선수 Pengcheng Li가 레이스 장비를 들고 홍콩과기대 풍동에 들어갔습니다. 반년 뒤 그는 IRONMAN Hamburg를 뛰었고요. 저는 그 레이스의 파워 파일을 AeroPacer에 넣고, 엔진이 풍동 결과를 한 번도 보지 못한 상태에서 그의 전면 투영 면적을 역산하게 했습니다.

방법 CdA 조건
HKUST AAF 풍동 0.2123 m² 요각 0°, 45 km/h, 포스 밸런스, 두 번 반복
AeroPacer, 레이스 파일에서 역산 0.214 m² IRONMAN Hamburg 180 km, 4.3시간
차이 +0.0017 m², +0.8% 45 km/h에서 약 2 W

2와트. 이게 헤드라인이고, 이 글의 나머지 전부는 그 헤드라인을 곧이곧대로 받아들이면 안 되는 이유입니다.

장비가 맞는지가 전부를 결정합니다

풍동은 선수를 재는 게 아니에요. 특정한 장비 구성 안의 선수를 재는 것이고, 하나만 바꿔도 답이 달라집니다. 그러니 이 비교는 풍동에서의 구성이 실제로 레이스를 뛴 그 구성일 때만 정직한 비교가 됩니다.

풍동 당일 그는 여러 구성을 돌렸습니다. 레이스 당일과 맞아떨어지는 구성은 Trek 프레임, Van Rysel 헬멧, 앞 108에 뒤 디스크 휠, 골이 진 레그 커버, 새 원피스, 그리고 중요한 항목으로 일반 배번입니다. 이 짝짓기는 그가 함부르크에서 입고 있던 것으로 정해졌지, 어느 숫자가 가장 가깝게 나왔는지로 정해진 게 아니에요.

이게 중요한 이유는, 다른 구성 하나가 에어로 배번만 빼면 완전히 같았고 그 값이 0.2105였기 때문입니다. 그 구성과 비교하면 레이스 파일은 0.8%가 아니라 1.7% 차이가 나요. 둘 중 아무거나 인용할 수도 있었습니다. 레이스 당일 장비로 짝을 맞추는 게 유일하게 방어 가능한 규칙이고, 이번엔 마침 그 규칙이 손해가 아니었을 뿐이지만, 두 숫자가 모두 존재한다는 건 알고 계셔야 합니다.

풍동이 잰 것

한 점 측정입니다. 요각 0°, 45 km/h, 포스 밸런스, 고정 포지션. 두 번 돌렸고 두 번 다 0.2123이 나왔어요. 바로 이 재현성 때문에 풍동이 기준이 되는 겁니다.

그리고 곧 이야기하겠지만, 그것이 정확히 풍동이 진실의 전부가 될 수 없는 이유이기도 합니다.

레이스 파일이 잰 것

엔진이 푸는 건 모두가 쓰는 그 파워 방정식을 거꾸로 돌린 것입니다. 순방향이면 라이더의 공기저항을 알고 어떤 속도를 유지하는 데 필요한 파워를 구합니다. 역방향이면 파워와 속도를 알고 공기저항을 구하고요. 어려운 건 방정식이 아니에요. 어려운 건 실제 도로에서 네 가지가 방정식을 오염시킨다는 점입니다.

  1. 바람. 의미가 있는 건 라이더가 맞는 공기이지 대지 속도가 아닙니다. 관측소 바람은 10 m 높이에서 재니까 주행 높이로 환산해야 해요.
  2. 경사. 지구력 속도대에서는 경사가 1퍼센트포인트만 틀려도 공기저항 항이 통째로 묻힙니다.
  3. 포지션. 레이스 네 시간째인 선수는 풍동에서 잡았던 그 모양을 유지하지 못합니다.
  4. 드래프팅과 제동. 둘 다 방정식이 볼 수 없는 파워를 조용히 집어넣습니다.

엔진이 이에 대해 하는 일은 이렇습니다.

주행 전체를 고정 길이의 짧은 윈도우로 자르고, 파일이 얌전한 윈도우만 남깁니다. 속도가 안정적이고, 파워가 유효하고, 실제로 움직이고 있는 구간이요. 진행 방향이 꺾이는 윈도우는 버립니다. 코너는 포지션 변화와 제동을 동시에 뜻하니까요. 요각이 기준값을 넘는 윈도우도 버립니다. CdA는 요각의 함수라서, 요각이 낮은 표본만 같은 묶음에 들어갈 자격이 있거든요. 윈도우 앞뒤로 속도가 변했다면 그 운동에너지 차이를 힘의 균형에 되돌려 넣어서, 공기저항 항을 오염시키지 않게 합니다.

함부르크 파일에서는 이렇게 쓸 수 있는 윈도우 1058개가 남았습니다.

왕복 페어링

그다음이 진짜 일을 하는 부분입니다. 함부르크 바이크 코스는 같은 도로를 양방향으로 지나가기 때문에, 대부분의 윈도우에는 거울짝이 있어요. 같은 아스팔트 구간, 반대 방향이죠. 이 둘을 짝지어 평균을 내면 가장 큰 오차원 두 가지가 서로 상쇄됩니다. 한쪽 방향에서 조금 가파르게 읽힌 경사는 반대 방향에서 조금 완만하게 읽힙니다. 한쪽 방향에서 추정값을 예쁘게 만들어 주는 뒷바람은, 반대 방향에서는 추정값을 깎습니다. 둘 다 완벽하게 잴 필요가 없어요. 페어링은 절댓값에는 관심이 없고, 오차의 부호가 뒤집힌다는 사실만 보거든요.

1058개의 윈도우는 283개의 왕복 페어로 압축되었습니다. 발표한 추정값은 원본 윈도우가 아니라 이 페어들로 만들어진 값이에요.

에너지 폐합 교차 검증

완전히 별개인 두 번째 방법입니다. 경로가 출발점으로 되돌아와 고리를 닫는 구간에서는, 올라간 1미터가 곧 내려온 1미터이기도 해서 고리 전체로 보면 중력이 상쇄됩니다. 선수가 페달링으로 집어넣은 일은 공기저항과 구름저항으로 나올 수밖에 없고, 고리 전체의 에너지 수지를 한 번에 CdA에 대해 풀 수 있어요. 위에서 말한 윈도우 로직은 하나도 쓰지 않습니다.

이 방법이 돌려준 값은 0.234로, 페어링 추정값보다 약 9% 높았습니다. 예상했던 방향이에요. 네 시간 동안의 모든 제동은 에너지를 버리는데, 수지 계산은 그걸 공기 탓으로 돌리니까요. 저는 이 값을 부호와 자릿수를 확인하는 교차 검증으로 보고하는 것이지 경쟁하는 추정값으로 내놓는 게 아닙니다. 오히려 이 값이 더 낮게 나왔다면 걱정했을 거예요.

분포

페어링 추정값은 중앙값이고, 정직하게 읽는 방법은 분포와 함께 읽는 것입니다. 페어의 가운데 절반은 0.200에서 0.233 사이에 들어옵니다.

이 파일에만 해당하는 세부 사항이 하나 있습니다. 엔진은 파일마다 두 번 풉니다. 한 번은 그날 실측된 바람을 쓰고, 한 번은 바람이 없다고 보고 푼 뒤, 더 좁게 모이는 쪽을 채택해요. 함부르크에서 채택된 건 무풍 쪽이었습니다. 실측 바람을 넣으면 오히려 분포가 넓어졌거든요. 왕복 코스에서는 예상되는 결과입니다. 페어링 단계에서 바람은 이미 거의 상쇄되었으니까요.

0.2000.2100.2200.2300.240레이스 파일 중앙값 0.214에너지 폐합 0.234풍동 · 레이스 장비 0.2123풍동 · 에어로 배번 0.2105Kona 2024 전체 수지 0.205CdA(m²) · 청록색 띠 = 레이스 파일 추정값의 가운데 절반(IQR)
이 글에 나오는 모든 측정값을 같은 축 위에 놓은 그림입니다. 청록색 띠는 레이스 파일에서 얻은 283개 페어 추정값의 가운데 절반이에요. 실제로 뛴 구성에서의 풍동 값 0.2123은 그 띠 안에, 그것도 중앙값 가까이에 들어옵니다.

두 값은 애초에 같을 수 없었습니다

여기가 대부분의 에어로 마케팅이 건너뛰는 부분이고, 저 0.8%가 의미가 있는지를 결정하는 부분입니다.

풍동이 잰 건 하나의 포지션, 하나의 요각, 하나의 속도, 거치대 위에서, 한 번의 주행 시간만큼입니다. 레이스 파일이 담는 건 4.3시간이고, 그동안 그는 포지션을 수백 번 바꿨고, 그날이 준 모든 범위의 요각을 맞았고, 진짜 아스팔트 위를 달렸고, 지쳤습니다. 이건 같은 측정을 두 번 시도한 게 아니에요. 밀접하게 관련되어 있을 뿐, 서로 다른 두 양입니다.

만약 정확히 같게 나왔다면 올바른 반응은 축하가 아니라 의심입니다. 풍동 포지션을 네 시간 동안 완벽하게 유지하는 사람은 없어요.

그럼 0.8%로 무엇을 얻은 걸까요. 레이스 파일 역산 방법이 문제가 될 만큼 큰 계통 오차를 안고 있지는 않다는 것, 그리고 그의 레이스 중 평균 포지션이 풍동에 들고 간 포지션과 가깝다는 것입니다. 이건 진짜이고 쓸모 있는 결과예요. "AeroPacer는 0.8% 정확하다"는 뜻은 아니고, 그 문장은 제가 쓰지 않겠습니다.

이게 운이려면 무엇이 성립해야 하나

이만큼 가까운 숫자가 우연히 나올 수 있는 경로가 넷 있습니다. 그 넷을 전부 결과에 들이대 보세요.

선수 한 명은 선수 한 명일 뿐입니다. 이건 n = 1이에요. 검증 연구가 아니라 하나의 확인입니다. 검증 연구는 60개 레이스 백테스트이고, 이 사이트의 정확도 주장은 실제로 거기서 나옵니다.

점추정이 자기 자신의 분포보다 더 정밀합니다. 페어의 가운데 절반은 0.200에서 0.233까지, 중앙값의 약 15% 폭입니다. 점추정이 풍동 값의 0.8% 안에 떨어진 데에는 운의 몫이 있고, 데이터가 진짜로 떠받치는 주장은 더 약하고 더 쓸모 있는 쪽이에요. 풍동 값이 추정값 분포 안쪽에, 그것도 가운데 가까이에 넉넉히 들어온다는 것입니다.

구름저항과 무게는 가정이고, 공기저항과 서로 맞바꿔집니다. 이번 역산은 사람과 장비 합쳐 80 kg, Crr 0.0040을 썼습니다. 그의 레이스 속도에서 Crr이 0.0005만 틀려도(모르는 노면의 타이어에 대해서는 지극히 평범한 불확실성입니다) CdA 추정값은 약 0.005 움직입니다. 지금 축하하고 있는 그 차이의 세 배예요. 시스템 무게가 2 kg 틀리면 약 0.001 움직이고요. 이 일치는 그 밑에 깔린 가정보다 더 정밀합니다. 1% 이하의 에어로 결과를 발표하면서 구름저항을 무엇으로 가정했는지 말하지 않는 사람은, 할 말을 다 하지 않은 겁니다.

함부르크는 순한 파일입니다. 평지, 왕복, 길고 안정된 출력. 이 방법 입장에서는 거의 최선의 경우에 가까워요. 기복이 있는 코스, 드래프팅이 허용되는 레이스, 혹은 하루 종일 상체를 세우고 달린 선수라면 모두 더 나쁜 추정값이 나옵니다. 그리고 엔진은 그런 파일을 아무 일 없다는 듯 넘기지 않고 표시해 둡니다.

독립적인 시각 하나 더

그의 2024년 Kona를, 더 오래되고 거친 레이스 전체 에너지 방법으로 계산하면 0.205가 나왔습니다. 코스도 해도 계산도 다르고, 풍동보다 3.4% 낮은 값이에요.

같은 선수의 전면 투영 면적에 이르는 세 개의 독립적인 경로가, 세 대륙 분량의 도로와 실험실 하나에서 나와 모두 0.205에서 0.214 사이에 들어왔습니다. 어느 둘도 정확히 일치하지는 않아요. 그리고 셋 다 그가 어떤 유형의 라이더인지에 대해서는 같은 말을 합니다.

당신이 Pengcheng Li가 아니라면, 이게 무슨 뜻인가

할 수 있는 주장은 좁으니, 제가 할 수 있는 한 좁게 적겠습니다.

괜찮은 레이스 파일에서 CdA를 역산하면, 풍동 측정값과의 차이가 당신이 이미 확신하지 못하고 있는 것들(타이어, 진짜 시스템 무게)보다 작아질 만큼은 가까워집니다. 페이스 목표를 정하는 용도로는 그걸로 충분해요. 어떤 헬멧이 다른 헬멧보다 3 W 낫다고 판정하는 용도로는 충분하지 않고, 레이스 파일 한 개로 그게 되는 일은 앞으로도 없습니다. 누가 무엇을 팔든 마찬가지예요.

풍동은 돈과 예약 일정이 듭니다. 파워 파일은 공짜예요. 이미 갖고 계시니까요.

신뢰성에 대한 메모

  • 여기 나오는 모든 숫자는 풍동 리포트와, 그 파일에 대해 엔진이 저장해 둔 추정값에서 나왔습니다. 제게 유리한 쪽으로 반올림한 건 하나도 없어요. 0.8%는 0.2123에 대한 0.0017이고, 0.0017은 풍동의 공기에서 45 km/h일 때 약 2 W입니다.
  • 풍동 구성은 비교를 돌리기 전에 레이스 당일 장비에 맞춰 짝지었고, 다른 구성의 결과도 위에 공개했습니다.
  • 이 레이스 파일로 무언가를 맞춘 적은 한 번도 없습니다. 0.214를 낸 엔진 버전이 곧 이 사이트가 돌리는 버전이에요.
  • 윈도우의 정확한 길이, 진행 방향과 요각의 제외 기준값은 엔진 내부라서 공개하지 않습니다. 결과를 바꾸는 숫자는 전부 공개합니다. 윈도우 1058개, 페어 283개, 80 kg, Crr 0.0040, 중앙값 0.214, 가운데 절반 0.200에서 0.233, 에너지 폐합 0.234.
  • Pengcheng Li의 실명은 본인 동의를 받고 적었습니다. 그의 레이스 파일은 공개하지 않습니다.

← 전체 아티클