02. 두 번째 수업: 속도(Velocity) 와 속력(Speed) 의 절대값 해킹 로직

뉴스데스크를 보면 태풍 아나운서가 항상 말합니다. “태풍의 중심 풍속이 초당 50m 의 무시무시한 속력으로 불고 있습니다!!”

우리 실생활에서는 이 ‘속도(Velocity)’ 와 ‘속력(Speed)’ 이 똑같은 단어 동의어로 완전 오염되어 쓰이고 있습니다. 하지만 파이썬 물리 물리엔진 코딩 창에서 이 두 단어를 착각해 써먹으면 즉시 캐릭터가 맵 바깥으로 폭발해 삭제당합니다!


1. 속도 (Velocity): “나는 방향 앵글을 달고 산다!”

게임 자동차 계기판이 $\mathbf{+100}$을 찍고 있으면 내 차는 결승선을 향해 오른쪽 앞빵 전진으로 시속 100을 던지고 있는 스피드 전진 속도(Velocity) 입니다. 그런데 만약 내비게이션 속도 센서 변수값에 $\mathbf{-100}$ (마이너스) 이 떴습니다.

방금 전 1강에서 배웠듯이, 이 마이너스 기호(-) 의 뜻은 차가 느릿느릿 시체가 되어서 멈췄다는 게 아닙니다! 내 차 엔진 미터기 파워는 어마무시한 시속 100 엑셀을 밟고 있는데, 그 밟아서 터진 추진력 화살표 엔진 방향이 “다이렉트 완전 정차 후 뒤로 역주행 턴! (후진 기어 180도 회전)” 으로 지옥불 역주행 궤도를 거꾸로 미친 듯이 달리고 있다는 뜻입니다!

수학에서 기호 $+, -$ 는 숫자의 찌질함(크고 작음) 을 뜻하는 게 아니라, 기하학적 화살표(벡터) 가 동쪽으로 날아가는지 서쪽으로 뒤집혀 날아가는지를 표시하는 일종의 [나침반 기어 디스플레이] 일 뿐입니다.

2. 절댓값 필터 파이프라인: 속력 (Speed)

자, 그럼 경찰청 과속 단속 카메라 프로세서는 속도를 어떻게 스캔할까요? 경찰은 앞쪽으로 100 밟고 폭주하는 놈(+100) 이든, 지 혼자 눈 뒤집혀서 길 역주행하며 역방향으로 100 밟고 폭주하는 놈(-100) 이든 죄다 벌금을 때려 10만 원을 추징해야 합니다. 경찰에겐 “엔진 파워 막대기의 화살표 방향표(+,-)” 가 전혀 필요 없고, 단지 “타이어 엔진 회전 모터의 절대 파워 크기 값 (스칼라 엔진 수축률)” 만 뽑아 쓰면 됩니다.

전진하는 속도(+)와 역주행하는 속도(-) 벡터 레이더, 그리고 이들의 방향을 거세하고 순수 스피드 덩어리(속력)만 뽑아내는 절댓값 abs() 필터 파이프라인 SVG
이때 수학적 프로그래밍 필터인 **‘절댓값 무스비 (Absolute Value, $ \ \ \ $)’** 파싱 툴을 씌웁니다!

[속력 Speed 엔진 필터링] 속도 함수 $\mathbf{v(t)}$ 수치 값의 옆구리에 파이썬 abs() 절댓값 철조망을 씌워 오물 기어(부호) 를 무자비하게 뜯어내고 포맷시켜 버린 퓨어 엔진 덩치 숫자! 속력(Speed) = $\mathbf{| v(t) |}$

$\mathbf{ -100 }$ 에 절댓값 블록을 때리면 결국 포맷되어 $\mathbf{100}$ 이라는 강력무식한 스피드 파워 “속력 스칼라치” 숫자만 뽑혀 나옵니다.

3. 치명적 코딩 버그: “어느 차가 더 빨랐냐?”

코딩 면접 테스트 질문입니다.

“A 차의 속도 센서는 $\mathbf{+20}$ 이고, B 차의 속도 센서는 $\mathbf{-80}$ 이 찍혀있다. 어느 차가 물리적으로 더 엔진이 터지도록 가속하며 빠른가?”

수학 바보: “당연히 $+20$ 이 큰 양수니까 A 차가 빠르죠 ㅋㅋ” $\to$ 탈락! 에러 폭발! 해커: “속도(방향성) 를 버리고 abs() 로 엔진 속력(Speed) 의 크기 덩어리 절댓값을 빼보겠습니다. A 차의 타이어 파워는 $|+20| = \mathbf{20}$ 이고, B 차가 땅바닥 긁는 파워는 $|-80| = \mathbf{80}$ 입니다. 부호는 B 차가 역주행 기어를 박았다는 디스플레이일 뿐! 우주 물리적으로 미쳐서 폭주하는 자동차는 압도적으로 4배 스피드를 뿜어내는 $\mathbf{B}$ 차입니다!”

이 절대값 스피드 개념을 마운트했다면 3장 하이라이트 전투, 대포알을 하늘로 던져올리는 ‘포물선 투사체 미분 로직 엔진’ 을 파헤쳐 보겠습니다.

서브목차