가장 뿌듯했던 순간

내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.

가장 뿌듯했던 순간

그 여정이 바로 보상이다.
- 스티브 잡스

초등학교 때 사촌 동생 집에서 Apple II 컴퓨터를 처음 본 순간 컴퓨터 세계로 빠져들었다. 그러나 사촌 동생 집은 멀어서 매일 갈 수가 없었다. 다행히 친한 친구 집에서 SPC1000 이란 컴퓨터가 있었다. 나는 매일 친구 집에 놀러가서 친구와 함께 컴퓨터를 가지고 놀았다. 친구가 귀찮에 생각했을 지도 모르겠다. 나중에 나도 부모님을 졸라 컴퓨터를 장만했다.

내 관심을 끈 것은 컴퓨터 그래픽이었다. 게임도 재미있긴 했지만 오래 하면 죄책감 같은 게 느껴졌다. 코드로 화면에 그림을 그리는 것은 재미있기도 했고 새로운 것을 공부하는 느낌이 들어 좋았다. 친구와 함께 이해하지도 못하는 코드를 독수리 타법으로 열심히 입력하고 실행하면 화면에 멋진 그림이 표시되었다.

화면에 점 찍고, 선 그리는 명령을 조합해 y = 2x + 3 , y = x^2 - x - 2 같은 학교에서 배운 함수식의 그래프를 그려놓고 감상했다. x 의 범위를 정한 다음 값을 조금씩 증가시키며 y 값을 구해 (x, y) 좌표를 구한 다음 각 점을 연결시키는 간단한 프로그램이었지만, 화면에 뭔가를 그릴 수 있다는 사실만으로도 기뻤다.

가장 뿌듯했던 순간은 화면에 제대로 된 원을 그렸을 때였다. y = f(x) 식을 이용해 (x,y) 좌표를 구해 점을 연결하는 식으로 여러 함수의 그래프를 그렸다. 학교에서 원의 방정식을 배운 직후 컴퓨터로 원을 그려보고 싶었다. 원의 방정식 x^2 + y^2 = r^2 y = \pm \sqrt{r^2 - x^2} 로 표현할 수 있다. 원의 방정식을 y=f(x) 형태로 바꿨으니 매번 하던 방법대로 하면 될 것 같았다.

각 진 원 그림

화면에 원 비슷한게 표시됐지만 곧 실망했다. 그림과 같이 원이 x 축과 교차하는 부분이 매끄럽지 않고 각져 있었다. 물론 x 의 증분을 줄여 점을 촘촘하게 찍으면 해결될 것 같긴 했다. 그러나 그 당시 컴퓨터 속도는 지금과는 비교할 수 없을 수 없을 정도로 느렸고, 화면 해상도도 매우 낮았다. Apple II의 고해상도 그래픽 모드 해상도는 280 \times 192 에 불과했다. 더 좋은 방법이 없을까?

그러다 학교에서 삼각함수를 배우면서 새로운 세상이 열렸다. '아, 이걸 이용하면 원을 예쁘게 그릴 수 있겠구나.' 이후 수업 내용은 중요하지 않았다. 선생님 몰래 종이에 BASIC 코드를 쓰기 시작했다. 예전처럼 x 를 증가시키며 y 를 구하는 대신, 각도 \theta 를 증가시키며 (x, y) 를 구하는 코드였다.

%math \begin{aligned} x &= r \cos \theta \newline y &= r \sin \theta \end{aligned}

수업은 듣는 둥 마는 둥, 종이에 쓴 코드를 마음속으로 몇 번이나 돌려봤다. 학교가 끝나고 집에 도착하자마자 컴퓨터를 켜고 종이에 있는 코드를 입력했다. RUN 명령으로 코드를 실행하자 화면에 동그라미가 표시됐다. 루프 회수를 줄이고도 예전의 각진 모습이 없는 부드러운 동그라미였다. 게다가 \theta 의 증분을 적절히 조절하면 삼각형, 사각형, 오각형 등 다양한 도형을 그릴 수 있다는 것도 덤으로 알게 되었다.

부드러운 원 그림

너무나 기뻐서 소리쳤다.

"엄마, 엄마! 이것 보세요. 내가 그렸어요."

컴퓨터 화면에 덩그러니 동그라미 하나가 그려져 있는 것을 본 어머니가 말씀하셨다.

"에게, 이게 뭐야? 하라는 공부는 안 하고!"

안타깝게도 어머니와 내 감격을 공유할 수는 없었다. 그러나, 새로 배운 수학 지식을 활용해 원을 매끄럽게 그릴 수 있는 방법을 깨닫고, 연필을 꾹꾹 눌러써가며 종이에 코드를 작성하고, 마음 속으로 코드를 한 줄씩 실행해가며 그림이 제대로 표시될 지 확인하고, 더음더듬 키보드를 두드려 코드를 입력하고, 마침내 화면에 제대로 된 동그라미를 표시한 그 모든 과정이 내게는 큰 기쁨이었다. 알아주는 사람은 아무도 없었지만.