프로그래밍 등 소프트웨어 교육 시장이 뜨겁다. 당장 내년부터 소프트웨어 교육이 의무화 되면서 내년도 중학교 신입생부터 소프트웨어 교육을 시작해 2018년에는 모든 초중고에서 정식 교과목이 된다. 이러한 움직임은 한국에서만은 아닌듯하다.
영국 정부도 지난 9월 영어, 수학, 과학, 스포츠와 더불어 컴퓨터과학을 필수 과목으로 지정했다. 이런 세계적인 물결에 교육열이라면 절대 빠지지 않는 한국 엄마들 사이에서도 소프트웨어 교육은 그야말로 붐이다. 국내 엄마들을 만족시키고 아이들의 흥미도 잡은 프로그래밍 교육 서비스 업체, 엔트리코리아(ENTRY KOREA)의 김지현 CEO와 심규민 CTO를 만나 그들의 기술에 대해 이야기를 나누어보았다.
엔트리코리아의 주요 사업에 대한 소개 부탁합니다.
소개 엔트리코리아는 기존의 어렵고 지루했던 소프트웨어 교육을 재밌게 바꿔 보자는 취지에서 시작해 현재 ‘엔트리’와 ‘엔트리봇 보드게임’ 두 서비스를 운영하고 있습니다. 엔트리는 쉽게 프로그래밍 원리를 학습하고 직접 프로그램을 만들어볼 수 있는 교육용 플랫폼이고 엔트리봇 보드게임은 재미있게 프로그래밍의 원리를 익힐 수 있는 교육용 보드게임입니다. 엔트리와 엔트리봇 보드게임은 학교에서도 교구로 채택돼 많이 보급되고 있습니다.
문제의식 소프트웨어 교육은 그 중요성이 강조되며 점점 주목을 받고 있지만 실제로 아이들이 소프트웨어 교육을 받는 데 있어서 프로그래밍 언어는 배우는 데에 진입 장벽이 높고 흥미를 느끼는데 쉽지 않다는 문제점이 있었습니다.
솔루션 비주얼 프로그래밍을 할 수 있는 툴을 만들고 있습니다. 즉, 아이들이 코드를 직접 작성하는 게 아니라 블록을 옮겨 쌓는 방식으로 직접 프로그래밍을 해보며 원리를 익히고, 프로그램을 만들어서 공유할 수 있는 서비스를 제공하고 있죠. 프로그램을 만들면서 바로바로 직접 실행해 볼 수 있기 때문에 아이들에게 흥미를 유발합니다.
엔트리코리아의 핵심 기술은 무엇이라고 할 수 있나요
블록 프로그래밍 블록의 형태로 레고를 쌓아서 성을 만들듯 프로그램을 만들 수 있습니다. 이 블록 안에 기능을 수행할 수 있는 코드들이 짜여 있는 것인데요. 블록의 명령어도 ‘시작하기’, ‘열 번 반복하기’와 같이 모두 한글로 풀어져 설명돼 있기 때문에 어려움 없이 사용할 수 있습니다. 사용자들은 이 블록들과 함께 차근차근 논리를 쌓아가며 프로그래밍의 기본 원리에 대해 이해하게 됩니다.
엔트리는 일반적으로 사용하는 자바스크립트, C언어와 같은 프로그래밍 언어 문법에서 개념을 가져왔습니다. 실제 프로그래밍 언어에서 있는 개념들은 전부 들어 있다고 봐도 무방합니다. 분기문, 조건문, 반복문 등 이벤트나 변수 리스트까지 다 있습니다. 다만 ‘화면 끝에 닿으면 튕기기’와 같은 것은 실제 언어에는 없는 블록도 있습니다.
이 블록을 다른 블록들로 구현하려면 십여 개 블록이 필요하고 아이들의 입장에서는 구현이 쉽지 않기 때문에 실제 언어에 없는 것들을 추가로 만들게 됐죠. 프로그래밍 언어에선 일종의 라이브러리라고 보시면 되겠죠. 사실 교육용 프로그램이다 보니 이런 종류의 블록을 추가하는 데 고민이 많습니다. 만들기에는 편리하지만, 교육적인 측면에서 만드는 게 옳은지 고민이 됩니다.
인터프리터 블럭 프로그래밍이 마무리되면 실제 프로그래밍 언어도 변환해서 실행할 수 있게 만들어 주어야 하는데 이것을 엔트리 인터프리터(interpreter)가 합니다. 이 인터프리터 기술은 우리 핵심 기술 중 하나입니다. 사실 블록 언어가 간단해 보이지만 프로그램을 만들기 쉽게 하면 할수록 인터프리터 구현은 어려워지기 마련인데요. 블럭으로 프로그램을 완성하면, 인터프리터는 실시간으로 자바스크립트로 변환하여 실행합니다.
저희가 자바스크립트를 선택한 것은 엔트리가 웹앱의 형태로 컴퓨터에서 프로그래밍과 실행이 모두 이뤄지게 하기 위해서 최적의 언어이기 때문이죠. 서버 역시 node.js를 채택해서, 자바스크립트 언어 하나로 개발을 통일했어요. 저희 개발팀의 장점이라 할 수 있죠. 그런데 인터프리터를 구현하면서도 어려움이 있었어요.
사용자가 프로그램을 완성하고 나서야 실행하는게 아니라 블럭 하나 추가하고 실행해 보고 하는 식으로 점진적으로 프로그래밍해야 하기 때문에 이를 실시간으로 어떻게 빠르게 변환하고 실행하느냐가 이슈였죠. 처음에는 개별 블럭을 자바스크립트로 변환하는 형태로 만들었는데, 그런 구조에선 자바스크립트가 잘 안 맞더군요. 그래서 블럭 프로그램을 일단 XML 구조로 바꾸고 그것을 자바스크립트로 변환하는 방식으로 구현해서 지금은 안정적으로 돌아가고 있습니다.
하드웨어와 연동 엔트리로 활용할 수 있는 분야는 무궁무진합니다. 그 중 하나가 최근 IoT(사물인터넷)의 핵심 장치인 아두이노를 연결하는 것이죠. 아두이노 프로그램을 엔트리에서 만들 수 있다는건 아니고, 엔트리에서 만든 프로그램과 아두이노를 연결할 수 있다는 것입니다. 예를 들어, 아두이노 기반의 입력 장치를 만들고 거기서 들어온 입력값에 따라 엔트리 프로그램이 동작하는 것이죠. 이를 위해선 엔트리의 연결 프로그램을 아두이노에 설치할 필요가 있습니다.
엔트리와 아두이노의 연결을 통해 다양한 시도를 해 볼 수 있습니다. 아두이노를 엔트리 프로그램의 입력 장치로 활용하여, 키보드와 마우스 이외의 새로운 입력(제스처, 터치 등)을 엔트리 프로그램에 적용해 볼 수 있습니다. 또한, 엔트리 프로그램에서 아두이노를 제어하는 역할을 할 수도 있습니다. 그렇게 되면, 아이들이 엔트리 프로그램으로 드론을 조정하거나, 여러 사물인터넷 장치들을 제어할 수도 있겠죠. 지금은 아두이노와 USB로 연결되고 있지만, 향후 블루투스로 연결할 수 있도록 준비 중입니다.
유아 대상 소프트웨어 교육 관련한 국내외 최신 트렌드는 어떤가요?
사실 지금 우리나라 소프트웨어 교육 시장은 굉장히 주목받고 있죠. 현재 72개의 초등학교와 100 여 개의 중학교가 소프트웨어 교육 시범학교로 지정돼 시범운영 되고 있습니다. 엔트리와 엔트리봇 보드게임도 교구로 채택돼서 많이 사용되고 있습니다다. 사실 학교가 지금 우리의 가장 큰 고객이기도 합니다.
내년부터 소프트웨어 의무교육이 시작되니 더 수요가 늘 거라 생각합니다. 이렇게 소프트웨어 교육이 이슈가 되며 여기저기에서 관련 사업들이 생기고 있습니다. 인터넷 강의나 관련 교제들은 많이 만들어지고 있는 것 같지만, 아직 우리와 비슷한 서비스는 못 본 것 같아요. 이렇게 툴을 만드는 것은 공수가 많이 들고 기술이 필요해서인 것 같습니다.
현재 엔트리코리아의 경쟁사들의 기술은 어떠한가요?
사실 스크래치(scratch)가 항상 경쟁사로 언급되는데요. 스크래치는 MIT 미디어 랩에서 만든 블럭 기반 교육용 프로그래밍 언어입니다. 블럭 기반이라는 점에서 유사한 측면이 있습니다. 저희도 스크래치를 벤치마팅했구요. 하지만, 스크래치는 스퀵(squeak)이라는 특수한 언어로 만들어졌기 때문에 현재는 컴퓨터에서만 실행할 수 있습니다. 하지만, 엔트리는 자바스크립트 기반이기 때문에 모바일 환경에서 훨씬 우위를 가지고 있죠. 앞으로 교육 환경이 태블릿 등의 모바일 환경으로 빠르게 전환될 것으로 예상하고 미래를 준비하는 것입니다.
또한, 엔트리는 스크래치와 달리 프로그램에서 에러가 날 때 어디서 에러가 났는지 제시해주며 블록이 이벤트의 어느 부분에 사용된 것 인지도 추적이 가능합니다.
그럼에도 불구하고 엔트리와 스크래치는 언어적인 측면에서 유사하다는 것을 부인할 수 없습니다. 그리고 엔트리가 기술적 우위를 점하는 부분이 물론 있지만 모든 부분에서 그렇지는 않죠. 하지만 지난 1년을 돌아보면 확실히 엔트리가 빨리 발전하고 있습니다. 이정도 속도라면 내년 정도엔 확실한 갭을 만들 수 있을 거라고 생각합니다.
사실 스크래치와의 차별성은 지향점입니다. 스크래치는 언어적인 측면이 강하지만 엔트리는 플랫폼으로 성장하고자 한다. 사람들이 모여서 콘텐츠가 생산되고 유통되는 장을 만들고 싶습니다.
향후 기술과 사업의 발전 방향은 어떤가요?
공유와 협업 지금 개발을 하고 있는 부분인데, 블록들을 묶어서 저장해 공유할 수 있는 기능을 준비하고 있습니다. 즉, 라이브러리를 만드는거죠. 이렇게 되면 사용자가 블록 자체를 선언해서 만들 수 있으며, 이것을 다른 사용자와 공유해 사용할 수 있게 됩니다.
협업 프로그래밍도 기획하고 있습니다. 아이들이 함께 팀을 이뤄 프로그램을 만들고 수정할 수 있는 기술을 준비하고 있습니다. 사실 커뮤니케이션이나 커뮤니티 형성도 엔트리가 갖는 장점이라 할 수 있어서 이를 잘 활용할 수 있는 방법을 찾고 있습니다.
데이터를 활용한 피드백 엔트리에는 아이들이 만들어서 올려놓은 프로젝트가 현재 5천여 개 정도 있습니다. 이 프로젝트를 이해하고 분석해서 활용하고자 합니다. 쌓여있는 데이터를 활용해 지금의 서비스에서 한발 더 나아가 사용자가 프로그램을 만들면 분석된 데이터를 활용해 “이런 것도 해봐” 하고 추천해 주고 유사한 프로젝트를 제시해주거나 사용자들의 상대적인 수준을 평가하는 등 다양한 서비스를 할 수 있을 것 같습니다. 이런 것들이 마련되면 확실한 기술적 우위를 가질 수 있을 것입니다.
교육사업 개발 못지않게 중요한 것이 교육이라고 생각합니다. 역량도 개발과 교육으로 크게 나뉩니다. 현재 네이버에서 진행하는 소프트웨어 교육 캠페인 ‘소프트웨어야 놀자’에 파트너로 참여하고 있습니다. 특별페이지에 들어가면 EBS의 엔트리를 활용한 강의 영상을 들을 수 있고 엔트리로 직접 구현도 해볼 수 있게 만들어져 있습니다. 앞으로도 교재, 교구 제작, 교육 커리큘럼 운영 등 다양한 방법의 교육 사업을 계속해서 진행할 것입니다.
아시아 시장 진출 비즈니스 측면에서 아시아시장에의 진출도 진행 중입니다. 사실 우리나라 못지 않게 인도네시아, 베트남과 같은 동남아시아에서도 소프트웨어 교육 붐이 활발히 일고 있습니다. 그래서 서비스를 준비 중이다. 베트남 같은 경우에는 벌써 베트남어 버전이 나왔고 호치민 사범대학교와 하노이 과학기술대학과 MOU를 맺어 교사를 양성하고 있습니다. 차후에 중국어와 일본어 버전도 계획 중입니다.
한국에서 테크 스타트업으로서 생존하며 느끼는 바가 있다면 무엇이 있나요?
테크 스타트업을 하며 겪는 어려움 사실 개발자가 테크 스타트업에서는 필수적인데 좋은 개발자를 찾는 게 쉽지 않아요. 우리나라에 개발자가 10만이다, 20만이라고 이야기는 하지만 개발자 풀에 허수가 많은 것 같습니다. 그 중에서 정말 개발을 할 수 있는 사람은 얼마 되지 않는 것 같아요. 그리고 이런 준비가 된 사람이라고 하더라도 우리와 맞는지 한 번 더 검증이 필요하고 이를 충족시키는 사람은 정말 찾기 힘듭니다. 또 잘하는 사람들은 자기 사업을 하거나 대학원을 가거나 큰 회사에서 데려가기 마련이죠. 이제 시작하는 스타트업은 좋은 개발자는 찾아내도 데려오기 힘든 것입니다.
정부, 대기업에의 바람 앞서 말한 개발자를 찾는 게 쉽지 않다는 문제점을 해결하기 위해서 정부에서 인턴제를 지원 해주면 좋겠다고 생각합니다. 정부에서 지원을 해주면 서로 부담 없이 회사 입장에서는 같이 일해보며 개발자에 대해 알아갈 수 있고 개발자 입장에서는 회사에서 경험하며 배울 수 있는 거죠. 사실 지금도 창직인턴제와 같은 인턴기관 프로그램이 있지만 개발자에 집중돼 있지 않고 지원 규모가 조금 작아서 아쉬움이 있습니다.
테크 스타트업을 위한 조언 테크 스타트업은 다른 서비스 업계보다 까다로운 점이 많습니다. 설립 초반에 많은 기술 개발 활동과 비용이 필요하지만 수익은 늦게 나고, 개발해왔던 내용을 상황에 따라 바꾸어야 할 일도 많습니다. 하지만 테크 스타트업은 사업이 궤도에 오른다면 다른 회사에 비해 확고한 우위를 가질 수 있기 때문에 매력적입니다. 이러한 리스크를 잘 관리하고, 꾸준히 정진한다면 좋은 결과를 얻을 수 있으리라 생각합니다.