Logo 잡설

로고라는 언어, 참 들어본지 오래된 언어다. 80년대 Apple ][를 쓰던 시절 애플로고 (AppleLogo)를 돌려보면서 "흠, 재밌는 놈인데 무엇에 쓸 수 있을고" 하던 기억이 난다. 근데 왜 갑자기 로고 얘기를 꺼내느냐?


며칠 전에 프로그래밍 루비를 읽어보고 있다가 불현듯, '루비도 그 동안 잘 모르고 지냈는데, 다른 언어들은 그 사이 어떤 것들이 생겼을까' 하는 궁금함이 일었다. 구글 선생한테 물어보니 위키피디아에 잘 정리를 해놨단다. 흠, 과연 시대 별로 어느 놈이 어느 놈의 조상이고 등등 잘 정리해놨다. 아무튼, 다시 로고 얘기로 돌아와서, 그렇게 언어 리스트를 들여다 보던 중 로고가 눈에 들어온 것이다. 아, 그래 로고가 있었지!

왜 느낌표까지 치면서 반겼냐 하면, 내 큰 딸이 이제 초등학교 3학년을 마쳐가는데, 얘가 컴퓨터에 관심을 많이 갖기 시작한 거다. 덩달아 1학년 짜리 막내도 이것 저것 해본다. 얘들한테 컴퓨터란 것이 게임하고 인터넷 돌아다니고 학교 숙제하는 용도 외에 새로운 세상이 있다는 것을 가르쳐 주고 싶었는데, 그 동안 마땅한 수단이 없었다. 그러던 중에 로고를 발견한거다.

로고는 Lisp에 영향을 받은 아주 간단한 교육용 언어다. 하지만 언어로써 갖춰야 할 요소는 다 갖추고 있기 때문에 단순히 애들 교육용 뿐만 아니라 여러가지 다른 목적으로도 쓰일 수 있단다 (하지만 실제 누가 그럴까는 좀 의심스럽다). 일단 로고 하면 떠오르는 것은 거북이 (turtle)다. 로고는 늘 인터프리터 형태로 거북이가 가운데 등장하는 그림판과 함께 소개가 되기 때문이다. 아마 로고를 한 번이라도 본 사람이라면 로고 하면 생각나는 것이 "FORWARD 100 RIGHT 90 FORWARD 100 RIGHT 90 FORWARD 100 RIGHT 90 FORWARD 100 RIGHT 90"이라는 명령을 쳐 넣으면 거북이가 열심히 움직이며 사각형을 그리는 모습일 것이다.

"그래 이걸 한 번 애들한테 보여줘보자. 재밌어 하면 자연스럽게 프로그래밍이란 개념도 배우게 되고 도형의 원리에 대해서도 배우게 될거야"라고 생각하고 적당한 로고 프로그램을 찾아봤다. 여러 개를 봤지만 무료로 쓸 수 있는 것 중에서는 MSWLogo가 윈도우 용으로 쓰기에 가장 좋은 것 같았다. 프로그램이나 UI는 아주 단순하지만 할 일은 다 하고, 거기에 덧붙여 사이트에 소개되어 있는 이 프로그램을 사용한 무료 교재들이 애들 보기에 딱 좋아 맘에 들었다.

저녁 때 애들과 마누라가 쓰는 피씨에 인스톨 해 놓고 애들을 불러 로고를 보여줘 봤다. 일단 아빠가 뭔가 새로운 프로그램을 깔아놨다는 사실 만으로도 애들 눈은 빤짝 거린다. 먼저 의례 그렇듯이 위에 쓴 명령어들로 사각형을 한 번 그려보여 준다. "우와, 그림 그려진다" 할 때 "근데 말야, 저렇게 많이 쳐 넣으면 귀찮지? 그러니까 저것들을 가만 보고 있으면 똑 같은 말을 계속 반복하는 거거든? 그러면 REPEAT 4 [FORWARD 100 RIGHT 90] 이렇게 쳐 주면 [ ] 안에 든 것들을 4번 반복해 준단다" 하면서 이번엔 삐질삐질 움직이는 거북이가 아니라 한 방에 사각형을 그려버리는 거북이를 보고 애들은 "우우와, 신기하다!" 하고 외친다. 이쯤되면 반쯤 성공했다. 이제 자리를 비켜주니 큰 애가 앉아 자기도 사각형을 그려본다.

그러는 사이 내 컴퓨터에서 교재를 하나 찍어서 한 참 이리저리 거북이 가지고 그림 그려보고 있는 애들한테 보여줬다. 밤이 늦어서 첫 페이지만 해보고 자라는 애 엄마 말도 무시하고 애들은 세 페이지나 따라 해보고는 "내일 또 해야지" 하고 자러 갔다.

내 기대를 훨씬 뛰어넘는 반응이었다. 사실 로고를 받아다 내가 먼저 해보면서, 애들이 repeat란 개념을 이해할지, 명령어를 치면 거북이가 움직인다는 개념을 이해할지 등등 자신이 없었다. 혹시 이 글을 보는 사람 중에 애가 초등학교 정도를 다니고 있고, 프로그래밍 논리라는 개념을 소개해 주고 싶은 분들께 로고를 한 번 이용해 볼 것을 추천하는 바이다.

덧글

댓글 입력 영역