00. 인트로: 엑셀 표가 아닌 우주의 마법 주문 배열 (Intro)

RPG 게임에서 당신의 캐릭터가 화면 중앙 좌표 $(0, 0)$ 에 서 있다고 칩시다. 당신이 화면을 마우스로 빙글 돌리면, 캐릭터도 $90^\circ$ 회전합니다. 플레이어가 점프를 뛰면 캐릭터의 $Y$ 좌표가 위로 $2$배 늘어납니다.

이런 “좌표 변환(회전, 이동, 크기 축소 렌더링)” 을 컴퓨터는 대체 어떻게 수만 개의 픽셀 점들을 안 놓치고 $0.1$초 컷 프레임으로 렌더링 해내는 걸까요? 그 렌더링 물리 엔진의 가장 깊숙한 본질 코어, 그것이 바로 행렬 (Matrix) 이라는 네모 박스 숫자 배열표입니다.

2D 웹툰: 딥그린 네온 화면에서 해커가 행렬 코드를 입력하자, 평범했던 2D 바둑판 격자 우주 좌표계가 3D 공간상으로 찌그러지며 회전하고 기울어지는 기괴한 '선형 변환' 물리 왜곡을 일으키는 장면.

1. 숫자를 가둬놓는 네모난 짐승 우리

수학자들이 수만 개의 변수와 방정식을 하나하나 손으로 쓰려다가 손가락이 부러질 것 같자, 엑셀 표처럼 네모난 대괄호 $[ \ \ \ ]$ 안에 숫자들을 차곡차곡 줄 세워 박아 넣은 것이 행렬의 시작이었습니다. 이 대괄호 우리 안에는 가로줄(행, Row) 과 세로줄(열, Column) 로 수십만 개의 벡터 파라미터들이 압축 저장될 수 있습니다.

2. 텐서(Tensor) 의 할아버지

알파고나 챗GPT 를 해킹할 때, 파워 AI 코더들은 파이썬 Numpy(넘파이) 배열 모듈을 사용합니다. 이 넘파이 모듈이 바로 행렬 계산기 그 자체입니다. “숫자 1개씩 노가다 계산하지 말고, 1만 개짜리 숫자 배열 박스 전체를 퉁 쳐서 한방에 곱해버려라!”

행렬 단원은 지루한 표 그리기 수업이 아닙니다. 두 개의 행렬 배열표가 충돌했을 때 일어나는 어마어마한 맵 왜곡(Transformation) 시각 렌더링 기술을 터득하는 과정입니다. 1장에서 이 네모 박스의 스펙 제원부터 파헤쳐 보겠습니다.

서브목차