brunch

You can make anything
by writing

C.S.Lewis

by 스스로 코딩 두셀코 Oct 27. 2017

코딩교육, 어떻게 시작해야할까? (3) - 아두이노형

아두이노형

IoT, 사물 인터넷, 로봇

이 단어들 들어보신 적 있나요? 요즘 IT 관련 뉴스에서 가장 많이 등장하는 단어들 중 하나인데요, 다음과 같은 뉴스들도 종종 보셨을 겁니다. 



세 블록 요약


1. 미래의 먹거리는 사물 인터넷

http://www.yonhapnews.co.kr/bulletin/2016/07/12/0200000000AKR20160712109300002.HTML

사물인터넷 유망 분야는 스마트홈, 스마트 시티, 커넥티드 카
세계 평균에 비해 새로운 기기 수용률과 구매의사는 높지만, 사생활 침해와 가격에 대한 우려 또한 훨씬 높다.
ICT 인프라가 잘 되어있는 우리나라를 글로벌 사물인터넷 산업의 테스트베드로 만들어야 한다.



2. 로봇 시장 전망 밝아

http://biz.chosun.com/site/data/html_dir/2017/07/13/2017071301982.html

협동 로봇이란 인간 작업자 근처에서 작업을 도와주는 로봇
일본, 미국, 유럽 등에서는 협동 로봇의 도입을 적극적으로 장려하기 때문에 로봇 산업에 대한 전망은 밝음
로봇 시장의 60% 이상은 제조 산업 분야의 로봇 (대표적으로 FANUC(일본), KUKA(독일), 폭스콘(대만)



3. 소프트웨어 기업, 하드웨어로 진출

http://www.hani.co.kr/arti/economy/it/815494.html

구글, 아마존, 네이버, 카카오 등 소프트웨어 기업들이 AI를 접목한 하드웨어 제품들을 내놓기 시작했다. 예) 구글 : 구글 픽셀폰, 아마존 알렉사, 네이버 웨이브, 카카오 미니
소프트웨어 기업들의 이런 움직임은 온라인 상에서 수집하는 데이터의 종류와 양에 한계를 느끼고 오프라인 데이터 수집으로의 확장하는 것이라 볼 수 있다.
이들 소프트웨어 기업들의 궁극적인 목표는 다양한 하드웨어를 통한 이용자 접점 확대→데이터 수집→인공지능기술 발전→플랫폼 성능 강화→생태계 확대→새로운 비즈니스 모델 창출이다.


이 기사들 중 가장 주목해야 할 기사는 세 번째 기사인데요, '소프트웨어가 중요하다!'라고 말하는 뉴스들 사이에서 '하드웨어도 중요해지는데?'라고 말하는 기사입니다. 


IT 뉴스에 대해 꾸준히 관심을 가진 사람들이면 눈치챘을지도 모르겠지만, 이제 소프트웨어가 중요하다 라고 말하는 것은 당연한 이야기가 되어버렸고, 점점 하드웨어의 중요성도 커지고 있습니다. 대표적인 소프트웨어 기업인 구글이 안드로이드 운영체제로 시장을 독점하다시피 했는데도 하드웨어의 벽에 부딪혀 자체 생산한 스마트폰(픽셀)을 들고 나왔으니 말이죠!




사물인터넷은 IoT라고도 부릅니다. IoT는 Internet of Things 의 약자로, 모든 사물(하드웨어)이 데이터를 수집하고 인터넷을 통해 공유할 수 있다는 것을 뜻합니다.


한 예로 냉장고가 있습니다. IoT 기술이 적용된 냉장고는 우유의 유통기한이 끝나간다는 것을 사용자에게 알려주고, 외부 기온에 따라서 냉장고 내부 온도도 조절할 수 있습니다. 그리고 사용자의 식사 패턴을 인지해서 식단을 조절해줄 수 있죠.


IoT 기술은 기본적으로 센서에 수집되는 데이터를 기반으로 합니다. 그래서 IoT은 빅데이터와 뗄 수 없는 관계죠. 모든 사물에 센서를 부착하게 되면 엄청난 양의 데이터가 모이겠죠? 냉장고에 온도 센서를 붙이면 실시간으로 측정된 온도 데이터가 모이고, 자전거에 자석 센서를 붙이면 실시간으로 자전거 바퀴 회전 횟수 데이터를 모을 수 있겠죠? 


이렇게 모이는 데이터의 양이 기존에 있던 데이터 양에 비해서 매우 크기 때문에 '빅데이터'라고 부르는 것입니다. 그리고 이렇게 수집된 '빅데이터'를 기반으로 IoT 기술을 발전시킬 수 있는 것입니다.


간단히 말하자면, IoT 기술은 센서를 통해 데이터를 모으고 공유하면서 사용자에게 필요한 작업을 하는 기술입니다. 


이제 IoT 기술이 무엇인지 알았으니, 앞으로 IoT 교육이라고 하면 무엇을 가르치는 것인지 감이 오시지 않나요?





아두이노형 코딩교육이란?

- 대상 : 중등 이상
- 선행지식 : 전자 기초, 기초 프로그래밍 원리
- 준비물 : 아두이노 스타터 키트, PC
- 목적 : 하드웨어에 탑재되는 프로그램을 직접 개발해봄으로써, 하드웨어 작동 원리에 대한 이해와 프로젝트를 진행하면서 기초적인 프로그래밍 실력과 문제 해결 능력을 기르는데 도움을 줌 

지난 글부터 쭉 읽으신 분들이면 아시겠지만 이번 글에서는 '아두이노형 코딩 교육'에 대해서 소개하도록 하겠습니다.


'아두이노' 는 IoT 교육을 위해 사용되는 교육용 개발 보드입니다. 


조금 더 자세하게 알아볼까요? IoT 기술이 접목된 기기들(예. IoT 냉장고)은 모두 작은 칩을 가지고 있습니다. 이 칩* 안에는 센서로부터 측정된 데이터를 처리하는 프로그램이 들어있습니다. 그래서 IoT 교육은 데이터를 수집을 해서 원하는 결과를 만들어 내는 프로그램을 개발하는 것이죠!


* 칩은 CPU, 메모리, 입출력 버스, 디지털 신호 처리기 등 데이터 처리에 필요한 것들이 모여있는 하드웨어이고, SoC (System on Chip) 등으로 부릅니다 (출처 : 위키피디아)
데이터 처리 : http://www.dataireland.ie/Services/DataProcessingServices


그런데 이 칩은 정말 작아서 직접 개발하기 어렵습니다. 그래서 나온 것이 개발 보드입니다. 개발 보드는 IoT 제품을 생산하기 전, 칩에 들어가는 프로그램을 편리하게 개발하기 위한 도구입니다. 


아래 그림에서 왼쪽은 칩이 탑재되어있는 개발 보드이고, 오른쪽은 칩에 들어가는 프로그램을 개발하기 위한 소프트웨어 애플리케이션입니다. 하드웨어 구입은 쇼핑몰(예. 에듀 이노)에서 검색해서 아두이노 우노 스타터 키트(입문용)를 구입하시면 됩니다! 소프트웨어는 아두이노 홈페이지에서 설치하실 수 있어요!




준비 1. 개발 환경 만들기


1) 아두이노 개발 키트 사기

2) 아두이노 프로그램 설치하기 


아두이노 관련된 수업을 진행하는 선생님들이나 혼자 공부하고 싶은 입문자들은 가장 먼저 개발보드 구입과 프로그램 설치까지 마친 후 아두이노 교육을 진행하면 됩니다!



준비 2. 알아두면 좋은 사전 지식


1) 전자 지식에 대한 기초 지식 

2) 기초적인 프로그래밍 원리에 대한 이해 (변수, 반복문, 조건문, 함수 등)


아두이노 교육은 스크래치 교육과 다르게 미리 알아두면 좋은 지식들이 많습니다. 기초적인 전자 지식과 프로그래밍 지식인데요, 아무래도 센서를 직접 연결하는 등 전자 관련 작업들이 있기 때문에 사전에 알아두면 좋을 것 같습니다. 


그리고 프로그램을 개발할 때, 스크래치와 같은 블록 코딩이 아니라 프로그래밍 언어(C/C++)를 활용하기 때문에, 변수, 연산자, 반복문, 조건문, 배열, 함수 등이 무엇인지에 대한 개념을 알고 있으면 좋습니다.


하지만 학습에 꼭 필요한 지식은 아닙니다. 


아두이노 교육 경험이 많은 분에 따르면, 사전 지식이 없어도 알려주면 곧잘 따라 할 수 있다고 합니다! 

그러니 사전 지식이 없더라도 너무 걱정 안 하셔도 됩니다 ^^



학습하기


온오프라인 양쪽으로 유용한 프로그램들이 많이 있습니다. 


온라인으로 학습하기


1. 생활코딩 아두이노 강의

1. 코코아팹

2. 하드카피

3. 메카솔루션 네이버 블로그

4. ODIY(Opensource DIY)

5. 인프런

6. 에듀캐스트

7. 심프팀(유튜브)


그리고 개발 보드 없이 아두이노를 사용해보고 싶은 분들은 circuits.io 를 통해서 체험해보실 수 있습니다!

https://youtu.be/OCmeyJA5IRk

circuits.io 사용 영상


오프라인으로 학습하기


1. 팹랩 (워크숍)

2. 국비지원 IoT전문가 과정

3. 정부 / 대학 / 기업 / 커뮤니티 주관 IoT 교육


최근 IoT 교육이라는 이름의 교육들은 대부분 아두이노를 활용한 교육이라고 볼 수 있습니다.


국립대구과학관 오프라인 IoT 교육 홍보 포스터(왼쪽)와 코코아팹, 위즈네트의 IoT 교육 홍보 포스터(오른쪽)



하지만 온라인, 오프라인 둘 다 큰 단점이 있습니다. 

아두이노의 경우 하드웨어의 잔고장이 많습니다. 그래서 온라인을 통해서 혼자 학습을 하는 경우, 코딩을 잘못한 것인지 하드웨어에 문제가 있는지 알아내는데 시간이 꽤 걸릴 때가 있습니다. 뿐만 아니라 하드웨어가 고장 났을 때 다시 구매를 해야 하는 불편함이 있습니다.


정부, 대학, 기업, 커뮤니티의 오프라인의 활동은 비정기적이고 단기 교육인 경우가 대부분입니다. 


오프라인 교육이 효과적이긴 하지만, 인력이 부족하고 충분한 교구 확보에 대한 어려움 등 물리적인 한계가 많기 때문에 흥미가 있더라도 지속적으로 교육을 받기는 어렵습니다.


그럼에도 최근에는 IoT 에 대한 관심도 높아지고 많은 활동들이 있기 때문에 이런 한계를 극복하면서 IoT 교육이 활발하게 이뤄지고 있는 것 같습니다!

https://www.slideshare.net/YooEdward/iot-2-51962499


아두이노형 코딩교육을 통해 다음과 같은 능력을 키울 수 있습니다.


1) 하드웨어 작동 원리와 프로그래밍에 대한 기본적인 지식을 갖출 수 있습니다.


2) 프로그래밍 언어를 사용하여 개발을 할 수 있습니다.


3) 스스로 프로젝트를 개발하면서 창의력과 문제 해결 능력을 키울 수 있습니다.


아두이노형 교육은 눈으로 직접 보고, 손으로 만지면서 프로젝트를 할 수 있고, 이를 통해 현실 문제를 해결하는 즐거움도 함께 맛볼 수 있습니다. 그리고 전자 지식, 하드웨어 지식 그리고 프로그래밍 실력까지 얻어갈 수 있는 게 많은 교육이라고 생각합니다!




코코넛랩은 스크래치형 교육과 아두이노형 교육 간에 완충작용을 할 수 있는 교육 단계가 아직은 없다고 생각합니다.


그렇기 때문에 앞으로 기초적인 프로그래밍 원리에 대한 글을 연재하고, 프로그래밍 기초 지식에 대해 학습할 수 있는 모바일 애플리케이션을 기획할 예정입니다.


코코넛랩의 이런 활동이 올바른 소프트웨어 교육 확산에 조금이라도 보탬이 되길 바라면서 다음 글에서 만나요!


다음 글에서는 심화 프로그래밍 교육인 '알고리즘형 코딩 교육'에 대해서 다뤄보도록 하겠습니다 :)


글은 쭈욱~ 이어집니다.



매거진의 이전글 코딩교육, 어떻게 시작해야할까? (2) - 스크래치형
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari