이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다.
- 라즈비안 OS 설치하기
- 키보드 모니터 없이 라즈베리파이 Login 하기
- Wifi 설정 / 기본 설정하기
- 파이썬 + Eclipse로 라즈베리파이 개발하기
- >> 라즈베리파이에 NodeJs 설치하기 <<
- NodeJs + Eclipse로 라즈베리파이 개발하기
- C/C++ Cross Compiler(Tool Chain) 설치하기
- Eclipse + C/C++ 로 라즈베리파이 개발하기
Updated 2018.06.29 :
이 포스트는 오래된 내용으로 지금 참고하기에는 적절치 않습니다. 아래 URL의 새로운 포스트를 참고하시기 바랍니다.
NodeJs는 Javascript 언어를 브라우저 없이도 동작할 수 있게 하는 플랫폼입니다.
보통 웹 개발에 있어서 서버 부분 그러니까 Back-End(백엔드) 부분에 활용하는데,
그 이유로는 웹 클라이언트 그러니까 Front-End(프론트 엔드) 부분에서
활발하게 사용할 수 밖에 없는 Javascript 언어를 Back-End에서도 사용할 수 있으니
서로 다른 언어로 두 영역을 개발할때 보다 시너지 효과가 클 수 밖에 없기 때문입니다.
그 뿐 만이 아니라 npm을 이용해서 다양한 모듈을 추가 할 수 있는데,
그 종류가 어마어마하게 많고 활발하게 성장하고 있습니다.
여기에 웹과 모바일 그리고 임베디드를 아우르는 IoT 라는 새로운 시장이 나타나면서
NodeJs는 다양한 IoT 플랫폼에 적용되기 시작합니다.
라즈베리파이는 물론이고, 인텔에서 IoT시장을 겨냥해서 만든 에디슨과
오픈소스 하드웨어로 라즈베리파이와 쌍벽을 이루는 비글본 블랙도 NodeJs를 기본 탑재하고 있을 뿐만 아니라
에디슨과 비글본 블랙 모두 NodeJs를 쉽게 개발하고 적용 할 수 있는 개발 환경 까지 기본 제공하고 있습니다.
<인텔 에디슨>
<비글본 블랙>
이와 같이 임베디드 보드에 탑재된 NodeJs는 웹 개발에 필요한 기본적인 모듈 이외에도 GPIO, I2C, SPI 등의
센서, 주변 장치와 통신에 필요한 모든 기능을 제공하고 있어서, C/C++로 작성할때 보다 생산성이 뛰어나고
완성도 높은 웹 기반 IoT 서비스를 만드는데 좋은 환경을 제공합니다.
그런데, 라즈베리파이는 개발용 보드가 목적이 아닌 교육용 컴퓨터 목적이라서 NodeJs를 이용해서 손쉽게 개발 할 수 있는
환경을 따로 제공해 주지 않습니다. 그래서 별도의 작업을 해야 합니다.
솔직히, 이런 라즈베리파이로 이런 작업을 하는것이 왜 유행인지 저도 잘 이해가 안가긴 합니다. ㅎㅎ
그러면서 저도 라즈베리파이에 대한 컨텐츠를 생산하고 있구요. 쩝…입니다.
자 그럼 라즈베리파이에서 NodeJs를 사용하려면 어떻게 해야 하는지 알아 볼까요?
우선 라즈비안 OS 배포 판에 따라서 NodeJs가 기본 설치 되어 있는 경우도 있고 없는 경우도 있습니다.
제가 경험한 바로는 특정 버전 이후 부터 기본 설치되어 있는 식이 아니라 마이너 버전이 올라 가는 경우에 어떤경우는 기본 설치되고
그 다음 버전에는 빠져 있는 경우가 있습니다.
게다가 기본 설치되어 있는 버전이라 하더라도 NodeJs 버전이 너무 오래된것 이거나 npm이 제대로 동작하지 않는 등의 문제를 가지고 있으니
무조건 새롭게 설치해서 사용하는 것이 좋을 것이라 생각합니다.
라즈베리파이에 NodeJs를 설치 하는 방법은 크게 4가지로 볼 수 있습니다.
- apt-get 설치
- heroku 빌드 배포판(*.deb) 설치
- nodejs.org 빌드 배포판(tar.gz) 설치
- nodejs.org 소스코드 컴파일 설치
결론적으로 미리 정리하자면 위의 4가지 방법 중에 2. heroku 빌드 배포판을 사용하는 것이 가장 편리합니다. (2018.6 수정) 3.nodejs.org 배포판을 설치하는것이 정답입니다.
1. apt-get 설치
데비안 계열 리눅스의 패키지 관리자인 apt-get 명령어로 nodeJs 를 손쉽게 설치할 수 있습니다.
하지만, 우숩게도 레포지토리에 nodejs 라는 이름과 node 라는 이름이 따로 등록되어 있고
각각 또한 정상적으로 동작하지 않습니다.
$ sudo apt-get install nodejs
$ sudo apt-get install node
nodejs로 설치하면 실행 명령도 node 가 아닌 nodejs로 해야 되고 설치되는 버전도 0.10.29 입니다.(2016.5.4 기준)
결론적으로 별로 권장하지 않습니다.
2. heroku 빌드 배포판
heroku는 cloud platform(클라우드 플랫폼) 서비스의 일종으로 구글 앱 엔진이랑 비슷한 거라 생각하면 쉽습니다.
그래서 많은 사람들이 여기에 가입해서 서비스를 하고 있는데, Nathaniel Johnson(nathanjohnson320@gmail.com)이라는
사람이 node-arm이라는 서비스를 heroku에 운영 중이고 그 URL이 아래와 같습니다.
이 사이트가 서비스하는 내용은 nodejs 소스를 라즈베리파이에 맞게 빌드해서 데비안 패키지 형태로 만들어서 배포해서
사람들이 다운로드 받을 수 있게 해주는 겁니다.
그래서 우리는 손쉽게 다운로드 받아 설치만 하면 되기 때문에 편리하게 사용할 수 있습니다.
설치 하는 방법은 아래와 같습니다.
$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb
$ sudo dpkg -i node_latest_armhf.deb
$ sudo dpkg -i node_latest_armhf.deb
설치가 끝나면 버전을 확인해서 설치 여부를 확인할 수 있습니다.
$ node --version
v4.2.1
v4.2.1
2016.5.4일 기준으로 설치되는 버전은 v4..2.1 이네요.
같은 날짜 기준으로 NodeJs.org에서 배포하는 LTS 버전이 v4.4.3이고 최신 버전이 v6.0.0 이라 볼때
아주 오래된 버전은 아니라 할 수 있습니다.
만약 설치 후 node 명령어를 찾을 수 없다고 나오면, 로그인 쉘에서 로그아웃 했다가 다시 로그인 해주면 됩니다.
또, 라즈비안 버전이 “Jessi"가 아닌 이전 버전인 “wheezy”를 사용하는 경우에는 gcc, g++ 컴파일러를 새롭게 설치한 후에 진행해야 합니다.
이 경우에 대한 자세한 사항은 아래 URL에서 확인 하면 됩니다.
3. NodeJs.org 빌드 배포판
(아래 내용은 현재의 상황과 맞지 않습니다. 새롭게 작성한 포스트를 참하세요. : http://blog.xcoda.net/99
라즈베리파이 A, B, B+ : ARMv6라즈베리파이 2, 3 : ARMv7
$ wget https://nodejs.org/dist/v4.4.3/node-v4.4.3-linux-armv7l.tar.xz $ tar -xvf node-v4.4.3-linux-armv7l.tar.xz $ cd node-v4.4.3-linux-armv7l $ sudo cp -R * /usr/local/
$ node --version
v4.3.3
v4.3.3
4. nodejs.org 소스코드 컴파일 설치
NodeJs.org에서 소스코드를 받아 직접 빌드해서 사용 할 수 있습니다.
소스코드 다운로드는 nodejs.org 사이트에서 받을 수 있습니다.
빌드 명령어는 아래와 같이 진행하면 됩니다.
$ sudo apt-get install build-essential libssl-dev pkg-config
$ wget https://nodejs.org/dist/v4.4.3/node-v4.4.3.tar.gz
$ tar -zxf node-v4.4.3.tar.gz
$ cd node-v4.4.3
$ ./configure
$ sudo make && sudo make install
$ wget https://nodejs.org/dist/v4.4.3/node-v4.4.3.tar.gz
$ tar -zxf node-v4.4.3.tar.gz
$ cd node-v4.4.3
$ ./configure
$ sudo make && sudo make install
소스코드를 빌드해서 사용하면 아무래도 가장 최신의 내용을 믿을 수 있는 상태에서 사용할 수 있어서 가장 좋은 방법이지만,
한가지 알아 두어야 하는 것은 라즈베리파이 보드에서 빌드를 하면 반나절 이상 시간이 소요된다는 것입니다.
CPU도 엄청 뜨거워 집니다.
아무래도 C/C++ Cross Compiler를 개발 PC에 설치해서 빌드한 후에 설치만 하는 것이 훨씬 좋은 방법이겠죠.
C/C++ Cross Compiler 설치와 관련해서는 향후 다시 다루겠습니다.
이번 포스트는 라즈베리파이에 NodeJs를 설치하는 것에 대해 알아 보았습니다.
이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다.
- 라즈비안 OS 설치하기
- 키보드 모니터 없이 라즈베리파이 Login 하기
- Wifi 설정 / 기본 설정하기
- 파이썬 + Eclipse로 라즈베리파이 개발하기
- >> 라즈베리파이에 NodeJs 설치하기 <<
- NodeJs + Eclipse로 라즈베리파이 개발하기
- C/C++ Cross Compiler(Tool Chain) 설치하기
- Eclipse + C/C++ 로 라즈베리파이 개발하기
'Programming > IoT_Embedded' 카테고리의 다른 글
라즈베리파이 GPIO에 이름표를 붙이자! Raspberry Leaf (0) | 2016.10.20 |
---|---|
라즈베리파이 모니터없이 원격에서 화면 보기(VNC 화면 공유) (2) | 2016.05.13 |
라즈베리파이 개발환경 꾸미기 #8. Eclipse + C/C++로 라즈베리파이 개발하기 (14) | 2016.05.10 |
라즈베리파이 개발환경 꾸미기 #7.C/C++ Cross Compiler(Tool Chain) 설치하기(윈도우/맥) (4) | 2016.05.10 |
라즈베리파이 개발환경 꾸미기 #6. NodeJs + Eclipse로 라즈베리파이 개발하기 (2) | 2016.05.09 |
라즈베리파이 개발환경 꾸미기 #4. 파이썬 + Eclipse 로 라즈베리파이 개발하기 (12) | 2016.05.04 |
라즈베리파이 개발환경 꾸미기 #3. 유무선랜 설정/ 기본 설정하기 (7) | 2016.05.04 |
라즈베리파이 개발환경 꾸미기 #2. 키보드 모니터 없이 라즈베리파이 Login 하기 (10) | 2016.05.03 |
라즈베리파이 개발환경 꾸미기 #1. 라즈비안 OS 설치하기 (6) | 2016.05.03 |
아두이노 디지털 핀에 24V 입력받기(저항으로 전압강하, 전압분배) (22) | 2016.02.04 |