Raspberry PI
2012년 2월, 영국의 라즈베리 파이 재단에서 교육을 목적으로 제작 발표한 스마트폰 크기의 싱글 보드 컴퓨터. 여러 가지 버전의 하드웨어가 존재하며, 주로 리눅스Linux 기반의 운영체제를 사용하는데 그 중에서도 데비안Debian 계열의 라즈비안Raspbian(RASPberry pi + deBIAN)이 일반적이다.
이 책은 크게 세 부분으로 구성된다.
Raspberry PI, Linux 환경, 그리고 Python programming에 대한 기본 지식과 같은
초보 개발자들을 위한 입문에 해당하는 내용이 1장부터 5장까지를 이루고
본격적으로 Raspberry PI를 통해 각종 장치를 활용하는 방법을 6장부터 9장까지 다루며
10장부터 13장까지는 IoT와 관련된 고급 기술과 서비스에 대한 내용을 담고 있다.
각자의 수준에 따라 1장부터 공부할 수도 있고 6장부터 공부할 수도 있고
필요한 부분을 쉽게 찾아 배워갈 수 있는 구성이다.
앞 부분의 기본 개념 설명은 유용하게 쓰일 만한 것들을 잘 추려놓아
초보 개발자들도 어렵지 않게 따라갈 수 있을 것으로 보인다.
실제로 나 같은 경우에는 개발 경험은 어느 정도 있지만
Python은 제대로 공부해본 적이 없어서 상당히 어설픈 Python 지식만을 가지고 있었는데
이 책의 3장 파이썬 환경이 상당히 큰 도움이 되었다.
다만 아쉬운 점은,
3장 시작 부분에는 분명 python 3.x 버전을 기준으로 설명한다고 했는데
예제 코드 중 python 3.x 버전에서는 구동 방식이 바뀌어 실행되지 않고
python 2.x 버전에만 작동하는 코드가 일부 존재한다는 점이다.
조금 변형을 가해 버전에 맞는 코드로 수정하면 잘 작동하긴 하는데
개정판임에도 이러한 버전 이슈가 존재한다는 것만 빼면 대부분의 예제들은
각각의 개념들을 익히는 데 도움이 되는 예제들로 구성되어 매우 좋았다.
파일을 생성하지 않고 스크립트로 바로 실행하는 예제와
/var/www/
경로에 존재하는 웹 프로그래밍 예제를 제외하고는
대부분의 예제를 예제 코드를 github 저장소에서 내려 받을 수 있다.
$ git clone --recursive https://github.com/swkim01/RaspberryPiWithIOT.git
Raspberry PI에서 위 명령어로 예제 코드를 내려 받아 직접 실행해봄으로써
예제 코드를 보다 쉽고 편하게 공부할 수 있다.
직접 실행해보고 부분적으로 변형을 가해가며 내용을 잘 이해하는데 유용한 자료다.
때론 이런 것도 만난다.
위 코드의 경우 책에는 잘 나와있는데 github 상의 예제코드에 문제가 있다.
print
문법의 경우 python 2.x와 3.x의 버전 차이로 호환되지 않는 부분이라
버전 업 하는 과정에서 누락된 사항이라고 생각할 수 있겠지만
기본 로직 자체가 책의 코드를 원본으로 하여
정상적으로 작동하지 않도록 꼬아놓은 것 같아보이는 건...
위와 같이 책에 나와있는대로 작성하면 잘 작동하는데
github 상의 코드가 잘못된 경우가 종종 있었는데,
반대의 경우라면 출판 후에 bugfix가 되었겠거니 하고 넘어가겠지만
살짝 납득할 수 없는 부분이었다.
본격적인 RPI 실습 부분에는 회로를 구성해야 하는 부분이 많았다.
책에서는 직관적으로 알아볼 수 있는 그래픽 회로도와
외형 보다는 각각의 포트 이름을 명확하게 알 수 있는 회로도를 함께 제공하여
둘 중 하나만 있었다면 잘 구성하였는지 확신이 서지 않을 법한 부분들을 보완하였다.
회로를 잘못 구성하면 기기가 고장나거나 심지어 폭발(...)할 수도 있는 RPI이기에
이와 같이 두 가지 방식으로 회로도를 작성하여 제공한 것은 실습에 큰 도움이 되었다.
뒷 부분의 고급 기술에서 난이도가 급상승하는 것 같은 느낌을 받았지만
그만큼 초심자부터 숙련자까지를 모두 커버할 수 있는 책인 것 같다.
그리고 필요에 따라 중간부터 공부하더라도 어려움이 없을 정도로
매 실습마다 충분히 친절한 설명이 진행되었다.
사실 내 수준으로는 고급 기술 파트는 많이 어렵게 느껴졌는데
Python에 보다 더 능숙해진 후 다시 공부해보면 좋을 것 같다.