레플(REPL) 레플사이트 환경 구성하기여기서는 윈도우에서 마이크로비트에 시리얼로 접속하여 명령을 줄 수 있는 레플(REPL) 환경을 구성합니다. 아두이노에서 시리얼 모니터를 사용하는 환경과 같습니다. REPL은 Read-Evaluate-PrintLoop의 약자로 파이썬의 읽고 계산하고 출력하는 회전 동작을 의미합니다. REPL은 여러분이 시리얼로보드에 접속한 후, 코드를 직접 입력하여 실행해 볼 수 있는 환경을 제공합니다. 또한 프로그램 실행시발생하는 문제를 출력하여 해결하는데 도움을 줍니다. 다음과 같은 순서로 REPL 환경을 구성합니다.01. putty 프로그램 설치하기마이크로비트 PC와 시리얼 통신을 해보도록 하겠습니다. 통신을 하기 위해 여기서는 마이크로비트 보드와 통신할 PC용 터미널 프로그램을 설치하도록 합니다. 터미널 프로그램은 putty, Tera Term 프로그램이 대표적이며, 여기서는 putty 프로그램을 설치합니다.01) 구글에서 다음과 같이 putty 프로그램을 검색합니다.02) 다음 사이트를 찾아 들어갑니다.03) 다음과 같은 페이지가 열립니다. [here] 링크를 마우스 클릭합니다.04) 다음 페이지로 연결됩니다. [putty.exe] 링크를 마우스 클릭합니다. 32비트 또는 64비트 용 프로그램을 다운로드 받습니다.05) 바탕 화면에 프로그램을 다운로드 합니다. 이 프로그램은 설치과정 없이 바로 사용할 레플사이트 수 있습니다.02. 시리얼 포트 확인하기여러분이 마이크로비트를 PC에 연결할 경우 마이크로비트는 저장 장치로도 인식되지만, 시리얼 포트도 제공합니다. 이 시리얼 포트를 통해 마이크로비트에 접속할 수 있습니다. 여기서는 마이크로비트의 시리얼 포트를 확인합니다.01) 화면 하단에 있는 [파일 탐색기]를 마우스 클릭합니다.02) [내 PC]를 마우스 오른쪽 클릭한 후, [속성]을 마우스 클릭합니다.03) [시스템] 창이 뜹니다. 화살표 표시된 부분에 있는 [장치 관리자]를 마우스 클릭합니다.04) 다음과 같이 [장치 관리자] 창이 뜹니다. 하단에 [포트(COM &LPT)] 항목을 마우스 클릭하여 펼칩니다.여러분이 연결한 마이크로비트의 시리얼 포트를 확인합니다.※ 필자의 경우엔 [USB 직렬 장치(COM19)]로 표시됩니다. 시리얼 포트가 하나 이상 표시될 경우 마이크로비트를 컴퓨터에서 연결해제한후, 다시 연결해보며 사라지거나 다시 표시되는 시리얼 포트를 찾도록 합니다.03. 마이크로비트 시리얼 접속하기여기서는 putty 프로그램을 이용하여 마이크로비트에 접속합니다. 이렇게 하면 마이크로비트에 명령할 수 있습니다.01) 바탕화면에서 [putty] 아이콘을 찾아 마우스 클릭합니다.02) 다음과 같이 [putty] 프로그램이 실행됩니다.03) 다음과 같이 [putty] 프로그램이 실행됩니다. 아무것도 표시되지 않습니다.04) 레플사이트 Ctrl + C 를 누릅니다. 키보드 좌측 하단에 있는 Ctrl 키를 누른 채로 C 키를 누릅니다. 다음과 같이 표시됩니다.※ 앞에서 다운로드 받은 프로그램에는 위 화면을 표시하는 프로그램이 포함되어 있습니다. 위 내용을 표시하는 프로그램을 파이썬 쉘 프로그램이라고 합니다. microbit_program.hex 파일에는 파이썬 쉘과 함께 우리가 작성한 파이썬 프로그램(파이썬 스크립트라고도 합니다)이 포함되어 있습니다. 파이썬 쉘이 우리가 작성한 파이썬 스크립트를 읽고 수행합니다. 우리는 이 파이썬 쉘에게 직접 명령을 줄 수 있습니다.04. 파이썬 명령 입력해보기이제 파이썬 쉘과 이야기를 해 보도록 합니다. 파이썬 쉘은 알라딘 요술램프의 지니와 같이 여러분의 명령을 듣고 실행해 줍니다. 명령은 함수라고도 합니다.04-1. help() 명령 주기먼저 다음과 같이 help() 명령을 입력합니다.04-2. display.scroll('Hello') 명령 주기다음과 같이 명령을 준 후, 마이크로비트의 디스플레이를 봅니다.‘Hello’ 문자열이 흘러가면서 표시되는 것을 볼 수 있습니다.04-3. running_time() 명령 주기다음과 같이 명령을 줍니다.running_time 명령은 마이크로비트가 켜진 이후의 시간을 밀리초 단위로 보여줍니다. 이 예제의 레플사이트 경우 3069.648초 동안 켜진 상태입니다. 마이크로비트가 켜지고 나서 51분 정도가 흐른 상태입니다.04-4. sleep(1000) 명령 주기다음과 같이 명령을 줍니다.sleep 명령은 밀리 초 단위로 파이썬 쉘이 대기합니다. 이 예제에서는 1000 밀리 초 동안 파이썬 쉘이 대기상태가 됩니다.04-5. button_a.is_pressed() 명령 주기다음과 같이 명령을 줍니다.button_a.is_pressed() 명령은 마이크로비트 보드 상에 있는 A 버튼의 눌려 있는 상태를 알려줍니다. False는 눌리지 않았다는 표시입니다.A 버튼을 누른 상태로 위 명령을 다시 수행해 봅니다. 이번엔 다음과 같이 표시가 됩니다.True는 눌렸다는 표시입니다.04-6. 방향키 사용해보기putty 프로그램 상에서 위 방향키를 눌러봅니다. 그러면 바로 전에 입력했던 명령이 나옵니다. 한번 더 위 방향키를 눌러봅니다. 그러면 그 전에 입력했던 명령이 나옵니다. 이번엔 아래 방향키를 눌러봅니다. 바로 다음에 입력했던 명령이 나옵니다. 이와 같이 방향키를 이용하면 한 번 입력했던 명령을 간편하게 수행할 수 있습니다.04-7. 탭 키 사용해보기다음과 같이 파이썬 쉘이 아는 단어로 완성시켜줍니다.파이썬 쉘은 대소문자를 구분하기 때문에 탭 키를 레플사이트 이용하면 파이썬 쉘이 자동으로 대소문자를 구분하여 단어를 완성시켜줍니다.04-8. 파이썬 내부 탐색 명령 알아보기04-9. dir() 명령 주기먼저 명령 행에 ➒ dir() 명령을 입력해봅니다.dir() 명령은 파이썬 쉘이 현재 어떤 것들(모듈, 함수, 클래스 등)을 가지고 있는지 보여줍니다. 앞에서 명령 입력에 사용했던 sleep, button_a, Image, running_time, display 도 볼 수 있습니다.04-10. 무엇인지 물어보기위 그림에서 빨간 줄로 표시된 것들이 무엇인지 다음과 같이 파이썬 쉘에게 물어봅니다.sleep은 함수, button_a는 모듈, Image는 클래스, running_time은 함수, display는 모듈이라고표시됩니다.04-11. help(something) 명령 주기sleep 함수는 마이크로비트가 인자로 주어진 밀리 초만큼 잠을 자게 합니다. button_a 모듈은 마이크로비트의 ‘A’ 버튼입니다. 버튼이 눌리면, is_pressed() 함수는 True입니다. Image 클래스는 이미지를 생성하거나 내장된 이미지를 사용하여 LED 디스플레이에 표시합니다. running_time 함수는마이크로비트가 마지막으로 리셋된 이후의 밀리 초를 줍니다. display 모듈은 마이크로비트의 5x5 LED 디스플레이입니다.04-11. dir(something) 명령 주기sleep, running_time 함수는 함수이기 때문에 추가적인 속성이 없습니다. button_a의 경우 앞에서사용했던 is_pressed 함수를 볼 레플사이트 수 있습니다. Image 클래스의 경우 앞에서 사용했던 HEART 속성을 볼 수 있습니다. display 모듈의 경우 앞에서 사용했던 show, scroll 함수를 볼 수 있습니다.위 그림에서 빨간 줄로 표시된 것들이 무엇인지 다음과 같이 파이썬 쉘에게 물어봅니다.button_a.is_pressed는 button_a에 묶인(bound) 방법(method)이라고 합니다. method는 함수와같은 의미입니다. Image.HEART는 ‘09090:99999:99999:09990:00900:’ 값을 받는 Image 클래스입니다. display.scroll은 display에 묶인 방법이라고 합니다.help(something) 명령을 이용하여 그것이 무엇인지 좀 더 자세히 물어봅니다.button_a.is_pressed는 버튼이 눌리면 True 그렇지 않으면 False라고 알려줍니다. display.scroll(s)는 display 상에서 문자열 ‘s’를 스크롤하기 위해 사용한다고 알려줍니다.다음과 같이 dir() 명령을 입력해 봅니다. this 모듈이 추가된 것을 볼 수 있습니다.이번엔 다음과 같이 help(this) 명령을 입력해 봅니다. this 모듈에 대한 설명이 나옵니다.이번엔 다음과 같이 dir(this) 명령을 입력해 봅니다. this 모듈의 속성이 나옵니다.차례로 다음과 같이 입력합니다.this.authors는 함수입니다. this.authors() 함수를 호출하니 작가와 관련된 내용이 나옵니다.Ctrl + D 를 눌러봅니다. 마이크로비트가 리셋되면서 파이썬 쉘이 프로그램을 실행합니다.Ctrl + 레플사이트 C 를 눌러봅니다. 프로그램의 실행이 멈추고 파이썬 쉘이 REPL 상태가 됩니다.하단에 방금 import 했던 this 모듈이 보입니다. microbit 모듈도 보입니다. 모듈들에 대한 내용을보기 위해서는 import를 해 주어야 합니다. 파이썬 코드 작성 시 라이브러리를 import할 경우 위에서 보이는 라이브러리들을 import 하게 됩니다.다음과 같이 love 라이브러리를 import해 봅니다. 그리고 마이크로비트의 LED를 확인해봅니다.LED에서 깜빡이는 하트 표시를 볼 수 있습니다. dir() 명령을 이용하여 love 라이브러리를 확인합니다. love를 입력하여 파이썬 쉘에게 love가 무엇인지 확인합니다. 파이썬 쉘이 모듈이라고 표시합니다. help(love) 명령을 수행하여 love에 대해 확인합니다. dir(love) 명령을 수행하여 love 모듈이 가진 속성을 확인합니다.이번엔 다음과 같이 love.badaboom이 무엇인지 확인합니다. 파이썬 쉘이 함수라고 알려줍니다.love.badaboom() 명령을 수행해봅니다. 이전처럼 LED에서 깜빡이는 하트 표시를 볼 수 있습니다.help(love.badaboom) 명령을 수행하여 love.badaboom 함수에 대해 자세히 살펴봅니다.이번엔 다음과 같이 antigravity 모듈을 import해 봅니다. 재미있는 그림이 나옵니다.dir() 명령을 이용하여 antigravity 모듈을 확인합니다.이번엔 다음과 같이 antigravity를 입력하여 레플사이트 파이썬 쉘에게 antigravity가 무엇인지 확인합니다.파이썬 쉘이 모듈이라고 표시합니다. help(antigravity) 명령을 수행하여 antigravity에 대해 좀 더자세히 확인합니다. dir(antigravity) 명령을 수행하여 antigravity 모듈이 가진 속성을 확인합니다.이상 파이썬 쉘의 레플(REPL) 기능을 이용하여 여러 가지 명령들을 수행해 보았습니다. 이러한 명령들은 프로그램으로도 작성할 수 있습니다. 레플 기능을 이용하면 파이썬 쉘에 대해 잘 이해할 수있으며, 이는 파이썬 프로그램 작성 시 도움이 됩니다.위 내용은 책의 일부 내용을 인용했습니다. 보다 구체적이고 자세한 내용은 책을 참조한다.이 책은 파이썬 언어를 마이크로비트 보드 기반으로 하드웨어를 동작시키며진짜 재미있게 배울 수 있는 국내 최초의 “마이크로비트로 배우는 파이썬 입문 활용서”이다.이 책의 마이크로비트 보드 상의 LED, 버튼, 가속도센서, 나침반센서, 무선 통신을 텍스트 코딩으로 동작시키다보면 어느덧 파이썬 문법이 자연스럽게 이해되고, 결과물을 스스로 만들 수 있는 프로그래밍 실력까지 갖출 수 있게 된다. 이 책은 ‘개념 -〉 파이썬 코딩 -〉 마이크로비트 동작’방식으로 학습한다. 개념을 이해하고, 파이썬 코딩 후 그 레플사이트 결과를 마이크로비트의 LED, 각...