rasberry nodejs install_final

121
라라라라라라라 라라라 라라 라라라 라라 Copyright . 2014.03.09 GOODHADA. All Rights Reserved.

Upload: kwan-yeong-kim

Post on 19-Jun-2015

682 views

Category:

Devices & Hardware


7 download

DESCRIPTION

라즈베리파이를 통한 웹서버구축을 하고 php, nodejs, angularjs 까지 구현하였습니다. http://blog.naver.com/kuma119

TRANSCRIPT

Page 1: Rasberry nodejs install_final

라즈베리파이를 활용한개인 웹서버 구축

Copyright . 2014.03.09 GOODHADA. All Rights Reserved.ⓒ

Page 2: Rasberry nodejs install_final

1. 웹서버로 활용하기 위한 구성품1.1. 구성도1.2. 사양1.3. 연결도1.4. 관련 사이트

Page 3: Rasberry nodejs install_final

1.1. 구성도

Page 4: Rasberry nodejs install_final

1.2. 사양

Page 5: Rasberry nodejs install_final

1.3. 연결도

Page 7: Rasberry nodejs install_final

2. 웹서버로 활용하기 위한 구성품2.1. SD 카드2.1.1. 물리적 크기에 따른 표기2.1.2. 용량에 따른 표기2.1.3. 속도에 따른 표기2.1.4. 호환여부2.2. 비디오 연결2.3. 입력 연결2.4. 전원 연결2.5. 인터넷 연결2.6. 정리

Page 8: Rasberry nodejs install_final

2.1. SD 카드

라즈베리파이와 함께 구입하면 가격이 비싸기 때문에 따로 구입하기를 바랍니다 .라즈베리파이에서 사용되는 OS 인 라즈비안은 최소 2GB, 권장 4GB 이므로용량과 가격을 생각했을때 16GB 가 적당합니다 .

8GB : 11,000 원 ~ 13,000 원16GB : 13,000 원 ~ 15,000 원32GB : 15,000 원 ~ 20,000 원

* 위의 시세를 형성하고 있으니 괜히 눈탱이 맞지 않도록 조심합시다 . 진지한 궁서체입니다 .

Page 9: Rasberry nodejs install_final

2.1.1. 물리적 크기에 따른 표기

SD, miniSD, microSD 가 있는데 크기비교는 아래와 같습니다 .SD > miniSD > microSD

Page 10: Rasberry nodejs install_final

2.1.2. 용량에 따른 표기

보통 SD 카드라고 부르는 것에는 SD, SDHC, SDXC 등이 있습니다 .

① SD: 2GB 까지 ② SDHC: 4GB 에서 32GB 까지 ③ SDXC: 64GB 부터

편하게 용량에 따라서 이렇게 구분되기는 하지만 편하게 SD 카드라고 부르면 됩니다 .

Page 11: Rasberry nodejs install_final

2.1.3. 속도에 따른 표기

속도 표기 규격 중에 class 와 UHS 등이 있는데 이것은 SD 카드의 속도를 결정하는 단위입니다 .

용량만 보고 사는 경우가 많은데 속도에 따라 가격이 틀려지므로 괜히 뒤통수 맞지 않기를 바랍니다 .

class 는 최저 보장 속도 (MB/ 초 ) 를 적는 것이고 UHS 는 데이터의 이론적인 최대 전송 속도를 적습니다 .

UHS-I 규격은 50MB/ 초 (4 비트 전송 기준 ), UHS-II 는 이론적으로는 312MB/ 초까지 속도를 낼 수 있습니다 .

물론 이론에 따른 것이라 속도가 딱딱 맞아떨어지지는 않습니다 .

그 이상의 속도가 필요한 분야라면 카메라나 캠코더 정도이니까 논외로 하겠습니다 .

무난하게 사용하시려면 10class 와 UHS-I 가 동시에 표기된 것이라면 오케이라고 아시면 되겠습니다 .

Page 12: Rasberry nodejs install_final

2.1.4. 호환여부

아래의 링크에서 메모리의 호환여부를 판단하고 구입하여야 합니다 .메모리호환여부

Page 13: Rasberry nodejs install_final

2.2. 비디오 연결

최초 OS 설치를 하기 위해 라즈베리파이와 모니터를 연결해야 하기 때문에RCA 나 HDMI 로 모니터와 연결을 해야 하는데 쉽게 사용할 수 있는 HDMI 로 연결합니다 .아래의 두가지 방식 중 사용할 수 있는 것을 선택해서 구매하도록 하면 되겠습니다 .

HDMI -> DVIHDMI -> HDMI

Page 14: Rasberry nodejs install_final

2.3. 입력 연결

마우스는 딱히 필요하지 않기 때문에 제외하겠습니다 .키보드는 무선을 사용할 수도 있지만 설치한 후에는 원격으로 접속해서 사용할 것이기 때문에집에 있는 usb 키보드 가져다가 연결하시면 됩니다 .

Page 15: Rasberry nodejs install_final

2.4. 전원 연결

라즈베리파이에는 micro USB 로 전원을 넣어주어야 합니다 .micro USB 는 요즘 사용하는 스마트폰의 충전잭이라고 생각하시면 됩니다 .편하게 전원연결을 하기 위해서 전원코드가 달린 것이 아닌 USB <-> micro USB 를 사용하시면 됩니다 .이렇게 사용하면 컴퓨터 전원이 꺼져있는 상태에서도 전원을 가져와서 쓰기 때문에 편리합니다 .

Page 16: Rasberry nodejs install_final

2.5. 인터넷 연결

와이파이 동글을 사용하여 무선 인터넷을 연결하는 방법도 있으나여기서는 그냥 랜선 연결을 하겠습니다 .

Page 17: Rasberry nodejs install_final

3. 운영체제 라즈비안 설치방법3.1. 라즈비안 wheezy 다운로드3.2. win32diskimager 다운로드3.3. SD 카드에 쓰기3.4. 부팅 전 케이블 연결3.5. 부팅

Page 18: Rasberry nodejs install_final

3.1. 라즈비안 wheezy 다운로드

라즈베리 공식 홈페이지에서 라즈비안을 다운받습니다 .http://www.raspberrypi.org/downloads

Page 19: Rasberry nodejs install_final

3.2. win32diskimager 다운로드

win32diskimager 를 다운받습니다 .http://sourceforge.net/projects/win32diskimager/

Page 20: Rasberry nodejs install_final

3.3. SD 카드에 쓰기

win32diskimager 를 실행해서 SD 카드에 다운받은 라즈비안을 담습니다 .

라즈비안 img 파일을 선택해주고 현재 SD 카드가 연결되어 있는 드라이브를확인해준 후에 write 버튼을 눌러 SD 카드에 라즈비안 운영체제를 넣어줍니다 .소요시간은 5 분 내외입니다 .원래 용량이 얼마였건간에 56MB 로 줄어듭니다 . 이 것은 나중에 설정으로 변경이 가능하니 신경을 안 써도 됩니다 .

Page 21: Rasberry nodejs install_final

3.4. 부팅 전 케이블 연결

라즈베리파이 합체 !!!① 라즈베리파이 - HDMI 케이블 - 모니터② 라즈베리파이 - 키보드③ 라즈베리파이 - 랜선 - 공유기나 모뎀④ 라즈베리파이 - SD 카드⑤ 라즈베리파이 - micro USB - 컴퓨터 USB 포트

Page 22: Rasberry nodejs install_final

3.5. 부팅

SD 카드를 연결한 후 micro USB 를 연결하여 전원을 넣어주면켜지면서 자동으로 설치가 되기 시작합니다 .

Page 23: Rasberry nodejs install_final

4. 환경설정① Expand Filesystem② Change User Password③ Enable Boot to Desktop/Scratch④ Internationalisation Options⑤ Enable Camera⑥ Add to Rastrack⑦ Overclock⑧ Advanced Options⑨ About raspi-config

Page 24: Rasberry nodejs install_final

4. 환경설정

Page 25: Rasberry nodejs install_final

4. 환경설정 (①)

① Expand Filesystem가장 중요한 설정입니다 .라즈비안을 SD 카드에 담을때 자동으로 용량이 작게 설정이 됩니다 .라즈비안을 설치한 후에는 반드시 이 항목을 선택해줌으로써나머지 공간도 사용할 수 있도록 해주어야 합니다 .

Page 26: Rasberry nodejs install_final

4. 환경설정 (②)

② Change User Password라즈비안은 리눅스 운영체제인데 기본으로 최고관리자계정인 root 와일반 계정인 pi 가 존재합니다 .그 중 pi 의 초기 암호는 raspberry 이므로 꼭 수정해주어야 합니다 .

Page 27: Rasberry nodejs install_final

4. 환경설정 (③)

③ Enable Boot to Desktop/Scratch* Console Text console, requiring login (default)Console 로 로그인 하면서 Login 을 요청하는 Option 입니다 .우리는 putty 로 접속하여 사용할 것이기 때문에 이 항목을 선택하시면 됩니다 .

* Desktop Log in as user 'pi' at the graphical desktoppi 계정으로 로그인되면서 GUI 환경으로 접속하게 됩니다 .

* Scratch Start the Scratch programming environment upon bootscratch 라는 programming 환경으로 부팅하는 항목인데 무시하셔도 됩니다 .

Page 28: Rasberry nodejs install_final

4. 환경설정 (④)

④ Internationalisation Options* Change Locale - Set up language and regional settings to match your location이 옵션은 언어를 맞추는 옵션인데 라즈비안에서 한글을 사용하기 위해 선택해주는 옵션입니다 .항목 중 en_GB.UTF-8 UTF-8, en_US.UTF-8 UTF-8, ko_KR.UTF-8 UTF-8 세개를 선택해주시면 됩니다 .선택은 스페이스바로 선택할 수 있고 세 개 모두 선택한 후 tab 키로 이동하여 ok 를 눌러주시면 됩니다 .

Page 29: Rasberry nodejs install_final

4. 환경설정 (④)

* Change Timezon - Set up timezone to match your locationAsia 를 선택하고 tab 키를 눌러 이동하여 ok 를 눌러줍니다 .Seoul 을 선택하고 tab 키를 눌러 이동하여 ok 를 눌러줍니다 .

* Change Keyboard Layout - Set the keyboard layout to match your keyboard특별한 키보드가 아니라면 딱히 설정해줄 필요는 없습니다 .

Page 30: Rasberry nodejs install_final

4. 환경설정 (⑤~⑥)

⑤ Enable Camera카메라를 사용할 것인지 정하는 옵션인데 카메라를 사용하지 않기 때문에무시하셔도 됩니다 .

⑥ Add to Rastrack닉네임과 이메일을 입력하면 라즈베리파이의 분포도에 자신의 라즈베리파이가포함이 됩니다 .아래의 사이트에서 등록된 라즈베리파이의 분포도를 볼 수 있습니다 .무시하셔도 되는 옵션입니다 .

Page 31: Rasberry nodejs install_final

4. 환경설정 (⑦~⑧)

⑦ Overclock오버클럭을 하는 옵션인데 큰 성능향상은 없기 때문에 무시하셔도 됩니다 .

⑧ Advanced OptionsA1 Overscan - You may need to configure overscan if black bars are present on display구형의 디스플레이를 사용할 경우 이 옵션을 사용하여 설정해줄 수 있지만 무시합니다 .

A2 Hostname - Set the visible name for this Pi on a network네트워크상에서 보여지는 명칭을 변경하는 옵션입니다 .기본적으로 raspberrypi 로 정해져있는데 다른 이름을 임의로 정해줍니다 .

A3 Memory Split - Change the amount of memory made available to the GPUGPU 에 할당하는 메모리를 16/32/64/128/256mb 단위로 정해주는 것인데원격으로 CUI 기반으로 작업할 것이기 때문에 16 으로 정해줍니다 .

Page 32: Rasberry nodejs install_final

4. 환경설정 (⑧~⑨)

A4 SSH - Enable/Disable remote command line access to your Pi using SSHSSH 를 사용할 것인지 묻는 여부인데 SSH 를 선택해주어야 원격으로 접속이 가능하기때문에 꼭 선택해줍니다 .

A5 SPI - Enable/Disable automatic loading of SPI kernel module (needed for e.g. PiFace)SPI kernel module 을 자동으로 로딩하는 옵션인데 사용하지 않으므로 무시합니다 .

A6 Audio - Force audio out through HDMI or 3.5mm jack오디오를 HDMI 로 출력할 것인지 3.5mm jack 으로 출력할 것인지 정하는 옵션인데자동으로 선택되므로 무시합니다 .

A7 Update - Update this tool to the latest version라즈비안을 최신으로 업데이트 시켜주는 옵션인데 GUI 에서 업데이트하는 것보다CUI 에서 업데이트하는 것이 빠르므로 나중에 업데이트 시켜줄 것이기 때문에 무시합니다 .

⑨ About raspi-config이 설정에 관해 소개하는 글입니다 . 무시합니다 .

* 모든 설정을 마친 후에 Finish 를 선택하여 재부팅을 합니다 .

Page 33: Rasberry nodejs install_final

5. 로그인5.1. root 계정 활성화5.2. 계정설정

Page 34: Rasberry nodejs install_final

5.1. root 계정 활성화

초기 설정을 마치면 재부팅을 합니다 .재부팅이 되면 로그인 아이디와 패스워드를 묻는데 당황하지 마시고 계정을 적는 란에는pi 를 입력하시고 Password 에는 초기설정에서 입력하신 패스워드를 입력해줍니다 .패스워드를 수정하지 않았다면 raspberrypi 를 입력합니다 .

* 잘 보시면 kkom login 이라고 적혀있는데 앞서 초기설정에서 hostname 에 적은 명칭하고 동일한 것을 알 수 있습니다 .

라즈비안을 설치하면 root 라는 최고관리자 아이디와 pi 라는 일반 아이디가 생깁니다 .설치 후 root 는 활성화되지 않으므로 아래와 같이 패스워드를 설정함으로써 활성화시켜줍니다 .

sudo passwd root

Page 35: Rasberry nodejs install_final

5.2. 계정설정

root 계정으로 뭔가 하다가 문제가 되면 새로 깔아야 하는 상황이 발생되므로왠만하면 root 계정으로 작업하는 것은 지양하고 다른 계정으로만 작업하는 것을 권장합니다 .

pi 계정은 기본적으로 만들어지는 계정이므로 다른 계정을 만들고이 계정은 삭제하는 것이 좋습니다 .

계정명은 자신이 정하고 싶은 것을 적어주면 됩니다 .여기서는 kuma119 라고 하겠습니다 .아래의 명령으로 계정을 하나 만들어 줍니다 .sudo usseradd kuma119

아래의 명령으로 비밀번호를 설정해줍니다 .sudo passwd kuma119

아래의 명령으로 새로 만든 계정의 디렉토리를 만들어줍니다 .sudo mkdir /home/kuma119

아래의 명령어로 새로 만든 계정의 디렉토리의 소유권을 변경해줍니다 .sudo chown kuma119 /home/kuma119

아래의 명령으로 기존의 pi 계정의 설정파일을 새로 만든 계정으로 복사해줍니다 .sudo cp /home/pi/.profile /home/kuma119sudo cp /home/pi/.bashrc /home/kuma119sudo cp /home/pi/.bash_logout /home/kuma119

Page 36: Rasberry nodejs install_final

5.2. 계정설정

아래의 명령으로 sudo 를 쓸 수 있는 계정을 추가할 수 있도록 환경파일을 열어줍니다 .sudo 라는 것은 super user 만 사용할 수 있는 명령어를 sudo 를 써줌으로써 사용할 수 있게해주는 명령어입니다 .우리는 super user 인 root 를 사용하지 않고 따로 만든 계정을 사용할 것이므로프로그램들을 설치할때 sudo 를 사용해줍니다 .sudo nano /etc/sudoers

맨 마지막에 있는 구문을 새로 만든 계정인 kuma119 로 수정해 줍니다 .pi ALL=(ALL) NOPASSWD: ALL -> kuma119 ALL=(ALL) NOPASSWD: ALL

수정한 후 ctrl+o 를 누르면 저장을 할 것인지 묻는데 엔터를 누르면 저장이 됩니다 .저장을 한 후 ctrl+x 를 눌러서 나옵니다 .

Page 37: Rasberry nodejs install_final

5.2. 계정설정

아래의 명령어를 입력하여 pi 계정을 로그아웃합니다 .logout

새로운 계정으로 로그인한 후 아래의 명령어로 기존의 pi 계정을 삭제해줍니다 .sudo deluser pi

아래의 명령어를 입력하여 홈디렉토리를 삭제해줍니다 .rm -rf /home/pi

Page 38: Rasberry nodejs install_final

6. xwindow 맛보기

Page 39: Rasberry nodejs install_final

6. xwindow 맛보기

아래의 명령어를 입력하면 라즈비안의 GUI 인 xwindow 로 들어갈 수 있습니다 .startx

상당히 버벅대므로 안 하는게 좋습니다 .

Page 40: Rasberry nodejs install_final

7. 라즈비안 업데이트 및 업그레이드7.1. 프로그램 및 라이브러리 다운로드7.2. 다운로드한 프로그램 및 라이브러리 설치

Page 41: Rasberry nodejs install_final

7.1. 프로그램 및 라이브러리 다운로드

sudo apt-get update

Page 42: Rasberry nodejs install_final

7.2. 다운로드한 프로그램 및 라이브러리 설치

sudo apt-get upgrade설치하면 용량이 필요하다고 하는데 우리는 여유가 많으니까 쿨하게 y 를 입력하여 진행해줍니다 .

Page 43: Rasberry nodejs install_final

8. 터미널 접속 (putty)8.1. SSH 설정 8.2. putty 다운로드8.3. 터미널 접속 8.4. 터미널 명령어

Page 44: Rasberry nodejs install_final

8.1. SSH 설정

라즈비안 설치 후 나오는 초기 설정화면에서 ssh 항목을 사용한다고 설정을 하였다면추가로 설정할 것은 없습니다 .만약 설정을 하지 않았다면 아래의 명령어를 사용해 환경설정화면으로 진입하여SSH 를 사용한다고 설정을 해주셔야 합니다 .sudo raspi-config

Page 45: Rasberry nodejs install_final

8.2. putty 다운로드

아래의 주소로 접속하여 다운로드 받습니다 .http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Page 46: Rasberry nodejs install_final

8.3. 터미널 접속

아래의 명령어로 라즈베리파이의 ip 를 알아내어 따로 적어둡니다 .ifconfig

Page 47: Rasberry nodejs install_final

8.3. 터미널 접속

알아낸 ip 주소를 Host Name 에 적고 SSH 를 선택한 후 Open 을 눌러서 접속합니다 .

Page 48: Rasberry nodejs install_final

8.4. 터미널 명령어

/ 디렉토리 표시

. 현재 디렉토리

.. 상위 디렉토리

cd 디렉토리 이동

ls 디렉토리 내용 출력

mkdir 디렉토리 생성

rmdir 디렉토리 삭제

pwd 현재 작업 디렉토리 절대 주소 출력

cp 파일 복사 (디렉토리 포함은 '-r')

mv 파일 이동

rm 파일 삭제 (디렉토리 포함은 '-r')(강제 삭제는 -f)

cat 파일 내용 출력

more 파일 내용 페이지 단위로 출력

less 파일 내용 페이지 단위로 출력

Page 49: Rasberry nodejs install_final

8.4. 터미널 명령어

켜는 법은 전원 연결을 하면 됩니다 .전원선이 연결되어 있을 경우는 뺐다가 다시 연결하면 됩니다 .

전원을 끄려면 아래의 명령어 중 하나를 쓰시면 됩니다 .sudo shutdown -h nowsudo halt

재부팅을 하시고 싶으시면 아래의 명령어 중 하나를 쓰시면 됩니다 .sudo shutdown -r nowsudo reboot

Page 50: Rasberry nodejs install_final

9. ftp 접속 (filezilla)9.1. 다운로드9.2. 연결방법9.3. 편의성

Page 51: Rasberry nodejs install_final

9.1. 다운로드

아래의 링크에서 파일질라를 다운로드 받습니다 .https://filezilla-project.org/

Page 52: Rasberry nodejs install_final

9.2. 연결방법

설치 후에 사이트관리자를 열어서 설정해줍니다 .호스트에는 아이피를 입력해줍니다 . 공유기가 설치되어 있다면 포트포워딩이나 DMZ 설정 후에 공유기 ip 를 입력해주시면 됩니다 .(포트포워딩과 DMZ 는 나중에 설명하겠습니다 .)프로토콜은 SFTP 로 선택해주고 로그온 유형은 일반으로 선택해줍니다 .

Page 53: Rasberry nodejs install_final

9.3. 편의성

접속시 기본으로 연결되는 디렉토리를 설정할 수 있고 연결된 컴퓨터의 디렉토리와자동으로 위치 동기화를 시킬 수가 있습니다 .고급탭을 선택해주고 기본 로컬 디렉토리를 자신의 디렉토리로 설정해줍니다 .기본 리모트 디렉토리에 서버의 디렉토리를 적어줍니다 .아파치 설치 후에 /var/www 를 적어주시면 기본적으로 웹에서 접속될 디렉토리로 설정이 됩니다 .그리고 탐색 동기화 기능 사용을 체크해줍니다 .

Page 54: Rasberry nodejs install_final

10. nodejs 설치10.1. 다운로드10.1.1. wget10.1.2. FTP10.2. 압축풀기10.3. 설치할 디렉토리 이동10.4. 빌드환경설정10.5. 빌드10.6. 설치10.7. 테스트

Page 55: Rasberry nodejs install_final

10.1. 다운로드

다운받는 방법에는 라즈베리파이에서 바로 다운받을수 있는 방법과다운받아서 FTP 로 업로드하는 방법이 있습니다 .wget 으로 바로 다운받는 방법은 버전마다 주소가 변경이 되고속도를 비교해서도 느리기 때문에 FTP 로 업로드하는 방식을 하시는 것을 권장합니다 .

Page 56: Rasberry nodejs install_final

10.1.1. wget

다운받아서 저장될 디렉토리로 이동합니다 .cd /home/kuma119

아래의 url 은 버전이 바뀔때마다 변경되므로 다운받아서 ftp 로 올리는 방법을 추천합니다 .sudo wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz

Page 57: Rasberry nodejs install_final

10.1.2. FTP

아래의 링크로 들어가서 source code 를 다운로드 받습니다 .http://nodejs.org/download/

Page 58: Rasberry nodejs install_final

10.2. 압축풀기

wget 으로 직접 받거나 웹상에서 다운로드 받아서 FTP 로업로드한 후에 tar 파일을 저장한 디렉토리로 이동합니다 .

* FTP 로 업로드할 경우에는 업로드할 디렉토리에 쓸 수 있는 권한이 있어야 합니다 . 이 부분은 리눅스의 디렉토리 권한에 대해서 조금만 찾아보시면 알 수 있습니다 . 앞서 설명한 새로 만든 계정의 홈디렉토리의 소유권을 변경한 것도 이런 이유입니다 .

다운로드 받은 파일을 보면 tar형식으로 압축되어 있습니다 .해제하는 명령어는 아래와 같습니다 .cd 명령어를 사용하여 nodejs 설치 압축파일이 있는디렉토리로 이동합니다 .아래의 명령어를 실행하여 압축을 풀어줍니다 .

* 명령어에서 "node-v0.10.26.tar.gz" 은 버전마다 바뀌므로ls명령어를 사용하여 다운받은 파일의 이름을 확인하기바랍니다 .PC 에 알집이 설치되어 있다면 알집으로 직접 푸신 후에FTP 로 업로드 하는 것을 추천합니다 .

sudo tar xvzf /home/kuma119/node-v0.10.26.tar.gz

Page 59: Rasberry nodejs install_final

10.3. 설치할 디렉토리 이동

nodejs 의 압축을 푼 디렉토리로 이동합니다 .여기서 압축을 푸는 것은 어떤 디렉토리에 해도 딱히 상관은 없습니다 .cd /home/node-v0.10.26.tar.gz

혹시 압축을 푼 후에 어디에 풀렸는지 모를 경우 아래의 명령어로어디에 압축이 풀렸는지 확인할 수가 있습니다 .find / -name node.js -type f

Page 60: Rasberry nodejs install_final

10.4. 빌드환경설정

리눅스에서는 바이너리코드를 설치하기 위해서 빌드환경설정을 하게 됩니다 .아래의 명령어를 입력하면 자동으로 설정을 합니다 .sudo ./configure

Page 61: Rasberry nodejs install_final

10.5. 빌드

아래의 명령어를 입력하여 설치할 수 있는 상태로 만들어줍니다 .sudo make

* 소요시간 : 최소 3 시간 이상 엄청 걸리므로 책 한 권 읽으시기 바랍니다 .

Page 62: Rasberry nodejs install_final

10.6. 설치

아래의 명령어를 입력하여 설치를 합니다 .sudo make install

Page 63: Rasberry nodejs install_final

10.7. 테스트

설치 후에 아래의 명령어로 설치여부를 확인합니다 .node -v

아래의 소스를 입력한 후 ftp 로 업로드하고 테스트를 해봅니다 .업로드 경로는 어느 곳에 올려도 상관은 없지만 익숙하지 않다면 자신이 만든 아래의 경로에 업로드해줍니다 ./home/kuma119

소스는 아래와 같이 입력하고 test.js 라는 파일명으로 저장해줍니다 .var http = require('http');

var server = http.createServer(function (request, response){response.writeHead(200, {"Content-Type" : "text/plain"});response.end("Hello World\n");

});

server.listen(8000);console.log("Server running at http://127.0.0.1:8000/");

포트는 기본적으로 설정된 8000 입니다 .실행은 아래의 명령어로 하시면 됩니다 .sudo node /var/www/test.js

Page 64: Rasberry nodejs install_final

10.8. 업데이트

아래의 명령어를 차례로 입력하면서 업데이트 해줍니다 .

mysql 을 사용하기 위해 설치하는 업데이트입니다 .sudo npm install mysql

ejs 는 nodejs 에서 사용되는 템플릿 모듈입니다 .sudo npm install ejs

express 는 각 요청을 처리해줄 수 있는 서버를 구성해주는 프레임워크입니다 .sudo npm install express

Page 65: Rasberry nodejs install_final

11. APM 설치11.1. Apache 설치11.2. MySQL 설치11.3. PHP 설치11.4. phpMyAdmin 설치11.5. phpMyAdmin 확인11.6. phpMyAdmin 사용 - 데이터베이스 생성11.7. phpMyAdmin 사용 - 유저생성11.8. phpMyAdmin 확인 - 테이블 생성11.9. phpMyAdmin 확인 - 테스트

Page 66: Rasberry nodejs install_final

11.1. Apache 설치

아래의 명령어를 사용하여 아파치를 설치합니다 .sudo apt-get install apache2

* 만약 설치하려고 할 때 아래와 같은 메시지가 나온다면 다음의 명령어를 실행해주고 다시 설치하면 됩니다 . 설치하는 도중에 설치하면 용량이 얼마나 차지하는지 알려주고 설치할지 말지 여부를 물어보는데 쿨하게 y 를 누르고 엔터를 쳐서 계속 설치해줍니다 .

Page 67: Rasberry nodejs install_final

11.1. Apache 설치

설치 후에 아래의 명령어를 실행하면 새로운 디렉토리가 생긴 것을 알 수 있습니다 .ls –al /var//var/www/ 라는 디렉토리인데 이 디렉토리는 아파치 웹서버가 실행될 때 기본적으로보여주는 디렉토리입니다 .예를 들어 브라우저에 http:// 라즈베리파이의아이피주소 / 로 접속했을 때 보여주는 디렉토리입니다 .

Page 68: Rasberry nodejs install_final

11.1. Apache 설치

이때 /var/www/ 디렉토리의 소유권은 root 로 되어 있으므로 아래의 명령어를 사용하여 소유권 변경을 합니다 .여기서 kuma119 는 새로 만든 계정입니다 .이렇게 소유권을 변경하는 이유는 FTP 로 파일을 올릴 때 해당 디렉토리에 쓸수 있는 권한이 있어야업로드가 가능하기 때문입니다 .sudo chown kuma119 -R /var/www

아래의 명령어를 사용하여 라즈베리파이가시작할 때 자동으로 아파치를 실행하도록 해줍니다 .sudo update-rc.d apache2 defaults

Page 69: Rasberry nodejs install_final

11.1. Apache 설치

아래의 명령어를 실행하여 새로 시작하여 테스트를 해줍니다 .shutdown -r now

라즈베리파이가 재시작된 후 /var/www 디렉토리에 아래와 같이 index.html 파일을 만들어 업로드 해줍니다 .

<html><body>hello, World</body></html>

아파치는 기본적으로 포트는 80 입니다 .브라우저에서 보통 아이피를 입력해서 서버에 접속을 하게 되면기본적으로 80번 포트로 접속을 시도하게 되기 때문에 이렇게 아이피만 입력하면 접속됩니다 .

Page 70: Rasberry nodejs install_final

11.2. MySQL 설치

아래의 명령어를 사용하여 mysql 을 설치합니다 .sudo apt-get install mysql-server mysql-client libmysqlclient-dev

설치할때 용량이 어느정도 필요한지 나오고 계속할 것인지 물어봅니다 .이 때 y 를 입력하고 엔터를 치시면 됩니다 .

* install 중간에 password 를 입력하라고 나오는데 이때 입력하는 비밀번호는 mysql 의 비밀번호이기 때문에 혼동하지 않도록 합니다 .

Page 71: Rasberry nodejs install_final

11.2. MySQL 설치

아래의 명령어로 설치여부를 볼수 있습니다 .ps 명령어는 현재 어떤 프로세스들이 실행되고 있는지 보는 명령어입니다 .ps -ef | grep mysqld

mysql 이 처음 설치되면 로컬에서만 접속이 되도록 되어 있습니다 .아래의 명령어를 사용하여 환경설정 파일을 수정하는 화면으로 이동합니다 .sudo nano /etc/mysql/my.cnf

아래의 구문을 찾아서 아래와 같이 수정하여 줍니다 .변경전 - bind-address = 127.0.0.1

변경후 - #bind-address = 127.0.0.1

Page 72: Rasberry nodejs install_final

11.3. PHP 설치

아래의 명령어를 사용하여 php 를 설치합니다 .sudo apt-get install php5-common php5 libapache2-mod-php5

설치할때 용량이 어느정도 필요한지 나오고 계속할 것인지 물어봅니다 .이 때 y 를 입력하고 엔터를 치시면 됩니다 .

아래의 파일을 하나 만들어서 phpinfo.php 라는 이름으로 저장합니다 .<? phpinfo(); ?>

ftp 로 /var/www 디렉토리에 업로드해주고 아래의 url 로 확인해봅니다 .http:// 서버아이피 /phpinfo.php

Page 73: Rasberry nodejs install_final

11.4. phpMyAdmin 설치

아래의 명령어를 사용하여 phpMyAdmin 을 설치합니다 .sudo apt-get install phpmyadmin

설치할 때 용량이 어느 정도 필요한지 나오고 계속할 것인지 물어봅니다 .이 때 y 를 입력하고 엔터를 치시면 됩니다 .

Page 74: Rasberry nodejs install_final

11.4. phpMyAdmin 설치

phpmyadmin 은 딱히 다른 툴로 mysql 을 조작할 필요없이 웹서비스 상에서직접 mysql 을 조작할 수 있도록 해주는 php 기반의 프로그램입니다 .우리는 apache 를 설치했기 때문에 apache2 를 선택해 줍니다 .

설치 중에 phpmyadmin 접속시에 사용될 비밀번호를 정해주고 ok 를 선택하여나가줍니다 .

Page 75: Rasberry nodejs install_final

11.5. phpMyAdmin 확인

접속하여 제대로 설치가 되었는지 확인해봅니다 .http:// 서버아이피 /phpmyadmin

Username 에는 root 를 입력하고 Password 에는 앞서 설정한 비밀번호를 입력해줍니다 .

Page 76: Rasberry nodejs install_final

11.6. phpMyAdmin 사용 - 데이터베이스 생성

Database 탭을 선택하고 Create new database 에 test_study 라고 입력하고collation 으로 utf8_general_ci 를 선택해줍니다 .collation 이란 데이터베이스에서 사용할 언어셋을 지칭하는데한글도 사용하기 위해 utf8_general_ci 를 선택합니다 .

Page 77: Rasberry nodejs install_final

11.7. phpMyAdmin 사용 - 유저 생성

왼편을 보시면 test_study 데이터베이스가 추가된 것을 확인할 수 있습니다 .새로 만든 데이터베이스인 test_study 를 사용하기 위해서는사용할 사용자를 생성한 후 지정해 주어야 합니다 .Privileges 탭을 선택하고 Add a new User 를 클릭하여 유저생성을 할 수 있는 화면으로 이동합니다 .

Page 78: Rasberry nodejs install_final

11.7. phpMyAdmin 사용 - 유저 생성

User name 은 임의로 지정을 해주시고 Host 에는 Local 을 선택해줍니다 .Password 에는 사용할 비밀번호를 입력해줍니다 .Password 는 지정하기 귀찮다면 Generate password 로 패스워드를 자동으로 생성해 줄 수 있습니다 .생성된 비밀번호는 따로 메모해 두어야 합니다 .데이터베이스의 권한은 따로 공부를 해야 하기 때문에 유저명과 동일한 데이터베이스에 관해모든 권한을 주도록 하는 Create database with same name and grant all privileges 를 선택해줍니다 .이 옵션을 선택해서 유저를 생성해 줄 경우 동일한 이름의 데이터베이스가 생성되기 때문에앞의 11.6. 의 데이터베이스 생성은 무시하고 유저 생성만 해주셔도 됩니다 .

Page 79: Rasberry nodejs install_final

11.7. phpMyAdmin 사용 - 유저 생성

Global privileges 는 모든 데이터베이스에 관한 권한을 설정하는 것이므로아무것도 선택하지 말고 Create User 버튼을 눌러 유저를 생성해 줍니다 .

Page 80: Rasberry nodejs install_final

11.8. phpMyAdmin 사용 - 테이블 생성

왼편의 test_study 데이터베이스를 선택해 줍니다 .

Page 81: Rasberry nodejs install_final

11.8. phpMyAdmin 사용 - 테이블 생성

SQL탭을 선택하고 테이블 생성쿼리를 입력한 후 Go 버튼을 눌러 실행해 줍니다 .생성 후에 좌측에 테이블이 생성된 것을 확인할 수 있습니다 .

create table test_nodejs( idx int NOT NULL AUTO_INCREMENT, mem_name char(20), mem_tel char(20), mem_addr char(255), PRIMARY KEY (idx));

Page 82: Rasberry nodejs install_final

11.9. phpMyAdmin 사용 - 테스트

자료를 입력합니다 .테이블을 생성할 때 idx 필드를 자동증가로 만들었기 때문에 insert 구문에는 입력하지 않아도 자동으로 증가되어 입력됩니다 .

INSERT INTO `test_nodejs` (`mem_name`, `mem_tel`, `mem_addr`) VALUES (' 터미널 ', '010-1234-5678', ' 서울시 광진구 구의동 ');INSERT INTO `test_nodejs` (`mem_name`, `mem_tel`, `mem_addr`) VALUES (' 우체국 ', '02-5687-1258', ' 서울시 영등포구 여의도동 ');INSERT INTO `test_nodejs` (`mem_name`, `mem_tel`, `mem_addr`) VALUES (' 횟집 ', '054-2345-2187', ' 경북 포항시 남구 오천읍 ');

Page 83: Rasberry nodejs install_final

11.9. phpMyAdmin 사용 - 테스트

입력한 자료를 확인합니다 .

SELECT * FROM `test_nodejs`

Page 84: Rasberry nodejs install_final

11.9. phpMyAdmin 사용 - 테스트

입력된 자료를 수정해봅니다 .우체국의 데이터를 변경해보겠습니다 .우체국의 데이터는 idx 가 2 이므로 이것을 조건으로 하여 수정하겠습니다 .

UPDATE `test_nodejs` SET mem_name='음식점 ', mem_tel='031-5418-6548', mem_addr=' 경기 수원시 팔달구 ' where idx=2

Page 85: Rasberry nodejs install_final

11.9. phpMyAdmin 사용 - 테스트

입력한 자료를 확인합니다 .우체국 데이터가 수정된 것을 알 수 있습니다 .

SELECT * FROM `test_nodejs`

Page 86: Rasberry nodejs install_final

11.9. phpMyAdmin 사용 - 테스트

데이터를 삭제해봅니다 .방금 수정했던 idx 가 2 인 데이터를 삭제해보겠습니다 .

DELETE FROM `test_nodejs` where idx=2

Page 87: Rasberry nodejs install_final

11.9. phpMyAdmin 사용 - 테스트

입력한 자료를 확인합니다 .idx 가 2 인 데이터가 삭제된 것을 알 수 있습니다 .

SELECT * FROM `test_nodejs`

Page 88: Rasberry nodejs install_final

12. 외부와의 통신12.1. 공유기 접속12.2. DMZ 설정12.3. 포트 포워딩12.4. 아파치 포트변경12.5. 테스트

Page 89: Rasberry nodejs install_final

12.1. 공유기 접속

공유기에 접속을 합니다 .여기서 공유기는 iptime 공유기에 한해 설명하겠습니다 .192.168.0.1 로 접속을 하면 공유기의 접속화면이 나옵니다 .공유기가 연결된 컴퓨터가 외부로 통신을 하기 위해서는DMZ 설정이나 포트 포워딩을 해주어야 합니다 .여기서 문제시 되는 것이 있는데 인터넷 서비스를 제공하는 업체에서는 기본적인 웹서비스 포트인80번을 막아놓습니다 .그렇기 때문에 우리는 80번 포트가 아닌 2080포트로 외부에서 접속하게 하도록 바꾸어 주어야 합니다 .

Page 90: Rasberry nodejs install_final

12.2. DMZ 설정

좌측의 메뉴탐색기에서 고급설정의 NAT/ 라우터 관리에 들어가서DMZ/Twin IP 설정을 선택하여 들어갑니다 .내부 IP 주소에는 라즈베리파이의 ip 주소를 적으면 됩니다 .

여기서 DMZ란 외부로 모든 포트를 개방한다는 의미인데 하나의 공유기에하나의 DMZ밖에 설정이 안되고 보안위험이 있으므로 정말 귀찮지 않은 이상에는포트 포워딩을 해주는 게 더 좋습니다 .

Page 91: Rasberry nodejs install_final

12.3. 포트 포워딩

포트 포워딩은 외부에서 특정 포트로 요청한 응답을 네트워크 내의 정해진 컴퓨터의 포트로연결해준다는 뜻입니다 .만약 공유기의 ip 주소가 253.122.323.123 이라면 외부에서 접속을 하려면 주소창에http://253.122.323.123:2080 라고 입력을 하게 될 것입니다 .이 때 2080번 포트로 들어오려는 요청을 공유기가 받게 되고 공유기의 설정에 따라2080번 포트로 들어온 요청일 경우에는 공유기 내의 네트워크의 미리 정해진 컴퓨터의2080번 포트로 연결해줍니다 .이 것을 포트 포워딩이라고 합니다 .내부 IP 주소에는 요청을 받았을 때 연결해줄 PC 의 IP 주소를 입력해줍니다 .규칙이름은 임의로 rasberry 로 적어줍니다 .외부포트와 내부포트는 모두 2080 으로 적어주고 추가 버튼을 눌러 등록해줍니다 .

Page 92: Rasberry nodejs install_final

12.4. 아파치 포트 변경

앞서 말한 바와 같이 아파치에서 다른 포트를 연결해주기 위해 설정파일을 변경해줍니다 .우리는 기본 포트 80번이 아닌 2080번으로 연결을 해주도록 하겠습니다 .아래와 같이 포트설정하는 환경파일을 열고 수정해줍니다 .

sudo nano /etc/apache2/ports.conf

NameVirtulHost *:80 -> NameVirtulHost *:2080Listen 80 -> Listen 2080

Page 93: Rasberry nodejs install_final

12.4. 아파치 포트 변경

아래와 같이 기본적인 가상호스트 설정파일을 열어 포트 부분을 수정해줍니다 .여기서 DocumentRoot 부분은 웹으로 접속시에 기본적으로 보여주는 디렉토리인데/var/www 을 다른 디렉토리로 변경하셔도 됩니다 .

sudo nano /etc/apache2/sites-available/default

<VirtualHost *:80> -> <VirtualHost *:2080>

Page 94: Rasberry nodejs install_final

12.5. 테스트

설정을 한 후에는 아파치 서비스를 재시작 해주어야 합니다 .

sudo /etc/init.d/apache2 restart

공유기의 ip 는 공유기 접속화면에서 확인한 ip 주소가 공유기의 ip 주소가 됩니다 .즉 , 외부에서 접속할 때 주소창에 입력할 ip 주소입니다 .외부에서 통신이 되는지의 여부를 테스트하는 제일 좋은 방법은 핸드폰에서 와이파이를 연결하지 않고공유기의 ip 주소로 연결해보면 됩니다 .아래는 핸드폰으로 접속해본 화면입니다 .

Page 95: Rasberry nodejs install_final

13. 각 언어 활용13.1. nodejs- 실행 전 설명13.1.1. nodejs- 실행화면13.1.2. nodejs- 소스 다운로드13.2. php- 실행 전 설명13.2.1. php- 실행화면13.2.2. php- 소스 다운로드13.3. slim- 실행 전 설명13.3.1. slim- 실행화면13.3.2. slim- 소스 다운로드13.4. angularjs- 설명13.4.1. angularjs-slim 과의 연동 - 설정13.4.2. angularjs-slim 과의 연동 - 소스 다운로드

Page 96: Rasberry nodejs install_final

13.1. nodejs- 실행 전 설명

소스를 올린 경로는 아래와 같습니다 ./var/www/nodejs/app.js/var/www/nodejs/edit.html/var/www/nodejs/insert.html/var/www/nodejs/list.html

상태를 기록하기 위한 파일log.log

로그파일을 미리 생성합니다 .touch /var/www/nodejs/log.log

백그라운드로 실행하는 명령어는 아래와 같습니다 .sudo node /var/www/nodejs/app.js &

백그라운드로 실행하면서 상태를 파일에 기록하는 명령어는 아래와 같습니다 .sudo node /var/www/nodejs/app.js > /var/www/nodejs/log.log &

백그라운드로 실행하고 기록된 파일을 보는 명령어는 아래와 같습니다 .tail -f /var/www/nodejs/log.log

Page 97: Rasberry nodejs install_final

13.1. nodejs- 실행 전 설명

테스트는 아래의 주소로 합니다 .http:// 자신의아이피 :52273/

포트는 app.js 에서 임의로 변경할 수 있습니다 .아래의 소스에서 52273번을 다른 포트로 변경하시면 됩니다 .

app.js 에서 DB 에 연결될 패스워드도 변경해주어야 합니다 .

Page 98: Rasberry nodejs install_final

13.1. nodejs- 실행 전 설명

외부에서 접속하기 위해서는 app.js 에서 설정해 준 포트번호를공유기에서 포트 포워딩을 해주어야 합니다 .12.3. 을 참고하여 포트 포워딩을 설정해주시기 바랍니다 .

Page 99: Rasberry nodejs install_final

13.1.1. nodejs- 실행화면

리스트 입력

수정

삭제는 삭제할 행의 DELETE 버튼을 누르면 됩니다 .

Page 100: Rasberry nodejs install_final

13.1.2. nodejs- 소스 다운로드

아래의 경로에서 다운받을 수 있습니다 .http://www.groovytrains.com/download/nodejs.zip

Page 101: Rasberry nodejs install_final

13.2. php- 실행 전 설명

소스를 올린 경로는 아래와 같습니다 ./var/www/php/db_config.php/var/www/php/list.php/var/www/php/insert.php/var/www/php/update.php/var/www/php/delete.php

db_config.php 소스가 DB 연결부분의 설정이므로 자신에 맞게 수정해줍니다 .

Page 102: Rasberry nodejs install_final

13.2.1. php- 실행화면

리스트 입력

수정

삭제는 삭제할 행의 DELETE 버튼을 누르면 됩니다 .

Page 103: Rasberry nodejs install_final

13.2.2. php- 소스 다운로드

아래의 경로에서 다운받을 수 있습니다 .http://www.groovytrains.com/download/php.zip

Page 104: Rasberry nodejs install_final

13.3. slim- 실행 전 설명

slim 은 rest 기반의 웹서비스를 쉽게 구현할 수 있는 php 의 프레임워크 중 하나입니다 .웹동네님이 가르쳐주신 아래의 url 에 기반하여 구축하였습니다 .http://coenraets.org/blog/2011/12/restful-services-with-jquery-php-and-the-slim-framework/

아래의 주소로 slim 을 받습니다 .https://github.com/ccoenraets/wine-cellar-php/zipball/master

다운받은 파일의 압축을 풀어 ftp 로 /var/www/cellar 디렉토리를 만들어 업로드 합니다 .다운받은 파일 중 cellar.sql 중에 테이블을 만드는 구문과 데이터를 입력하는 insert 구문을Phpmyadmin 에서 실행해줍니다 .

11.9. 를 참고하여 SQL 구문을 실행해주면 됩니다 .

Page 105: Rasberry nodejs install_final

13.3. slim- 실행 전 설명

테이블 만드는 구문 -CREATE TABLE `wine` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) DEFAULT NULL, `year` varchar(45) DEFAULT NULL, `grapes` varchar(45) DEFAULT NULL, `country` varchar(45) DEFAULT NULL, `region` varchar(45) DEFAULT NULL, `description` blob, `picture` varchar(256) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=latin1;

insert 구문 -INSERT INTO `wine` VALUES(1,'CHATEAU DE SAINT COSME','2009','Grenache / Syrah','France','Southern Rhone / Gigondas‘,'The aromas of fruit and spice ….to fish dishes.‘,'saint_cosme.jpg'),(2,'LAN RIOJA CRIANZA','2006','Tempranillo','Spain','Rioja‘,'A resurgence of interest in …black truffle, this wine will not fail to tickle the taste buds.','lan_rioja.jpg'),(3,'MARGERUM SYBARITE','2010','Sauvignon Blanc','USA','California Central Cosat','The cache of a fine … transport you back in time.','margerum.jpg'),(4,'OWEN ROE \"EX UMBRIS\"','2009','Syrah','USA','Washington','A one-two punch of …award-winning taste sensation.','ex_umbris.jpg'),(5,'REX HILL','2009','Pinot Noir','USA','Oregon','One cannot doubt that … that everyone will be talking about tomorrow.','rex_hill.jpg'),(6,'VITICCIO CLASSICO RISERVA','2007','Sangiovese Merlot','Italy','Tuscany','Though soft and rounded in ... buds wholly satisfied.','viticcio.jpg'),(7,'CHATEAU LE DOYENNE','2005','Merlot','France','Bordeaux','Though dense and chewy, this wine does not ... luxurious experience for the\nsenses.','le_doyenne.jpg'),(8,'DOMAINE DU BOUSCAT','2009','Merlot','France','Bordeaux','The light golden color of this wine ... sun-soaked vineyard.','bouscat.jpg'),(9,'BLOCK NINE','2009','Pinot Noir','USA','California','With hints of ginger and spice, this... dessert fare for a holiday gathering.','block_nine.jpg'),(10,'DOMAINE SERENE','2007','Pinot Noir','USA','Oregon','Though subtle in its ... finish completes the picture of a fine sipping experience.','domaine_serene.jpg'),(11,'BODEGA LURTON','2011','Pinot Gris','Argentina','Mendoza','Solid notes of black currant... for varied palates.','bodega_lurton.jpg'),(12,'LES MORIZOTTES','2009','Chardonnay','France','Burgundy','Breaking the mold of the classics, this ... of adrenaline it brings.','morizottes.jpg');

위의 insert 구문 중 description 필드의 내용은 줄였습니다 .원본 데이터는 cellar.sql 에 있으므로 원본 모두 사용하고 싶으시면cellar.sql 에서 복사해서 사용하시기 바랍니다 .

Page 106: Rasberry nodejs install_final

13.3. slim- 실행 전 설명

slim 프레임워크를 사용하려면 apache 에서 rewrite 모듈을 활성화 시켜주어야 합니다 .Apache rewrite 모듈이란 http 요청으로 들어온 주소를 임의로 변경해주는 모듈입니다 .예시 ) http://localhost/users => http://localhost/index.php?url=users

아래의 명령어를 실행하여 rewrite module 을 활성화시켜 줍니다 .sudo a2enmod rewrite

아래의 명령으로 설정파일에 들어가서 apache 가 rewrite 모듈을웹서비스에서 사용할 수 있도록 설정에서 변경해 줍니다 .sudo nano /etc/apache2/sites-available/default

AllowOverride None -> AllowOverride all

Page 107: Rasberry nodejs install_final

13.3. slim- 실행 전 설명

설정 후에 apache 를 다시 시작해줍니다 .sudo service apache2 restart

rewrite 모듈은 각 디렉토리에 있는 .htaccess 파일을 통하여 주소를 변경해줄 수 있습니다 .이 파일을 활용한다면 slim 을 사용하지 않고도 rest 서비스가 가능합니다 .slim 의 .htaccess 파일의 위치는 cellar/api/.htaccess 입니다 .

Page 108: Rasberry nodejs install_final

13.3. slim- 실행 전 설명

/var/www/cellar/api/index.php 의 파일을 수정해 줍니다 .dbhost 는 127.0.0.1 로 놓아두어도 됩니다 .

/var/www/cellar/js/main.js 를 수정해 줍니다 .이 때 자신의 아이피는 외부에서 접속할 수 있는 아이피를 입력해 주어야외부에서도 접속이 가능합니다 .포트는 apache 설정파일에서 정해준 포트번호인 2080 입니다 .

Page 109: Rasberry nodejs install_final

13.3.1. slim- 실행화면

Page 110: Rasberry nodejs install_final

13.3.2. slim- 소스 다운로드

원본은 아래의 경로에서 다운받을 수 있습니다 .https://github.com/ccoenraets/wine-cellar-php/zipball/master

아래의 경로에서도 다운받을 수 있습니다 .http://www.groovytrains.com/download/slim.zip

Page 111: Rasberry nodejs install_final

13.4. angularjs- 설명

Angularjs 는 MVC 기반의 프론트엔드 프레임워크입니다 .쉽게 풀어 말하면 화면상의 보여지는 것의 흐름을 관리할 수 있는 프레임워크입니다 .볼 수 있는 것은 프론트 엔드이고 볼 수 없는 것은 백 엔드라고 생각하시면 됩니다 .

데이터베이스에 접속하여 데이터를 가져와서 정제하는 역할을 하는 것은 백 엔드이고그 정제된 데이터를 한번 더 보기 좋게 정렬하거나 변경하여 보여주는 역할을 하는 것이 프론트 엔드입니다 .

데이터를 입력하거나 변경하는 명령을 프론트 엔드에서 받아 백 엔드쪽으로 넘겨주면백 엔드에서는 적당한 처리를 한 후에 프론트 엔드로 응답을 해주고 프론트 엔드는화면으로 해당 응답을 보여주는 방식입니다 .

Page 112: Rasberry nodejs install_final

13.4.1. angularjs-slim 과의 연동 - 설정

/var/www/angular-cellar-master/api/index.php 의 파일을 수정해 줍니다 .dbhost 는 127.0.0.1 로 놓아두어도 됩니다 .

Page 113: Rasberry nodejs install_final

13.4.1. angularjs-slim 과의 연동 - 설정

Page 114: Rasberry nodejs install_final

13.4.2. angularjs-slim 과의 연동 - 소스 다운로드

아래의 url 을 참고하여 구축하였습니다 .http://coenraets.org/blog/2012/02/sample-application-with-angular-js/

다운받을 수 있는 소스의 위치는 아래와 같습니다 .https://github.com/ccoenraets/angular-cellar/archive/master.zip

아래의 경로에서도 다운받을 수 있습니다 .http://www.groovytrains.com/download/angularjs_slim.zip

Page 115: Rasberry nodejs install_final

14. 마무리14.1. 싱글보드 컴퓨터 스펙 및 가격비교14.2. 다른 활용법들

Page 116: Rasberry nodejs install_final

14.1. 싱글보드 컴퓨터 스펙 및 가격비교

2014년 3월 10 일 기준으로 본 가격입니다 .마스보드 A10 : 71,280 원 마스보드 A20 : 84,000 원 큐비보드 : 86,900 원큐비보드 2: 110,000 원 비글본블랙 : 77,510 원 라즈베리파이 : 53,350 원

이 외에도 많은 싱글보드 컴퓨터가 있지만 일반 적인 것만 비교해 보았습니다 .싱글보드 컴퓨터의 스펙 한계가 있기 때문에 아직은 라즈베리파이가 가장 싸면서도효율적인 것을 알 수 있습니다 .

Page 117: Rasberry nodejs install_final

14.2. 다른 활용법들

싱글보드 컴퓨터는 사용 전력이 극히 낮아서 24 시간 동작해야하는 웹서버나 SVN 같은저장소 용도로 사용할 수 있을 뿐 아니라 각종 전자 센서과 통신을 이용하여 스마트폰으로홈 오토메이션까지 구축하는 것이 가능합니다 .

간단히 LED 를 켜고 끌 수 있습니다 .LED제어

초음파 센서로써 앞에 있는 물체의 거리를 감지하는 것이 가능합니다 .응용하면 애완동물과 하루 종일 놀아주는 로봇을 만드는 것이 가능합니다 .초음파 센서 활용

모터도 간단히 제어가 가능하기 때문에 무선으로 잡아주고 스마트폰으로 제어가 가능합니다 .모터제어

라즈베리파이에 연동시켜 좀 더 로봇을 쉽게 만들 수 있도록 해주는 모듈도 있습니다 .로봇 활용

아래와 같이 클러스터링을 이용하여 슈퍼 컴퓨터를 제작하는 것도 가능합니다 .슈퍼 컴퓨터 동영상

라즈베리파이로 영상을 받을 수가 있기 때문에 감시카메라 혹은 아기 돌보기 용으로도 가능합니다 .카메라활용

터치스크린도 있기 때문에 모니터도 필요가 없습니다 . 말 그대로 초소형 컴퓨터가 되는 것이지요 .TFT 터치스크린

라즈베리파이보다 하위단계인 아두이노로 만들어본 탱크입니다 .라즈베리파이로 구현한다면 외부에서 wifi 를 통하여 움직일 수 있습니다 .동영상링크

Page 118: Rasberry nodejs install_final

15. 무선랜15.1. wifi 동글15.2. 설정

Page 119: Rasberry nodejs install_final

15.1. wifi 동글

Wifi 동글은 아래의 링크를 통해서 구매했습니다 .아트로봇Wifi 동글을 USB포트에 연결해줍니다 .

Page 120: Rasberry nodejs install_final

15.2. 설정

아래의 명령어를 실행하여 라즈베리파이의 네트워크를 확인합니다 .ifconfig

위의 스크린샷에서 보면 eth0 은 유선이고 wlan0 은 무선입니다 .그 중 wlan0 의 Hwaddr 이 연결한 wifi 동글의 mac address 입니다 .공유기에서 mac 인증을 통하여 무선 연결을 허용할 경우 이 mac address 를 등록해주어야 합니다 .

Page 121: Rasberry nodejs install_final

15.2. 설정

아래의 명령어를 실행하여 무선 네트워크 설정을 수정합니다 .sudo nano /etc/network/interfaces

address 에 자신이 사용할 아이피를 적어줍니다 .보통 192.168.0.1~192.168.0.255 사이에서 다른 컴퓨터와중복되지 않도록 적어줍니다 .

wpa-ssid 는 공유기의 ssid 입니다 .wpa-psk 는 공유기 무선 암호입니다 .wpa-key-mgmt 과 wpa-proto 는 인증방법입니다 .wpa-pairwise 와 wpa-group 는 암호화방식입니다 .