06. 여섯 번째 수업: 절대 무너지지 않는 성벽, 절댓값 함수 (Absolute Value)

기상청 예보 모델을 코드로 짜고 있습니다. “오늘의 기온 오차율 예측” 함수를 돌렸더니 결과($Y$) 로 어떤 날짜는 $+5$도 (플러스 오차) 가 튀어나오고, 어떤 날은 $-3$도 (마이너스 오차) 가 튀어나옵니다. 이 오차율들을 컴퓨터에게 통계 내보라고 다 합쳐 더하라고(SUM) 시켰더니, 플러스와 마이너스들이 지들끼리 서로를 죽이며 엉터리 $0$ 에 가까운 허위 평온 숫자를 뿜어냅니다! (분명 오차가 많았는데 말이죠!)

마이너스($-$) 음수라는 지저분한 불순물 속성 기호를 박살 내고, 언제나 오직 강력한 플러스 순수 크깃값 양수($+$) 덩어리만 출력해 내는 강력한 무적 보호막 함수 필터 기계가 필요해지는 시점. 우리는 기호 기둥 두 개 $| x |$ 를 빌려 절댓값 함수 (Absolute Value Function) 를 발동시킵니다.


1. 마이너스 절단기 박스

절댓값 기호는 영어 알파벳 $ $ 모냥의 양옆 벽 기둥으로 $x$ 를 감싸버립니다.  
$$ f(x) = x $$

이 벽돌 박스 안으로 숫자가 진입하면, 박스에 내장된 센서가 부호만 스캔해서 마이너스를 감지하는 순간 레이저 빔으로 싹둑 잘라 삭제해(Drop) 버립니다.

  • 기계에 $+5$ 를 넣는다 $\rightarrow$ 어, 양수네. 귀찮군. 그대로 통과 $\rightarrow$ $+5$
  • 기계에 $-3$ 을 넣는다 $\rightarrow$ 어랏! 불순물 마이너스! 당장 뚝배기를 부숴라 $\rightarrow$ 강력한 $+3$ 으로 클렌징 정화 배출!
  • 기계에 $0$ 을 넣는다 $\rightarrow$ 아무 부호 없으니 $\mathbf{0}$ 배출.

입력이 우주 끝 지하실 마이너스를 때리더라도 결과는 무조건 산 지붕 위의 양수($+$, 또는 $0$) 플러스를 향해 쾌속 발사됩니다!

2. 그래프가 땅에 충돌하고 반사되어 튀어 오르다 (V-Shape)

이 강력한 마이너스 튕겨 내기 반사(Reflect) 필터 시스템을 데카르트 좌표계 그래프로 그리면 어떤 진풍경이 벌어질까요?

어떤 $1$차 함수 직선 로켓(가령 $y = x$)이 우측 상단 하늘에서 좌측 마이너스 지하실 땅바닥을 향해 다이빙하며 하강하고 있었습니다. 좌측으로 갈수록 좌표가 $-1, -2, -3$ 이 되니 당연히 $Y$ 결과 높이도 $-1, -2, -3$ 음수 땅굴 밑으로 처박히며 내려가야 정상입니다.

그런데 함수 껍데기에 기둥벽 $| x |$ 를 씌우는 순간? $Y$ 값이 막 $0$을 지나 마이너스 지하 공간에 코리 도달하려는 순간, 절댓값 필터 빔이 지하 도달을 불허하며 그 마이너스 $Y$ 기운들을 고스란히 멱살 잡고 위쪽 양수 하늘 방향 대기권으로 강제로 데칼코마니처럼 접어서 퍼올려버립니다!

마치 땅바닥에 쨍그랑 떨어져 부딪힌 거울 공탄이 지하로 뚫고 들어가지 못하고 다시 중력을 씹어먹으며 $V$ 자 모양으로 완전 대칭 반사탄을 그리며 튕겨 저 위로 하늘 위로 치솟는 기괴하고도 날카로운 $V$ 자 모양 굴절 곡선 이 허공에 쫙 그려지게 됩니다!

3. 거리(Distance)와 안전 필터 코드

프로그래밍에서 에러 검출 로직이나 거리 보정을 할 때, 두 좌표 점 사이의 거리를 구할 때 빼기($A - B$) 연산을 썼다가 음수가 떠서 물리 엔진이 뽀각 나며 자동차가 충돌을 관통(버그)해 버리는 사태를 막아주는 유일무이 최고의 백신 코드입니다.

자바스크립트나 파이썬에서 Math.abs(x) 혹은 파이썬 내장 abs(x) 라는 눈물 나는 단 세 글자 알파벳 코드로 포장되어, 지금 이 순간에도 수십억 대의 컴퓨터 안에서 터지려는 마이너스 무한 폭주 에러 버그들을 억누르며 필터링하고 있는 숨겨진 영웅, 바로 절댓값 함수입니다.

서브목차