코딩

스크래치는 왜 이름이 스크래치 인가?

opencode 2018. 1. 21. 20:59



스크래치는 가장 널리 활용되는 EPL로 블록형 코딩을 대표하는 블록형 코딩 언어이다. 아이들도 쉽게 코딩을 배울 수 있도록 하기 위한 여러 시도 중 2007년 미첼 레스닉 MIT 교수가 주도해 MIT 미디어랩이 개발해서 널리 활용되는 것이 스크래치(Scratch)'.

 

프로그래밍 언어 중 C는 랭귀지 B이후에 개발된 것이라 C라는 이름을 붙였다는 것은 널리 알려져 있다. 그런데 스크래치는 왜 스크래치란 이름을 붙였을까? 이 부분에 대해 많은 코딩강사들에게 물어봐도 정확하게 아는 분이 없어서 좀 아쉬웠다.

 

이름은 정의이고 본질인데 그 이름을 왜 스크래치라고 지었는지 모른다면 스크래치 교육 더 나아가 블록형 코딩 교육의 본질을 이해하지 못하고 교육을 하는 것은 아닌가 하는 우려가 있다




우선 스크래치를 영어 사전에서 찾아 보았다. 사전적 의미는 긁다, 긁힌 할퀸 자국, 있는 대로 그러모아 만든 등 별로 좋은 어감은 아닌 것 같다. 저렇게 귀여운 고양이가 주인공인 프로그래밍 언어를 그렇게 힘들여서 만들고는 멋진 이름을 붙이지 않고 왜 긁힌 자국 이라는 뜻의 스크래치로 지었을까?






70년대부터 생겨나기 시작한 클럽, 나이트 클럽에 가면 디제이가 있다. 이들은 여러 가수의 판을 가져와서 긁고 비비고 하면서 특이한 소리를 만들어 내면서 여러 음악을 mixing 해서 손님들의 흥을 돋운다. 치키치키 촤촤. 옛날 생각 난다.

 

이러한 DJing은 음악을 만들지는 않지만 있는 기존의 음악의 좋은 부분을 잘 섞어서 새로운 음악으로 만들어 내는 일을 하는 것이다. 이러한 믹싱 작업을 스크래치 한다고도 한다. 판을 긁고 문지르고 하기 때문에 그렇게 부른다






그러면 이러한 클럽의 디제잉과 코딩이 무슨 상관이 있어서 그 랭귀지를 스크래치라고 지었을까? 스크래치의 창시자들은 학생들이 처음부터 끝까지 혼자서 코드를 만들어 내는 즉 창조(創造)해 내는 것을 생각하지 않았던 것이다. 아이디어가 떠 오르면 이미 기존에 만들어진 여러 작품들의 필요한 코드를 섞어서 자기만의 작품으로 창의(創意)하기를 윈했고 그것에 맞는 교육 툴이라고 생각했기 때문에 스크래치라고 네이밍 한 것이다.





스크래치 공식 사이트에 들어가면 몇 가지 카테고리가 있는데 사람들이 최근에 코드를 공유하기 시작한 작품과 사람들이 리믹스 중인 프로젝트를 보여주는 카테고리가 있다. 리믹스디제이가 하는 일이 리믹스 아닌가





그 중의 한 작품인 Super Cart란 자동차 게임을 눌러 보았다. 오른쪽 하단에 나무모양이 있고 87이란 숫자가 보인다. 그것을 눌러보면




이렇게 87개의 작품의 계통도가 나온다. 리믹스 트리이다. 누가 누구의 코드를 가져다 사용했는지 스크래치 사이트에 등록하면 자동으로 저렇게 리믹스 트리를 만들어 준다.

 

스크래치 이전의 텍스트 코딩 교육의 경우 오픈소스라는 것이 있기는 하지만 많은 것을 스스로 다 창조해 나가는 상당히 길고 어려운 과정을 마스터 해야 했다. 직업을 구하기 위한 성인교육에서는 그것을 참고 견딜 수 있을 지 모르지만 꼭 프로그래머가 되려는 생각이 없는 아이들 교육에서는 상당한 장애가 될 수 밖에 없었다.

 

아이디가 있으면 자신이 아직은 만들 수 없는 코드는 다른 사람의 코드를 가져와서 창의하는 것이니 코딩의 기술보다는 문제를 해결하는 설계 능력이 중심이 되도록 고안된 것이다. 그리고 리믹스 하면서 공유화 협업정신까지 배울 수 있도록 스크래치는 만들어진 언어인 것이다.

 

결론적으로 스크래치는 창조교육이 아니라 창의교욱의 도구로서 고안된 것이고 문제해결력이 코딩의 기술 보다 중요하다는 철학이 그것이 이름에 투영되어 있는 것이다. 그런데 현재 많은 코딩 강사들이 이렇게 좋은 툴을 기존의 텍스트 코딩 가르치듯이 활용하는 것을 많이 봐서 그냥 한 번 적어 봤다