> For the complete documentation index, see [llms.txt](https://jjlee.gitbook.io/entry-arduino/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jjlee.gitbook.io/entry-arduino/entry.md).

# 1. 엔트리란

[엔트리](https://play-entry.org)는 네이버 자회사 비영리 기관인 [커넥트 재단](https://connect.or.kr)에서 제작하고 후원하는 오픈소스 코딩교육용 언어(EPL: Educational Programming Language) 입니다. 한국에서는 코딩교육에 가장 많이 채용되고 활동되는 언어입니다. **코딩교육은 두 종류로 나눌 수 있는데 순수 소프트웨어 개발 중심의 코딩교육(이하 소프트웨어 개발 코딩교육)과 하드웨어를 제어하는 소프트웨어 개발 중심의 코딩교육(이하 하드웨어 제어 코딩교육)으로 나눌 수 있습니다.**

하드웨어 코딩교육이라는 본 서의 저술 목적 관점에서 볼 때 전 세계적으로 가장 널리 알려져 있고, 가장 많은 사용자를 보유한 코딩교육용 언어인 [스크래치](https://scratch.mit.edu)보다 **엔트리가 우월한 점은 소프트웨어 개발 코딩교육을 넘어 아두이노 포함 수십여 종의 코딩교육용 하드웨어의 기본(default) 지원을 통해 다양한 하드웨어 제어 코딩교육 까지도 엔트리 안에서 교육할 수 있다는 것입니다.** 실제로 엔트리는 60-70여종(중복제외, 2021년 기준) 이상의 코딩교육용 하드웨어를 지원하고 있으나, **스크래치는 소수 특정 하드웨어(2021년 기준, 레고 마인드스톰즈, 마이크로비트 등 총 6종)만 지원하고 있습니다. 그 중에서도 전 세계적으로 피지컬 컴퓨팅\*, 메이커 운동(Maker Movement)에 가장 보편적으로 사용하는 아두이노를 지원하고 있지 않는 것은 가장 큰 단점 중에 하나**입니다.

{% hint style="info" %}
**피지컬 컴퓨팅(Physical Computing)**: 실 세계(real world)로부터 어떤 정보를 취하고(sense) 취한 정보에 어떤 반응으로 답하며(respond) 실 세계와 상호작용하는(interective) 시스템. 사실상 매우 광의적인 의미로  간단히 표현하면 디지털로 동작하는 하드웨어 통해 실 세계(물리적 세계)와 소통하는 시스템이라 할 수 있고, 학문적으로는 전자공학, 기계공학, 컴퓨터공학, 로봇공학, 산업공학 등의 다수의 학문들과 관련되어 있다 할 수 있다.

출처: 위키피디아
{% endhint %}

**엔트리의 단점으로는** 두 가지 코딩교육 중에서도 소프트웨어 개발 코딩교육에 더 방점이 있다 보니, 엔트리와 하드웨어를 연결해 블록코딩으로 하드웨어를 제어해 보는 하드웨어제어 코딩교육이 가능하기는 하나, 조금 더 나아가 실제 실무나 실전에 가까운 수준에 코딩교육까지는 나아가지 않는다는 점입니다. 가장 아쉬운 부분은 **블록코딩한 코드를 실제 하드웨어에 저장(코드 업로드)시키는 기능이 없는 것으로, 제어하고자 하는 하드웨어는 항상 엔트리와 실시간 연결되어 있어야만 동작한다는 것입니다. 즉, 엔트리와 연결없는 하드웨어 안에 기 업로드 되어 저장된 코드에 기반해 독립적으로 동작 시킬 수 없다는 점**입니다. 예를 들어 해당 기능이 없으면  하드웨어를 활용한 경연/경진대회나 메이커 활동에 제약이 따를 수 밖에 없는데, 왜냐하면 시연(데모) 또는 결과물의 활용을 위해서는 항상 노트북 이나 컴퓨터 상에 실행된 엔트리와의 연결을 통해서만 동작하기 때문입니다.

그래서 **본 책의 저자는 오픈소스인 엔트리를 수정해** 하드웨어(2021년 기준 아두이노와 한국 공교육 교과서에서 가장 많이 채용된 네오피아의 최신 모델 [네오쏘코](http://neobot.co.kr/product/%EB%84%A4%EC%98%A4%EC%8F%98%EC%BD%94/223/) 이상 2가지)로의 **코드 업로드 기능을 구현하였습니다.** 또한 엔트리가 기존에 블록코딩을 넘어 실전 소프트웨어 코딩교육 즉 텍스트 기반 코딩교육과의 연계를 위해 블록코딩의 파이썬 코드변환 및 파이썬 텍스트코딩 기능을 제공했던 목적과 유사하다. **참고로 코드의 하드웨어 업로드 뿐만 아니라, 아두이노 하드웨어에 한해서 블록코드의 C++ 텍스트코드로의 변환과 C++ 텍스트코딩 기능 일부 가능하도록 기능추가 하였습니다.**&#x20;

**이제 엔트리는 실전에 가까운 하드웨어(특별히 아두이노를 활용한) 제어 코딩교육에 손색이 없는 도구로 변모하였습니다.** 이러한 저자의 작은 노력이 한국과 전 세계 특별히 개도국(개발도상국) 코딩교육에 기여해 4차 산업혁명이 주도하는 미래사회를 살아갈 어린이들의 삶에 조금이나마 보탬이 될 수 있기를 소망합니다.

아래는 하드웨어 코드 업로드 기능과 아두이노 C++코드변환 기능이 추가된 버전의 다운로드 링크입니다.

**엔트리 커스텀 버전 안내**: <https://github.com/JeongJun-Lee/entry-offline>

**엔트리 커스텀 버전 다운로드**:  <https://github.com/JeongJun-Lee/entry-offline/releases>

**엔트리 커스텀 버전 코드업로드 시연(데모)**:

* 아두이노: <https://www.youtube.com/watch?v=ZXWgiRx1mv0>
* 네오피아 네오쏘코: <https://www.youtube.com/watch?v=_9VuT8v359c>
