※ 다음 글은 정보통신기술진흥센터(IITP)가 발간하는 주간기술동향 1765호(2016. 9. 28 발행)에 기고한 원고입니다.
▶ IITP에서 PDF 포맷으로 퍼블리싱한 파일을 첨부합니다. 가독성이 좋으니 참고하시기 바랍니다.
스크래치 3.0 창의와 협업.pdf[ 요 약 ]
앱 이코노미와 로봇 시대의 도래, 메이커 운동의 확산으로 인해 누구나 프로그래밍을 배워야 한다는 모토가 제시되는 가운데, 어린이들을 위한 코딩 교육용 프로그래밍 언어 스크래치(Scratch)’를 배포하고 있는 MIT 미디어 랩은 최근 3.0 버전에 대한 개발 현황과 향후 계획을 공개하였음. 구글과 공동 개발하는 스크래치 3.0은 ‘누구나 원하는 것을 스스로 만들어 표현할 수 있는 수단을 제공하고, 다른 사람과 협업을 통해 학습하게 한다’는 개발 목표를 보다 분명히 구현하려 하고 있음
[ 본 문 ]
◈ 지난 8월 개최된 교육용 프로그래밍 언어 ‘스크래치(Scratch)’ 관련 행사인 ‘스크래치 컨퍼런스 2016’에서는 차기 버전인 “스크래치 3.0”에 관한 내용이 공개되었음
• 스크래치는 MIT 미디어 랩에서 어린 아이들을 비롯해 누구나 쉽게 프로그램을 만들 수 있도록 돕기 위해 개발한 교육용 프로그래밍 언어이며, 컴퓨터 교육 관련 연구를 해 온 미첼 레스닉(Mitchel Resnick) 교수가 개발팀을 이끌고 있음
<자료> MIT Scratch. [그림 1] 스크래치 3.0의 주요 개발 컨셉 |
• 2016 년 8월말 현재 스크래치의 등록 사용자 수는 1,300만 명 이상이며, 커뮤니티에 등록된 프로젝트 수는 1,660만 개 이상이므로, 이들 자산을 승계할 수 있도록 스크래치 3.0을 개발하고 있다고 함
• 현재 스크래치는 1.4 버전과 2.0 버전이 함께 사용되고 있는데, 1.4에서 2.0으로 원활하게 전환할 수 있었던 것처럼, 2.0과 3.0으로 이행에도 무리가 없을 것으로 보임
◈ 개발팀은 구글과 공동으로 블록 프로그래밍 환경인 ‘스크래치 블록스(Scratch Blocks)’를 개발하고 있으며, 향후 공개하여 개발팀 이외 누구라도 사용할 수 있도록 할 방침
• 개발팀은 구글과 공동으로 스크래치 블록스를 개발한 후 이를 토대로 스크래치 3.0을 개발 중인데, 구글과 공동 작업한 이유는 구글의 블록 프로그래밍 환경인 ‘구글 블로클리(Google Blockly)’를 기반으로 하고 있기 때문
• 구글 블로클리를 기반으로 하지만 어디까지나 스크립트 편집 화면의 기초 기술만 채택하는 것이며, 그 이외의 부분은 스크래치 3.0의 독자적인 기술이 사용되고 있음
<자료> The Open Sourcery [그림 2] 스크래치 2.0(위)과 구글 블로클리(아래)의 블록 프로그래밍 환경 |
• 또한 스크래치라는 프로그래밍 환경은 단지 ‘인터페이스와 조작성’에 특징이 있는 것은 아니라 ‘커뮤니티 환경을 포함’하고 있다는 점이 다른 도구와 다른 차별성이므로, 겉모습과 조작성이 유사하더라도 문제가 되지 않을 것으로 판단했다고 함
• 마치 C 언어와 비슷한 문법이 다른 프로그래밍 언어로 사용되고 있는 것처럼, 공개하고 나면 뜻밖의 사용 방법이 생길 위험이 있지만, 그럼에도 불구하고 공개에 의해 누구나 사용 가능한 도구들이 보다 확산될 경우의 전지구적 이익을 기대하는 것임
• 개발팀은 현재 레고 측에 레고 로봇 교재에서 스크래치 블록스를 채택하도록 촉구하고 있는데, 아직 레고에서 결정한 것은 아니지만 실현되기를 적극 희망하고 있음
• 아이들이 스크래치를 통해 익숙해진 인터페이스와 조작성을 사용하여 레고 로보틱스 교재를 조작할 수 있다면, 레고 외에 다른 많은 활용 처에서 스크래치의 블록 프로그래밍 환경 채택을 적극 고려하게 될 것이기 때문
◈ 인터페이스와 조작성의 확산 외에, 컨퍼런스에서 공개된 스크래치의 또 다른 목표는 모바일 장치 지원 및 유연한 소프트웨어 구조를 실현하는 것임
• 사용자 입장에서 유연한 소프트웨어 구조의 실현, 즉 모듈화는 그다지 중요하지 않을 수 있으나, 익숙한 모바일 기기에서 스크래치를 사용할 수 있게 된다는 것은 매우 중요
• 스크래치 3.0은 스마트폰의 작은 터치 패널 디스플레이에서도 사용할 수 있도록 현재 사용되는 수직 문법(블록을 세로로 연결하는 문법) 외에 ‘스크래치 주니어(Scratch Jr)’와 ‘위두(WeDo)’에서 사용 중인 수평 문법(블록을 옆으로 잇는 문법) 지원도 추가할 예정
• 그러나 두 문법에서 똑같은 작업을 하기는 어려울 것이라고 하며, 아직 블록 등을 디자인 하고 있는 단계이므로 결과는 유동적이지만, 아무래도 수직 쪽이 수평보다 더 많이 사용될 것으로 예상한다고 함
<자료> The SK Adventure [그림 3] 스크래치 주니어의 수평 문법 |
• 아직 확실한 것은 아니지만 프로젝트 형식(파일 형식)도 2 종류가 될 가능성도 있는데, 단 어떤 경우든 현재의 스크래치 자산을 활용할 수 있는 포맷이 될 것이라는 설명
◈ 한편 이번 컨퍼런스에서 미첼 레스닉 교수는 스크래치를 개발한 목적을 상기시키며, 특히 아이들의 창조성과 협업 능력 증진에 기여하기를 바란다는 점을 강조
• 컴퓨터 교육 전문가로서 레스닉의 목표는 아이들이 창조적으로 생각하는 사람이 되도록 하는 것인데, 이를 위해 아이들이 컴퓨터를 사용하여 스스로 원하는 것을 만드는 체험을 하는 것이 중요하다는 생각을 가지고 있음
• 스크래치에서 중요시 하는 것은 아이들이 관심을 갖도록 유도하는 것인데, 아이들은 몸을 움직여 노는 것에 관심을 가지고 있기 때문에 스크래치 역시 몸을 움직여 만드는 것에 초점을 두고 있음
• 이는 레고가 마인드 스톰 시리즈를 판매하며 NXT-G라는 어린이용 그래픽 프로그래밍 도구를 제공하는 것과 같은 교육적 맥락임
◈ 레스닉은 단순히 ‘사용한다’는 관점이 아니라 ‘만든다’는 관점에서 컴퓨터에 접근하기를 바라며, 이를 통해 아이들이 장차 사회에 공헌하며 협업의 소양을 키우기를 기대하고 있음
[동영상] 스크래치의 아버지, 미첼 레스닉 |
• 글에 비유하자면 읽기뿐만 아니라 쓸 수도 있어야 자신의 생각을 드러낼 수 있듯이, 프로그램도 잘 사용만 하는 데 그치지 않고 직접 작성할 수 있으면 자신의 아이디어를 구체화하여 전달할 수 있게 된다는 것
• 또한 최고의 학습 경험은 다른 사람과 관계를 맺고 새로운 아이디어를 공유하는 ‘사회적 학습(social learning)’인데, 이를 위해 스크래치 2.0 버전을 공유에 적합하도록 웹 브라우저에서 작동하게 만들었다고 함
• 자신이 직접 만들고 난 다음에는 다른 사람이 사용해 보게 한 후 피드백을 받아 계속해서 개선해 나가는 경험이 중요하므로, 2.0 버전에는 ‘클라우드 변수’라는 기능을 넣어 다른 프로젝트와 데이터를 공유할 수 있도록 하였음
◈ 협업 능력 증진의 관점에서 레스닉 교수는 스크래치의 다국적 언어 지원을 중요하게 생각하고 있으며, 아이들 스스로 국경을 넘어 문제를 해결해 나가도록 돕는데 중점을 두고 있음
• 스크래치는 처음부터 전세계 언어 대응을 염두에 두고 다국어 지원이 쉽도록 설계되었으며, 현재 스크래치는 각국 자원봉사자들의 번역 지원 덕분에 50개 언어를 지원하고 있음
<자료> MIT Scratch [그림 4] 스크래치 웹사이트 한국어 지원 • 협업 지향성과 다국어 지원 기능은 글로벌 협업 환경을 낳고 있는데, 실제로 아시아의 아이들이 프로젝트를 만들고 이를 유럽의 아이들이 개선하는 일도 나타나고 있음 • 협업 과정에서 커뮤니티 내에 문제가 생겨도 아이들이 직접 해결하는 것을 목표로 하고 있는데, 가령 비영어권 아이들이 만든 프로그램이 스크래치 공식 사이트의 주요 프로젝트로 선정되는 경우 언어 소통의 문제가 발생할 수 있음 |
• 실제로 비영어권 아이가 쓴 설명 글에 대해, ‘영어가 끔찍하다’는 댓글들도 붙지만, ‘아시아 아이들이 영어를 모르는 것은 당연하니, 우리가 고쳐주면 된다’는 의견들이 나오고, 결국 여러 사람이 함께 올바른 영어로 수정해 가며 프로젝트를 진행하는 사례들도 있음
• 스크래치 공식 사이트는 가급적 어른이 개입하지 않고 왜곡된 정보가 올라올 경우에만 사실 전달에 초점을 두고 개입하는데, 최종적으로는 아이들 스스로 올바른 정보를 받아 들이도록 기다린다는 철학을 견지하고 있음
◈ 레스닉 교수는 연령에 상관없이 성인들도 자신의 생각을 표현하고 공유하고 싶다면 스크래치를 배우는 의미가 있다며, 어른들이 먼저 스크래치를 경험하는 것도 좋다는 입장임
• 성인들의 관심사는 주로 프로그래밍 학습을 통해 새로운 일자리를 얻거나 스킬을 늘리는 것이겠지만, 그 자체로도 좋은 일이긴 하나 그런 이유에만 한정될 필요는 없다는 것
• 인터랙티브 카드를 만들어 누군가와 교환하고 싶다는 동기라도 좋은 것이며, 스크래치의 장점인 ‘생각의 표현과 공유’라는 가치를 활용하고 싶다면 누구나 배우는 의의가 있음
• 굳이 스크래치를 두고 어린이용, 성인용을 따질 필요는 없으며, 다양한 연령의 사람들이 서로 배울 수 있다는 생각, 즉 아이들이 어른들로부터 배우는 것처럼 어른도 아이에게 배울 수 있다는 열린 사고를 갖는 것이 보다 중요한 것임
• 밖에서 뛰어 놀지 않고 아이들이 기술 환경에 노출되는 것에 대해 눈살을 찌푸리는 어른들이 많이 있으나, 야외에서 하는 행위가 모두 좋은 일인 것이 아니듯, 컴퓨터를 끼고 살아도 좋은 점이 있다는 것이 레스닉의 생각
• 가상 환경에서도 동료와 부딪혀 가며 협동을 통해 프로젝트를 진행할 수 있는 것이며, 중요한 것은 기술을 어떻게 사용할 것인가에 대한 기준을 스스로 정립하는 것이기 때문
◈ 레스닉 교수는 향후 연령에 상관없이 더 많은 사람이 스크래치를 이용할 수 있는 환경이 도래하려면, 무엇보다 스크래치 교육이 보다 용이하고 즐겁게 이루어져야 한다고 보고 있음
• 나이에 상관없이 누구나 인터랙티브 애니메이션을 만들고 싶을 때 우선 스크래치부터 시작한다거나, 가정 내의 센서를 사용해 로봇을 움직이고 싶을 때 스크래치를 먼저 떠올리게 되는 것이 스크래치 개발팀의 목표임
• 이를 위해서는 스크래치 교육이 중요할 터이며, 따라서 개발팀은 교사들이 수업 시간에 스크래치를 쉽게 사용할 수 있도록 학습 자료를 제공할 계획이며, 학교 수업 방안 외에 온라인으로 수업을 구성할 수 있는 구조 등도 적극 모색하고 있음
• 또한 스크래치 이용자 층을 더 넓히기 위해 5세부터 사용할 수 있는 ‘스크래치 주니어(Scratch Jr.)’ 프로젝트를 진행하고 있는데 2017년에 공개할 예정임
• 스크래치 주니어는 문자는 줄이고 아이콘을 늘리며 기능은 어린 아이들도 사용하기 쉬운 것으로 한정했는데, 특히 어린 아이들이 좋아하는 ‘이야기를 만든다’는 것에 초점을 맞추고 있음
◈ 스크래치 등을 활용한 프로그래밍 교육에 대해 일각에서는 그 효과성에 의문을 제기하는데, 이에 대해 레스닉 교수는 ‘표현 수단의 학습’이란 관점을 잊지 말아야 할 것을 강조
• 스크래치의 기본 철학은 ‘아이들에게 가르치려고 들지 말아야 한다’는 것인데, 이는 레스닉교수의 스승인 시모어 페퍼트(Seymour Papert) 교수가 제시한 ‘구축주의(Constructionism)’, 즉 아이들이 물건을 만들면서 배운다는 아이디어에 근거함
• 프로그래밍을 표현 수단으로서가 아니라 컴퓨터 과학을 배우는 학문의 일환으로 파악하는 사람들은 구축주의적 프로그래밍을 배우는 것만으로는 지식과 기술이 몸에 붙지 않는다는 비판을 하기도 함
• 또 프로그래밍 교육의 목적을 ‘논리적 사고력 증진’이라고 할 때, 과연 프로그래밍으로 논리적 사고력이 얻어 지는지, 논리적 사고력을 익히려고 한다면 차라리 수학이나 철학을 배우면 되지 않냐는 반론을 제시하는 사람들도 있음
• 이에 대해 레스닉 교수는 학문적으로 배우는 것도 중요하지만 자신의 관심 사항을 표현하는 수단으로 배우는 것도 중요하며, 어느 한쪽 만 강조할 이유는 없다고 의견
• 또한 프로그래밍을 ‘제대로’ 배운다면, 창조적 발상 능력뿐 아니라, 논리적 사고력도 익힐 수 있다고 설명하는데, 배움에 대한 의미를 부여하는 동기 부여 관점에서 프로그래밍이 도움이 되기 때문
• 프로그래밍 교육에 의해 환기된 학습에 대한 의욕의 향상과 학습 태도의 변화는 다른 교과에도 영향을 미치는데, 프로그래밍을 통해 ‘학습방법을 배운’ 아이들이 매사에 적극적으로 임하거나 실패를 두려워하지 않는 것은 흔히 볼 수 있는 현상이라는 것
◈ 레스닉 교수가 스크래치 교육의 중요성을 강조하고 있기는 하지만, 일부 국가에서 법제화하고 있는 ‘프로그래밍의 초등 의무교육 편입’에 대해서는 유보적 입장임
• 프로그래밍 의무교육화 찬성 여부는 프로그램이 어떤 형태로 수업에 적용되는지에 달려 있는데, 수업에 ‘잘 통합’되는 것이라면 찬성이고, ‘나쁘게 통합’된다면 반대라는 입장
• ‘잘 통합된다’는 것의 의미에 대해 레스닉 교수는 ‘쓰기(작문)의 학습’에 비유하는데, ‘쓰기’가 국어뿐만 아니라 다른 수업에서도 중요한 것처럼 프로그래밍도 마찬가지라는 것
• 비록 프로그래밍이라는 별도의 수업이 있다 해도, 다른 수업에서 프로그래밍을 살릴 수 있으면 더 좋은 학습이 된다는 것이 레스닉 교수의 생각
• 레스닉 교수의 생각에 대해서는, 만일 프로그래밍을 다른 수업에 ‘잘 통합’ 하려고 하면 교사들의 부담이 커질 수밖에 없으며, 부담을 줄이려다 보니 결국 교사가 학생들에게 동일한 내용을 일괄적으로 가르치는 수업 형태로 되어 버릴 수밖에 없다는 반론이 있음
• 이런 반론에 대해 레스닉 교수는, 이 문제는 교육학의 오랜 과제이기는 하나 혁신적 발상을 통해 반드시 풀어야 할 문제이며, 자신이라면 상급생이 하급생을 가르치는 방식을 도입하거나 학교 밖에서 강사를 찾게 하겠다는 의견을 개진
• 또한 장기적으로는 교사가 제대로 프로그래밍을 가르칠 수 있게 하는 시스템의 구축이 중요하므로, 교사들에 대한 재교육 및 강화교육이 기본이 되어야 한다고 부연
• 같은 맥락에서 컴퓨터가 아이들을 가르치면 좋겠다는 의견에도 레스닉 교수는 반대하는데, ‘제한적 성공’ 즉 코딩 기술을 배우는 것이 목적이라면, 컴퓨터를 이용한 학습도 유용할 것이나, 스크래치의 목표인 새로운 표현 수단과 배움을 얻기에는 쓸모 없다는 것임
◈ 프로그래밍 교육은 반드시 필요하지만, 그렇다고 해서 교육 자체가 목적이 되어 학습의 부담이 생겨서는 안되며, 무엇보다 재미를 잃게 해서는 안 된다는 것이 레스닉 교수의 조언
• 일부 국가에서는 프로그래밍 교육의 의무화가 거론되고 있으며, 민간기업들도 프로그래밍 교육에 적극 참여하고 있으나, 간혹 스크래치 교육의 목표를 ‘글로벌 ICT 인재 육성’ 등 편협한 범위에 한정하는 모습도 나타나고 있음
• 이렇게 접근하는 사람들은 필연적으로 교육을 통해 무엇을 이해했는지를 정량적으로 측정하는 방법은 있는지, 프로그래밍 교육의 평가방법이 무엇인지에 대한 문제로 옮겨가게 됨
• 스크래치 교육에서도 교사가 앞에 나와 아이들에게 일방적으로 지식을 가르치는 교수주의(Instructionism) 방식이 가능하지만, 만약 그렇게 된다면 정말 재미가 없을 것이며, 이는 영어 의무화 교육 등에서 이미 겪고 있는 실패한 방식임
<자료> JTBC [동영상] 왜곡된 코딩 조기교육 |
• 정말 중요한 것은 정량화 할 수 없는데, 정말 중요한 것은 목적이 무엇인지 제대로 파악하는 것이며, 레스닉 교수가 생각하는 교육의 핵심은 아이들이 ‘크리에이티브 씽커(creative thinker, 창조적 발상 능력을 학습한 사람)’로 자라게 하는 것임
• 아이들이 종종 ‘어떤 작품을 만들면 높은 점수를 얻을까요’라고 질문하는데, 이럴 때 스크래치 커뮤니티의 가이드들은 ‘여러분들이 재미있다고 생각하는 것을 만드세요’ 또는 ‘친구가 재미있다고 생각하는 것을 만드세요’라는 답변을 준다고 함
• 스크래치 수업 평가에 대해 일부는 시험 점수를 생각하고 있지만, 스크래치 개발팀은 참여자 간의 상호평가로 갈음하고 있으며, 장기적으로 ‘창의적인 생각, 체계적 추론 능력, 협력 능력’, 이 세 가지를 평가할 수 있는 방법을 어렵지만 만들어 갈 계획이라고 함
• 레스닉 교수는 스크래치의 목표는 어디까지나 ‘아이들의 표현 수단을 늘리고, 만들면 재미있겠다고 생각한 것을 실현하는 수단을 제공하는 것’임을 잊지 말아야 한다고 강조
'주간기술동향 최신ICT이슈 > 코딩' 카테고리의 다른 글
S/W 개발 생산성이 기업 경쟁력, ‘지속적 통합’ 도구 ‘젠킨스’ 인기 (0) | 2017.10.01 |
---|---|
미국 IT 기술분야 평균 연봉 역대 최고 수준 (0) | 2016.09.21 |
직장인 누구나 프로그래밍을 배워야 하는 이유 (0) | 2016.09.09 |