처음에는 단순하게 시작했다. 주호가 요즘 두자릿수 산수를 풀고 있어서 문제를 내줬다. 12 + 5는? 16 + 7은? 이런식으로 말이다. 곧잘 맞추길래 그 다음에는 5문제를 묶어서 문제를 냈다. 4번째나 5번째에 어려운 문제를 섞고, 5문제를 다 맞추면 미니언러시 게임을 10분 동안 할 수 있게 해줬다. 크게 의미를 두고 했던건 아니고, 하루에 잠깐씩 보는 아들과 놀 수 있는 무언가를 하고 싶었을 뿐이다. 그런데, 게임을 시켜주지 않아도, 앞에 내어주는 산수퀴즈를 꽤 좋아하는 것이 신기했다. 그래서, "띠리링~ 띠리링~" 하면서 갑자기 시작해서 5문제씩 산수퀴즈를 내주었다.
그런데, 근래에 피곤이 겹치다 보니, 산수퀴즈 내주는 것 조차 힘에 부치는 날들이 몇 번 있었다. 사실, 말 한마디 하기 귀찮은 그런 상태였다. 그러다 문득 생각난 것이 코딩해서 화면에 보여줄까? 라는 생각을 했다. 코드를 안본지가 꽤 되었지만, 그래도 간단한 산수문제 내는 정도는 할 수 있지 않을까? 요즘 코딩이 유행이라고 너도나도 학원 가서 배운다는데, 자연스럽게 익힐 수 있게 해줄 수 있지 않을까? 뭐.. 이런 생각들이 들었다.
정말 오래간만에 무언가 해보자 라는 의욕이 일어났다. 하지만, 막상 오랜만에 코드를 짜려 하니, 변수 선언 하는 것부터 가물가물 했다. 정말 단순하게 아무생각 하지말고 스트레스 받지 말고 그냥 생각나는 것만 짜자. 라고 생각했다. 일단, 두개의 수를 화면에 보여주자. 변수 a, 변수 b, 가운데 더하기, 결과값 c. 이렇게만 생각하고, 코딩하자. 그래서, 화면에 두개의 수를 더하는 것을 찍는데 약 30분이 걸렸던 것 같다.
<span id="vi_a"></span> <span id="mid"></span> <span id="vi_b"></span> <span id="res"></span> <span id="vi_c">
javascript로 간단한 함수를 만들고, 시작 버튼을 만들었다. 이상하게 화면에 나오지 않는다. 뭐가 틀렸는지 잘 감이 오지 않는다. console.log 는 용어조차 잘 기억이 나지 않았다. alert으로 찍어보는데 안나온다. 이상하다. 웃음이 나온다. 예전에는 무언가 안되면 짜증이 나고, 초조하고 어떻게든 빨리 해결하기 위해서 노력을 했었는데.. 지금은 그냥 웃음이 나왔다. 예전에 프로그래머에는 두 종류가 있다는 말을 들었던 기억이 난다. 하나는 코드를 짜고 잘 돌아가면 안심하는 부류, 한쪽은 즐기는 부류. 난 분명하게 전자인데.. 이상하게 즐거웠다.
아무튼 한 30분 가량 alert 찍어보고, 구글링 해보고 하면서 어찌어찌 화면에 12 + 7 = ? 물어보고, 답이 나오는 부분을 만들었다. 이 단순한 코드가 이렇게 기쁨을 주는구나. 순수하게 기뻤다. 그 다음에는 아들을 무릎에 앉혀놓고, 이런저런 주문을 받으며, 구글링 해보고 대강 대강 살을 붙여나갔다. 불려나가는 재미가 쏠쏠했다. 일단 "문제 주세요~" 버튼을 만들었다. 정답을 입력할 수 있는 input box를 만들었다. "정답 확인" 버튼을 클릭하면, 정답과 오답에 따라 alert으로 안내 메시지를 보여주도록 했다. 처음에는 "우와~" 하던 아들이 점점 주문이 많아진다. 왜 계속 같은 수가 나오냐고 한다. 당연히 그럴 수 밖에.. 아빠는 화면에 12 + 7을 찍기 위해서 최선을 다했거든. a, b 변수를 랜덤하게 보여주기 위해 랜덤함수를 붙였다.
a = Math.floor(Math.random() * 20);
b = Math.floor(Math.random() * 20);
오.. 편하다. 뒷 자리수를 바꾸면 원하는 범위만큼 조절이 가능하다. 신나서 풀던 아들이 다시 주문을 한다. 자기가 몇 개를 맞췄는지 모르겠다고 한다. 그래? 그러면, 정답 갯수를 넣자. 틀린 갯수도 넣자. 그리고, 어려운 문제가 나오면, 다시 풀 수 있게도 만들자. 뭐, 대강 이런 식으로 붙여나갔다. 클라이언트를 무릎에 앉혀놓고 대화하며 코딩하는 새로운 경험. 사실 처음 의도대로 프로그래밍을 가르치지는 못했다. 코드를 보여주고 설명해봤자 관심이 없다. 그냥 아빠 무릎에 앉아서 컴퓨터를 보고 클릭해보고 하는 것이 재밌는 것 같다. 나는 나대로 아들과 공유할 수 있는 것이 생겨서 기뻤다. 전에는 왜 이런 기쁨을 느끼지 못했을까?
지금은 이렇게 시작하고, 아들과 같이 산수퀴즈 화면을 만진 횟수만 3, 4번은 되는 것 같다. 그 사이 꽤 발전했다. "처음부터 시작" 버튼을 눌러서, 처음 시작과 리셋을 할 수 있다. "정답 확인" 버튼을 누르면 정답, 오답에 따라 안내 메시지를 보여준다. "와우~~~ 정답입니다. 축하해요.~" 이런 식으로 보여주면 아들이 아주 좋아한다. 그리고, 정답을 맞추면 다음문제가 자동으로 나간다. 조금전까지 40문제 이상을 연속으로 맞춘 주호가 이제 문제가 너무 쉽다고 한다. 레벨을 만들어야겠다는 생각이 들었다. 그리고, 정답을 맞추면, 음성으로 축하 메시지가 나왔으면 좋겠다고 주호가 의견을 낸다. 그것도 해야겠다. 매일 했던 것을 기록 할 수 있게 디비도 붙여봐야겠다.
변변한 디자인도 없고, 디비도 없다. 그냥 로컬 pc에서 index.html 하나만 만들어서 돌렸다. 그런데, 진짜 프로그래밍을 했다는 생각이 든다. 내 제품을 만들었다는 생각이 든다. 본질에 접근했다는 생각이 들었다. 예전에는 상용화 했을 때를 먼저 상상하고, 서비스를 어디에 올려놓고 돌릴지, 언어는 무엇을 쓸지, 프레임워크는 무엇이 좋을지.. 이런 것들을 먼저 고민했다. 정보를 찾아볼 때는 꽤 즐겁지만, 실제 구현시기가 오면 시들해지기 시작했다. 시간도 없고, 몸은 피곤에 쩔어있다. 무언가 "일" 적인 행동을 집에서 추가로 한다는 것 자체가 너무 힘들었다. 그런데, 지금 한 것은 "놀이" 였다.
산수퀴즈야 어디에나 있다. 별다른 아이디어도 아니다. 다만 여기에는 이전과 다르게 특별한 것이 있었다. 아들과의 교감. 가벼운 시도. 가볍게 시작해서, 무언가 화면에 찍을 수 있었다. 그리고, 아들과 이것에 대해 계속 이야기 했기 때문에 내 관심 속에서 잊혀지지 않고, 몇 번 더 작업 할 수 있었다. 이 특별함은 적어도 나에게는 매우 큰 깨달음으로 다가왔다. 가벼운 시작. 그리고, 지속적인 관심. 앞으로 얼마나 더 하다가 잊혀질지는 모르겠지만, 아들이 흥미를 가지는 동안은 조금씩 발전시켜볼 생각이 든다. 그리고, 사회 나오고 거의 처음으로 코딩하는게 즐겁다고 느꼈던 것 같다.