메뉴바로가기본문바로가기

동아사이언스

[개발자 아빠의 교육실험]⑦ 요구를 잘 이해하는 습관 길러주기

통합검색

[개발자 아빠의 교육실험]⑦ 요구를 잘 이해하는 습관 길러주기

2019.03.27 17:24
아이가 오브젝트끼리 대화하기 즉, 신호 사용법을 익혀야할 차례다. 게티이미지뱅크 제공
아이가 오브젝트끼리 대화하기 즉, 신호 사용법을 익혀야할 차례다. 게티이미지뱅크 제공

세 번째 교육에서 프로그램이 순차적으로 실행된다는 것과 반복문을 이용하여 그 순서를 조정할 수 있다는 것을 각각 가르쳤다. 아이는 교육을 큰 어려움 없이 따라왔고, 자신의 손으로 처음부터 다시 만들어 보는 것까지 해냈다. 서툴지만 걸음마는 뗀 셈이다. 이제 조금 더 추상적인 방법으로 컴퓨터와 대화하는 법을 가르쳐야 할 때다. 바로 오브젝트끼리 대화하기, 즉 신호(Signal)의 사용법을 익혀야 할 차례다.

 

신호는 말 그대로 정보를 전달하거나 지시를 하는 것이다. 우리가 스마트폰으로 문자를 주고받는 것도 신호를 주고받는 것이다. 문자를 보내는 쪽이 있다면, 받는 쪽도 당연히 있어야 한다. 그런데, 받는 쪽은 문자가 언제 도착할지 알 수 없다. 이때 가장 간단한 방법은 문자가 올 때까지 전화기를 계속 쳐다보고 있는 것이다. 이렇게 아무 일도 하지 않고 문자만 기다리고 있기에는 아무래도 시간이 아깝다. 원래 하고 있던 일을 멈출 이유가 없다. 하던 일을 계속하다 도착음이나 진동이 느껴진 후 내용을 확인해도 늦지 않을 것이다. 오히려 빠른 반응을 하는 것이 인간관계에 더 도움이 될 것이고, 내용에 적합한 반응이라면 금상첨화다.

 

컴퓨터에서 사용되는 신호도 마찬가지다. 코드에 작성된 절차에 따라 하던 일을 계속하는 동안 신호가 도착하면 그때 신호에 적절한 일을 해주면 그만이다. 예컨대 텔레비전은 방송국으로부터 영상 정보를 받아 화면에 그린다. 방송이 디지털화된 지금은 이 과정 모두를 컴퓨터가 처리해야 한다. 놀고 있는 게 아니란 얘기다. 그러다 리모컨으로부터 채널 변경 신호를 받으면 그제서야 컴퓨터는 채널 변경 관련 일을 처리한다.

 
리모컨을 이용한 티브이 채널 변경은 컴퓨터가 처리하는 신호 주고받기 사례 중 하나다.
리모컨을 이용한 티브이 채널 변경은 컴퓨터가 처리하는 신호 주고받기 사례 중 하나다.

신호는 일반적인 코딩 교과서에서 초반에 가르치지 않았다. 아예 다루지 않는 책도 있다. 먼저 자료형과 변수를 다루는 게 보통이다. 숫자 등 계산의 대상에 대한 소개가 먼저이기 때문이다. 그 후 각종 흐름 제어를 소개한다. 계산의 순서를 조정하여 계산을 효율적으로 하는 법을 가르치기 위함이다. 컴퓨터는 계산하는 기계라는 본업에 충실한 접근법이다.

 

엔트리의 경우는 반대다. 코드를 실행하면 화면은 온통 오브젝트끼리 맞물려 움직인다. 간단한 코드를 작성하더라도 그것들 사이에 정보 교환이 작은 양이라도 필요할 수밖에 없다. 신호 다루기가 먼저 진행돼야 하는 이유다. 엔트리는 아이들을 위한 것이다. 당장 컴퓨터가 꼭 계산하는 기계여야 할 필요는 없을 것이다. 자신이 조종할 수 있는 장난감이 널려있는 놀이터라면 족하다.

 

넷째 교육은 간단한 신호 사용법 전달에 초점을 맞췄다. 아이 2명이 축구공을 서로 주고받는 상황을 코드로 만드는 것이다. 공은 아이에게 도착하면 신호를 보내고, 신호를 받은 아이는 다시 공을 차면서 공에게 신호를 보내는 식이다. 신호를 받은 공은 다시 다른 아이에게 이동한다.  

 

먼저 아이에게 필자가 완성한 코드를 실행시켜 보여줬다. 그리고 신호의 개념과 코드에서 사용법을 설명했다. 아이는 아는 듯 모르는 듯 애매한 표정을 지었다. 등에 땀이 흘렀다. 접근 방식을 바꿀 필요가 있었다. 필자의 코드를 보여주고 다시 설명했다. 엔트리의 “신호 보내기”와 “신호 받았을 때” 블록은 순서대로 실행되는 것과 마찬가지다고 말했다. 그제서야 아이는 이해했다는 듯 고개를 끄덕였다. 한고비를 또 넘었다.  

 

이번에는 실습 지침을 보여주며 직접 작성해 보라고 했다. 필요한 블록들을 미리 블록 조립 화면에 준비해 놓고 조합만 시켰던 이제까지 방식과는 달리 오브젝트 만들기 등 처음부터 스스로 해야 하는 상황이다. 이제까지와 다른 방식에 적잖이 당황한 듯한 아이에게 실습 지침만 따라 하면 된다고 했다. 우선 천천히 소리 내어 읽어 보라고 했다. 4·4조 운율로 읽어 내려가는 것을 보니 역시 초등 저학년답다.

 

사실 지침에 따라 작성해라는 것이 아이에게 과도한 요구일 수도 있다. 이제 막 코딩을 시작한 아이이기에 더욱 그렇다. 하지만 걸음마부터 습관을 잡아주고 싶었다. 요구 사항에 맞춰 코드를 작성하는 습관 말이다. 오류가 있는 소프트웨어는 요구 사항을 제대로 파악하지 않고 만든 경우가 대부분이다. 이는 코딩에만 한정된 현상이 아니다. 업무 요청 메일을 부주의하게 읽은 후 엉뚱한 결과를 만드는 경우를 종종 본다. IT 신상품을 구입했을 때도 마찬가지다. 기능이 동작하지 않는다고 동호회 게시판에 질문을 올리면 “매뉴얼 3회 정독하고 다시 오세요.”라는 불친절한 답변을 듣기 일쑤다. 이들 모두 설명 읽기를 건너 뛰었을 때 발생한다는 공통점이 있다. 귀찮다는 생각에 성급해지기 쉽기 때문이다. 인간의 욕심은 끝이 없고 같은 실수를 반복하는 법이다.

 

조용히 시간을 두고 기다려보기로 했다. 하지만 얼마 지나지 않아 아이는 마우스를 조작하여 코드를 작성하기 시작했고, 수업 시간 40분을 다 채우지 않고 코딩을 마쳤다. 물론 아이의 실수가 없었던 것은 아니다. 그런 경우에는 옆에서 바로잡아주기만 하면 됐다. 부모들이 많은 돈 들여 일대일 과외를 시키는 목적과 같다.

 

아이가 순식간에 끝낸 숙제. 시간 기다리기 등을 이용하여 말 주고받기 순서를 맞췄던 것을 신호를 사용하는 것으로 변경했다.
아이가 순식간에 끝낸 숙제. 시간 기다리기 등을 이용하여 말 주고받기 순서를 맞췄던 것을 신호를 사용하는 것으로 변경했다.

숙제로 지난 시간에 작성했던 강아지와 엔트리봇의 대화 코드에 신호를 이용하는 방식으로 고쳐오라고 했다. 그리고 음식물 쓰레기를 버리고 왔는데, 아이는 벌써 숙제를 다 했다고 의기양양해 하고 있었다. 숙제가 너무 쉽다는 것이다. 역시 스스로 해보는 게 가장 빨리 익히는 법이다. 처음에는 더디지만 말이다.

 

그런데, 나이를 먹을수록 전자 제품 매뉴얼 읽기가 점점 싫어진다는 생각이 맴돈다. 쓰던 기능만 계속 쓴다. 그리고, 그 이유는 여전히 궁금하다.

 

도움자료

1) 4일 차 교안을 공유합니다.

https://drive.google.com/drive/folders/1OX3Oq9H7tfMnapIhQZzmYzomBDGomZvW

2) 아이와 만드는 코드도 공유합니다. 엔트리 메인화면의 공유하기에서 “chloe10”을 검색하세요.

 

 

※필자소개

김기산(calculmount@gmail.com) 기업에서 IT 디바이스 소프트웨어 개발자로 일하고 있다. 대학에서 전자공학을 전공하고 20년 가까이 리눅스 개발자로 지내다가 뜻밖의 계기로 육아휴직을 냈다. 지난해 한층 강화된 '아빠의 달' 제도의 수혜자로, 9살 아이와 스킨십을 늘리며 복지 확대의 긍정적인 면을 몸소 깨닫고 있다.

 





 

이 기사가 괜찮으셨나요? 메일로 더 많은 기사를 받아보세요!

댓글 0

10 + 3 = 새로고침
###
    과학기술과 관련된 분야에서 소개할 만한 재미있는 이야기, 고발 소재 등이 있으면 주저하지 마시고, 알려주세요. 제보하기

    관련 태그 뉴스