6. 마무리

지금까지 우리는 엔트리+아두이노를 활용한 하드웨어 제어 코딩교육의 기본을 살펴보았습니다. 지금까지 본 서를 통해 하드웨어 제어 코딩교육까지 거친 여러분은 이제 엔트리를 통해 범용(특정 하드웨어에 종속되지 않은) 소프트웨어(또는 애플리케이션)를 개발하기 위한 코딩과 특정 하드웨어를 제어하는 펌웨어를 개발하는 코딩의 차이에 대해 이제 어느 정도 감이 잡히셨을 것이라 생각됩니다. 실제 현업에서도 하드웨어를 잘 이해해서 그 하드웨어를 직접 제어하는 소프트웨어를 개발하는 전문가와 특정 하드웨어에 종속되지 않는 단지 하드웨어를 이용하는 측면에서의 소프트웨어를 개발하는 전문가로 나뉘어집니다. 이제 그 다음단계로 더 깊은 영역의 공부로 나아가는 것은 여러분 개개인의 몫이 될 것입니다. 이정도로 본인에게 충분하다 할 분도 있고, 더 깊게 공부해 전문가까지 되고 싶은 분도 있을 것입니다.

만약 조금 더 깊히 공부를 시작하고자 하는 분이나 교육자 입장에서 더 깊이 교육해 보고자 하시는 분이 있다면, 먼저는 이제까지 5장 전체에 결쳐 살펴본 하드웨어를 제어하고 소통하는 총 4종류(디지털 입/출력, 아날로그 입/출력)의 코딩이 기본임을 기억하시고, 이제 다음 단계는 더 다양한 종류의 외부장치(센서, 액추에이터*)들을 다뤄보는 코딩을 실습해 보는 것을 추천합니다. 본 서에서는 아두이노만 보드만 사용해 봤지만, 다른 종류의 아두이노 보드 또는 다른 제조사의 고사양 보드들(예를 들어, 라즈베리 파이 등)에 도전해 보실 수 있습니다. 또 하드웨어 보드에 따라 OS(Operating System) 설치해 기본적으로 모든 하드웨어 제어를 OS의 통제 아래서 수행하는 소프트웨어 개발에 관해서도 알아두실 필요가 있기 때문입니다.

액추에이터 (Actuator): 액추에이터는 시스템이나 기계를 움직이거나 제어하는 데 쓰이는 기계의 한 구성품이다. 일반적으로 추에이터는 에너지원으로부터 제어신호를 요구하며 제어신호는 상대적으로 낮은 에너지로 예를들어 전압, 전류, 기압, 유압 등의 형태로 된 에너지들을 어떠한 종류의 기계적 움직임으로 변환시킨다.

출처: 위키피디아

그러나 꼭 기계적인 움직임만으로 국한시킬 필요 없이 피지컬 컴퓨팅에서 말하는 외부 세계와 상호 소통하기 위해 외부로 표현되는 모든 종류의 표현(소리, 음성, 빛, 기계적 움직임 등)에 관한 것으로 이해하면 쉬울 것 같다. 코딩적으로는 디지털/아날로그 출력에 관한 코딩이 적용된다.

개발도상국(이하 개도국)에서 코딩교육을 통해 아이들 자신과 그 아이들이 살아갈 사회의 보다나은 미래를 준비하는 일에 기여하는 삶을 살아오고 있는 저자는 이곳의 아이들을 어떻게 하면 더 효과적으로 코딩교육 할 수 있을지를 고민하면서 도달했던게 블록코딩 언어에서 출발해 그 블록코딩 도구 안에서 더 실전 코딩에 가깝게 까지 교육할 수 있느냐에 대한 것이었습니다. 그 결과로 기존 엔트리가 제가 필요했던 기능이 부족함을 느꼈고, 오픈소스 엔트리를 직접 수정해 필요한 기능(하드웨어로 코드 업로드, 블록코드의 C++언어 변환)을 추가한 엔트리 커스텀 버전을 만들었습니다. 이후 그 커스텀 버전으로 어떤 식의 하드웨어 코딩교육을 시작해 볼 수 있을지를 알려주는 가이드를 제공해야 되겠다는 생각에서 본 서까지 등장하게 되었습니다. 본 서는 사실은 한국에 계신 분들보다는 개도국의 교사들을 염두해 두고 씌여진 것이고, 본 서는 앞으로 해당 개도국의 언어로 번역되어 개도국의 코딩교육 교사 교육용으로 활동되어질 것입니다.

끝까지에 읽어주셔서 감사드리고, 본 서 내용에 오류가 있거나 보완되었으면 하는 내용 등 어떤 의견이든 환영하며, 본 서가 공개되어 있는 Github의 이슈리스트에 의견 남겨주시길 바랍니다. 교딩교육을 통해 세상을 변화시키고자 하는 모든 분들의 참여를 환영하고 기다립니다. 감사합니다!

Last updated