컴공아빠의 무공 전수하기 - 이장. 무한 반복문
장기 전수를 목표로 지난주 아들에게 변수에 대해 가르치고 나름 뿌듯해하고 있었다. 스스로를 훌륭한 사부라 생각하고 무공 전수에 전념해야지 하고 생각하고 있던 찰나, 아들이 나에게 보여준 하나의 초식(프로그램)을 보고 나는 또 한번 놀라지 않을 수 없었다.
무림 속설에 "짧은 코딩이 더 아름답다"라는 말이 있다. 천줄의 코딩보다는 아름답고 심플한 한줄의 코딩이 더 강력하다는 의미이다. 변수를 가르치기 위해 불필요하게 토글링하는 초식을 가르쳤으나, 아들은 나에게 스크래치에 내장된 "다음화면"이란 단 하나의 설정으로 화면 바꾸기 프로그램을 만들어 보여줬다. 이런..니 (어)미!
그 옛날 무림의 전설적인 고수였던 에디슨이 말하길, "대박 프로그램은 1%의 영감과 99%의 노가다로 이루어진다" 하였으나, 요즘 세상은 이런 말이 무색하게 젊은 것들의 진보는 예측하기가 어렵구나.
각설하고.
그래서 아들에게 이번주 가르칠 초식은 반복문의 사용이다. 반복문이란 무림의 초보자라면 당연히 알아야하는 필수 명령어로 처음 코딩을 하게 되면 가르쳐주지 않아도 남발하게 되는 print 명령이나 반복 연산을 짧은 문장으로 대체하는 할 수 있는 방법니다.
스크래치에서 반복문을 이해시키기 위해서는 무언가 반복해서 발생하는 프로그램을 만들어야 하고, 그래서 나는 아들이 좋아하는 카트라이더 자동차 사진을 이용해서 자동자 경주를 무한 반복하는 프로그램을 만들어 보게 했다. 그 전에 무공 비법에는 빠질 수 없는 이 한장의 자료를 빼먹을 수는 없다.
그리고 아들에게 3대의 자동차가 서로 다른 속도로 경주를 시작하고, 스페이스바를 누르면 경주가 멈추고, 다시 누르면 경주를 계속 진행하는 프로그램을 만들도록 했다.
처음 아들은 프로그램 개발에는 관심이 없었다. 단지 카드라이더의 사진을 다운 받아 만들수 있다는 사실이 신기했는지 자동차 사진만 엄청 다운 받는 짓(?)을 했다. 그리고고는 자동차 한대가 달리면서 자꾸만 사진이 변경되는 그런 이상한 프로그램을 만들었다. 그리고는 퇴근하고 무공의 증진을 검증 받는 시간에 자신의 프로그램에 만족하며 엄청나게 자랑을 해댔다.
나는 분노하여 질책(?)을 하고 아들에게 정신을 가다듬고 배운 것에 전념하도록 했다. 그리고 아들은 아래와 같은 프로그램을 만들어 냈다.
그리고 시간이 남았는지 이상한 프로그램 하나도 만들었다. 동생의 목소리를 이용해서 말이다. 차마 이 프로그램은 공개하기 부끄러우나 짧은 순간의 웃음으로 마무리 할수 있을거란 기대에 부끄럽지만 링크를 공개해둔다.
이제 막 이초를 배운 아들에게 힘들거란 생각이 들지만, 다음주는 지난번 아들과 함께 간략하게 만들어본 두더지 잡기 게임을 완성시켜 볼까한다. 아마 아들에게는 이 경지가 허공답보의 경지같겠지만 어차피 한번은 벽을 마주봐야 그 벽을 뛰어넘을 수 있는 법 (웬지 돌아서 지나갈 것 같은 불길함이 들지만).
아들이 10장의 무공을 배워 주화입마에 빠지지 않고 스스로 자만하지 않으며, 증진할수 있는 자세를 이루면 나무 검이 아닌 진검(자신의 노트북)을 사 줄 생각이다. 나도 무척이나 사과 검이 갖고 싶지만 말이다.
@plazma-el