SlideShare una empresa de Scribd logo
1 de 121
Descargar para leer sin conexión
라즈베리파이를 활용한 
개인 웹서버 구축
1. 웹서버로 활용하기 위한 구성품 
1.1. 구성도 
1.2. 사양 
1.3. 연결도 
1.4. 관련 사이트
1.1. 구성도
1.2. 사양
1.3. 연결도
1.4. 관련사이트 
공식홈페이지 
판매처 아이씨뱅큐 
판매처 엘레파츠 
네이버까페 오로카 
네이버까페 라즈베리파이 커뮤니티 
산딸기마을 
메이크코리아
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. 정리
2.1. SD카드 
라즈베리파이와 함께 구입하면 가격이 비싸기 때문에 따로 구입하기를 바랍니다. 
라즈베리파이에서 사용되는 OS인 라즈비안은 최소2GB, 권장 4GB이므로 
용량과 가격을 생각했을때 16GB가 적당합니다. 
8GB : 11,000원 ~ 13,000원 
16GB : 13,000원 ~ 15,000원 
32GB : 15,000원 ~ 20,000원 
* 위의 시세를 형성하고 있으니 괜히 눈탱이 맞지 않도록 조심합시다. 
진지한 궁서체입니다.
2.1.1. 물리적크기에따른표기 
SD, miniSD, microSD 가 있는데 크기비교는 아래와 같습니다. 
SD > miniSD > microSD
2.1.2. 용량에따른표기 
보통 SD카드라고 부르는 것에는 SD, SDHC, SDXC 등이 있습니다. 
① SD: 2GB까지 
② SDHC: 4GB에서 32GB까지 
③ SDXC: 64GB부터 
편하게 용량에 따라서 이렇게 구분되기는 하지만 편하게 SD카드라고 부르면 됩니다.
2.1.3. 속도에따른표기 
속도 표기 규격 중에 class와 UHS 등이 있는데 이것은 SD카드의 속도를 결정하는 단위입니다. 
용량만 보고 사는 경우가 많은데 속도에 따라 가격이 틀려지므로 괜히 뒤통수 맞지 않기를 바랍니다. 
class는 최저 보장 속도(MB/초)를 적는 것이고 UHS는 데이터의 이론적인 최대 전송 속도를 적습니다. 
UHS-I 규격은 50MB/초(4비트 전송 기준), UHS-II는 이론적으로는 312MB/초까지 속도를 낼 수 있습니다. 
물론 이론에 따른 것이라 속도가 딱딱 맞아떨어지지는 않습니다. 
그 이상의 속도가 필요한 분야라면 카메라나 캠코더 정도이니까 논외로 하겠습니다. 
무난하게 사용하시려면 10class와 UHS-I가 동시에 표기된 것이라면 오케이라고 아시면 되겠습니다.
2.1.4. 호환여부 
아래의 링크에서 메모리의 호환여부를 판단하고 구입하여야 합니다. 
메모리호환여부
2.2. 비디오연결 
최초 OS설치를 하기 위해 라즈베리파이와 모니터를 연결해야 하기 때문에 
RCA나 HDMI로 모니터와 연결을 해야 하는데 쉽게 사용할 수 있는 HDMI로 연결합니다. 
아래의 두가지 방식 중 사용할 수 있는 것을 선택해서 구매하도록 하면 되겠습니다. 
HDMI -> DVI 
HDMI -> HDMI
2.3. 입력연결 
마우스는 딱히 필요하지 않기 때문에 제외하겠습니다. 
키보드는 무선을 사용할 수도 있지만 설치한 후에는 원격으로 접속해서 사용할 것이기 때문에 
집에 있는 usb 키보드 가져다가 연결하시면 됩니다.
2.4. 전원연결 
라즈베리파이에는 micro USB로 전원을 넣어주어야 합니다. 
micro USB는 요즘 사용하는 스마트폰의 충전잭이라고 생각하시면 됩니다. 
편하게 전원연결을 하기 위해서 전원코드가 달린 것이 아닌 USB <-> micro USB를 사용하시면 됩니다. 
이렇게 사용하면 컴퓨터 전원이 꺼져있는 상태에서도 전원을 가져와서 쓰기 때문에 편리합니다.
2.5. 인터넷연결 
와이파이 동글을 사용하여 무선 인터넷을 연결하는 방법도 있으나 
여기서는 그냥 랜선 연결을 하겠습니다.
3. 운영체제 라즈비안 설치방법 
3.1. 라즈비안wheezy 다운로드 
3.2. win32diskimager 다운로드 
3.3. SD카드에 쓰기 
3.4. 부팅 전 케이블 연결 
3.5. 부팅
3.1. 라즈비안wheezy 다운로드 
라즈베리 공식 홈페이지에서 라즈비안을 다운받습니다. 
http://www.raspberrypi.org/downloads
3.2. win32diskimager 다운로드 
win32diskimager 를 다운받습니다. 
http://sourceforge.net/projects/win32diskimager/
3.3. SD카드에쓰기 
win32diskimager 를 실행해서 SD카드에 다운받은 라즈비안을 담습니다. 
라즈비안 img 파일을 선택해주고 현재 SD카드가 연결되어 있는 드라이브를 
확인해준 후에 write 버튼을 눌러 SD카드에 라즈비안 운영체제를 넣어줍니다. 
소요시간은 5분 내외입니다. 
원래 용량이 얼마였건간에 56MB로 줄어듭니다. 
이 것은 나중에 설정으로 변경이 가능하니 신경을 안 써도 됩니다.
3.4. 부팅전케이블연결 
라즈베리파이 합체!!! 
① 라즈베리파이 - HDMI케이블 - 모니터 
② 라즈베리파이 - 키보드 
③ 라즈베리파이 - 랜선 - 공유기나 모뎀 
④ 라즈베리파이 - SD카드 
⑤ 라즈베리파이 - micro USB - 컴퓨터 USB포트
3.5. 부팅 
SD카드를 연결한 후 micro USB를 연결하여 전원을 넣어주면 
켜지면서 자동으로 설치가 되기 시작합니다.
4. 환경설정 
①Expand Filesystem 
②Change User Password 
③Enable Boot to Desktop/Scratch 
④InternationalisationOptions 
⑤Enable Camera 
⑥Add to Rastrack 
⑦Overclock 
⑧Advanced Options 
⑨About raspi-config
4. 환경설정
4. 환경설정(①) 
① Expand Filesystem 
가장 중요한 설정입니다. 
라즈비안을 SD카드에 담을때 자동으로 용량이 작게 설정이 됩니다. 
라즈비안을 설치한 후에는 반드시 이 항목을 선택해줌으로써 
나머지 공간도 사용할 수 있도록 해주어야 합니다.
4. 환경설정(②) 
② Change User Password 
라즈비안은 리눅스 운영체제인데 기본으로 최고관리자계정인 root와 
일반 계정인 pi가 존재합니다. 
그 중 pi의 초기 암호는 raspberry 이므로 꼭 수정해주어야 합니다.
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 desktop 
pi 계정으로 로그인되면서 GUI환경으로 접속하게 됩니다. 
* Scratch Start the Scratch programming environment upon boot 
scratch라는 programming 환경으로 부팅하는 항목인데 무시하셔도 됩니다.
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를 눌러주시면 됩니다.
4. 환경설정(④) 
* Change Timezon - Set up timezone to match your location 
Asia를 선택하고 tab키를 눌러 이동하여 ok를 눌러줍니다. 
Seoul을 선택하고 tab키를 눌러 이동하여 ok를 눌러줍니다. 
* Change Keyboard Layout - Set the keyboard layout to match your keyboard 
특별한 키보드가 아니라면 딱히 설정해줄 필요는 없습니다.
4. 환경설정(⑤~⑥) 
⑤ Enable Camera 
카메라를 사용할 것인지 정하는 옵션인데 카메라를 사용하지 않기 때문에 
무시하셔도 됩니다. 
⑥ Add to Rastrack 
닉네임과 이메일을 입력하면 라즈베리파이의 분포도에 자신의 라즈베리파이가 
포함이 됩니다. 
아래의 사이트에서 등록된 라즈베리파이의 분포도를 볼 수 있습니다. 
무시하셔도 되는 옵션입니다.
4. 환경설정(⑦~⑧) 
⑦ Overclock 
오버클럭을 하는 옵션인데 큰 성능향상은 없기 때문에 무시하셔도 됩니다. 
⑧ Advanced Options 
A1 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 GPU 
GPU에 할당하는 메모리를 16/32/64/128/256mb 단위로 정해주는 것인데 
원격으로 CUI 기반으로 작업할 것이기 때문에 16으로 정해줍니다.
4. 환경설정(⑧~⑨) 
A4 SSH - Enable/Disable remote command line access to your Pi using SSH 
SSH를 사용할 것인지 묻는 여부인데 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를 선택하여 재부팅을 합니다.
5. 로그인 
5.1. root 계정 활성화 
5.2. 계정설정
5.1. root 계정활성화 
초기 설정을 마치면 재부팅을 합니다. 
재부팅이 되면 로그인 아이디와 패스워드를 묻는데 당황하지 마시고 계정을 적는 란에는 
pi를 입력하시고 Password 에는 초기설정에서 입력하신 패스워드를 입력해줍니다. 
패스워드를 수정하지 않았다면 raspberrypi 를 입력합니다. 
* 잘 보시면 kkom login 이라고 적혀있는데 앞서 초기설정에서 hostname에 
적은 명칭하고 동일한 것을 알 수 있습니다. 
라즈비안을 설치하면 root라는 최고관리자 아이디와 pi라는 일반 아이디가 생깁니다. 
설치 후 root는 활성화되지 않으므로 아래와 같이 패스워드를 설정함으로써 활성화시켜줍니다. 
sudo passwd root
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/kuma119 
sudo cp /home/pi/.bashrc /home/kuma119 
sudo cp /home/pi/.bash_logout /home/kuma119
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를 눌러서 나옵니다.
5.2. 계정설정 
아래의 명령어를 입력하여 pi계정을 로그아웃합니다. 
logout 
새로운 계정으로 로그인한 후 아래의 명령어로 기존의 pi 계정을 삭제해줍니다. 
sudo deluser pi 
아래의 명령어를 입력하여 홈디렉토리를 삭제해줍니다. 
rm -rf /home/pi
6. xwindow맛보기
6. xwindow맛보기 
아래의 명령어를 입력하면 라즈비안의 GUI인 xwindow로 들어갈 수 있습니다. 
startx 
상당히 버벅대므로 안 하는게 좋습니다.
7. 라즈비안 업데이트 및 업그레이드 
7.1. 프로그램 및 라이브러리 다운로드 
7.2. 다운로드한 프로그램 및 라이브러리 설치
7.1. 프로그램및라이브러리다운로드 
sudo apt-get update
7.2. 다운로드한프로그램및라이브러리설치 
sudo apt-get upgrade 
설치하면 용량이 필요하다고 하는데 우리는 여유가 많으니까 쿨하게 y를 입력하여 진행해줍니다.
8. 터미널 접속(putty) 
8.1. SSH 설정 
8.2. putty 다운로드 
8.3. 터미널 접속 
8.4. 터미널 명령어
8.1. SSH 설정 
라즈비안 설치 후 나오는 초기 설정화면에서 ssh항목을 사용한다고 설정을 하였다면 
추가로 설정할 것은 없습니다. 
만약 설정을 하지 않았다면 아래의 명령어를 사용해 환경설정화면으로 진입하여 
SSH를 사용한다고 설정을 해주셔야 합니다. 
sudo raspi-config
8.2. putty 다운로드 
아래의 주소로 접속하여 다운로드 받습니다. 
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
8.3. 터미널접속 
아래의 명령어로 라즈베리파이의 ip를 알아내어 따로 적어둡니다. 
ifconfig
8.3. 터미널접속 
알아낸 ip주소를 Host Name에 적고 SSH를 선택한 후 Open을 눌러서 접속합니다.
8.4. 터미널명령어 
/ 디렉토리 표시 
. 현재 디렉토리 
.. 상위 디렉토리 
cd 디렉토리 이동 
ls 디렉토리 내용 출력 
mkdir 디렉토리 생성 
rmdir 디렉토리 삭제 
pwd 현재 작업 디렉토리 절대 주소 출력 
cp 파일 복사 (디렉토리 포함은 '-r') 
mv 파일 이동 
rm 파일 삭제 (디렉토리 포함은 '-r')(강제 삭제는 -f) 
cat 파일 내용 출력 
more 파일 내용 페이지 단위로 출력 
less 파일 내용 페이지 단위로 출력
8.4. 터미널명령어 
켜는 법은 전원 연결을 하면 됩니다. 
전원선이 연결되어 있을 경우는 뺐다가 다시 연결하면 됩니다. 
전원을 끄려면 아래의 명령어 중 하나를 쓰시면 됩니다. 
sudo shutdown -h now 
sudo halt 
재부팅을 하시고 싶으시면 아래의 명령어 중 하나를 쓰시면 됩니다. 
sudo shutdown -r now 
sudo reboot
9. ftp 접속(filezilla) 
9.1. 다운로드 
9.2. 연결방법 
9.3. 편의성
9.1. 다운로드 
아래의 링크에서 파일질라를 다운로드 받습니다. 
https://filezilla-project.org/
9.2. 연결방법 
설치 후에 사이트관리자를 열어서 설정해줍니다. 
호스트에는 아이피를 입력해줍니다. 
공유기가 설치되어 있다면 포트포워딩이나 DMZ설정 후에 공유기 ip를 입력해주시면 됩니다. 
(포트포워딩과 DMZ는 나중에 설명하겠습니다.) 
프로토콜은 SFTP로 선택해주고 로그온 유형은 일반으로 선택해줍니다.
9.3. 편의성 
접속시 기본으로 연결되는 디렉토리를 설정할 수 있고 연결된 컴퓨터의 디렉토리와 
자동으로 위치 동기화를 시킬 수가 있습니다. 
고급탭을 선택해주고 기본 로컬 디렉토리를 자신의 디렉토리로 설정해줍니다. 
기본 리모트 디렉토리에 서버의 디렉토리를 적어줍니다. 
아파치 설치 후에 /var/www 를 적어주시면 기본적으로 웹에서 접속될 디렉토리로 설정이 됩니다. 
그리고 탐색 동기화 기능 사용을 체크해줍니다.
10. nodejs 설치 
10.1. 다운로드 
10.1.1. wget 
10.1.2. FTP 
10.2. 압축풀기 
10.3. 설치할 디렉토리 이동 
10.4. 빌드환경설정 
10.5. 빌드 
10.6. 설치 
10.7. 테스트
10.1. 다운로드 
다운받는 방법에는 라즈베리파이에서 바로 다운받을수 있는 방법과 
다운받아서 FTP로 업로드하는 방법이 있습니다. 
wget으로 바로 다운받는 방법은 버전마다 주소가 변경이 되고 
속도를 비교해서도 느리기 때문에 FTP로 업로드하는 방식을 하시는 것을 권장합니다.
10.1.1. wget 
다운받아서 저장될 디렉토리로 이동합니다. 
cd /home/kuma119 
아래의 url은 버전이 바뀔때마다 변경되므로 다운받아서 ftp로 올리는 방법을 추천합니다. 
sudo wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
10.1.2. FTP 
아래의 링크로 들어가서 source code를 다운로드 받습니다. 
http://nodejs.org/download/
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
10.3. 설치할디렉토리이동 
nodejs의 압축을 푼 디렉토리로 이동합니다. 
여기서 압축을 푸는 것은 어떤 디렉토리에 해도 딱히 상관은 없습니다. 
cd /home/node-v0.10.26.tar.gz 
혹시 압축을 푼 후에 어디에 풀렸는지 모를 경우 아래의 명령어로 
어디에 압축이 풀렸는지 확인할 수가 있습니다. 
find / -name node.js -type f
10.4. 빌드환경설정 
리눅스에서는 바이너리코드를 설치하기 위해서 빌드환경설정을 하게 됩니다. 
아래의 명령어를 입력하면 자동으로 설정을 합니다. 
sudo ./configure
10.5. 빌드 
아래의 명령어를 입력하여 설치할 수 있는 상태로 만들어줍니다. 
sudo make 
* 소요시간 : 최소 3시간 이상 
엄청 걸리므로 책 한 권 읽으시기 바랍니다.
10.6. 설치 
아래의 명령어를 입력하여 설치를 합니다. 
sudo make install
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 Worldn"); 
}); 
server.listen(8000); 
console.log("Server running at http://127.0.0.1:8000/"); 
포트는 기본적으로 설정된 8000입니다. 
실행은 아래의 명령어로 하시면 됩니다. 
sudo node /var/www/test.js
10.8. 업데이트 
아래의 명령어를 차례로 입력하면서 업데이트 해줍니다. 
mysql 을 사용하기 위해 설치하는 업데이트입니다. 
sudo npm install mysql 
ejs는 nodejs에서 사용되는 템플릿 모듈입니다. 
sudo npm install ejs 
express는 각 요청을 처리해줄 수 있는 서버를 구성해주는 프레임워크입니다. 
sudo npm install express
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 확인-테스트
11.1. Apache 설치 
아래의 명령어를 사용하여 아파치를 설치합니다. 
sudo apt-get install apache2 
* 만약 설치하려고 할 때 아래와 같은 메시지가 나온다면 다음의 명령어를 실행해주고 다시 설치하면 됩니다. 
설치하는 도중에 설치하면 용량이 얼마나 차지하는지 알려주고 설치할지 말지 여부를 
물어보는데 쿨하게 y를 누르고 엔터를 쳐서 계속 설치해줍니다.
11.1. Apache 설치 
설치 후에 아래의 명령어를 실행하면 새로운 디렉토리가 생긴 것을 알 수 있습니다. 
ls –al /var/ 
/var/www/ 라는 디렉토리인데 이 디렉토리는 아파치 웹서버가 실행될 때 기본적으로 
보여주는 디렉토리입니다. 
예를 들어 브라우저에 http://라즈베리파이의아이피주소/ 로 접속했을 때 보여주는 디렉토리입니다.
11.1. Apache 설치 
이때 /var/www/ 디렉토리의 소유권은 root로 되어 있으므로 아래의 명령어를 사용하여 소유권 변경을 합니다. 
여기서 kuma119는 새로 만든 계정입니다. 
이렇게 소유권을 변경하는 이유는 FTP로 파일을 올릴 때 해당 디렉토리에 쓸수 있는 권한이 있어야 
업로드가 가능하기 때문입니다. 
sudo chown kuma119 -R /var/www 
아래의 명령어를 사용하여 라즈베리파이가 
시작할 때 자동으로 아파치를 실행하도록 해줍니다. 
sudo update-rc.d apache2 defaults
11.1. Apache 설치 
아래의 명령어를 실행하여 새로 시작하여 테스트를 해줍니다. 
shutdown -r now 
라즈베리파이가 재시작된 후 /var/www 디렉토리에 아래와 같이 index.html 파일을 만들어 업로드 해줍니다. 
<html><body> 
hello, World 
</body></html> 
아파치는 기본적으로 포트는 80입니다. 
브라우저에서 보통 아이피를 입력해서 서버에 접속을 하게 되면 
기본적으로 80번 포트로 접속을 시도하게 되기 때문에 이렇게 아이피만 입력하면 접속됩니다.
11.2. MySQL 설치 
아래의 명령어를 사용하여 mysql을 설치합니다. 
sudo apt-get install mysql-server mysql-client libmysqlclient-dev 
설치할때 용량이 어느정도 필요한지 나오고 계속할 것인지 물어봅니다. 
이 때 y를 입력하고 엔터를 치시면 됩니다. 
* install 중간에 password를 입력하라고 나오는데 이때 입력하는 비밀번호는 
mysql의 비밀번호이기 때문에 혼동하지 않도록 합니다.
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
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
11.4. phpMyAdmin설치 
아래의 명령어를 사용하여 phpMyAdmin을 설치합니다. 
sudo apt-get install phpmyadmin 
설치할 때 용량이 어느 정도 필요한지 나오고 계속할 것인지 물어봅니다. 
이 때 y를 입력하고 엔터를 치시면 됩니다.
11.4. phpMyAdmin설치 
phpmyadmin 은 딱히 다른 툴로 mysql을 조작할 필요없이 웹서비스 상에서 
직접 mysql을 조작할 수 있도록 해주는 php 기반의 프로그램입니다. 
우리는 apache를 설치했기 때문에 apache2를 선택해 줍니다. 
설치 중에 phpmyadmin 접속시에 사용될 비밀번호를 정해주고 ok를 선택하여 
나가줍니다.
11.5. phpMyAdmin확인 
접속하여 제대로 설치가 되었는지 확인해봅니다. 
http://서버아이피/phpmyadmin 
Username에는 root를 입력하고 Password에는 앞서 설정한 비밀번호를 입력해줍니다.
11.6. phpMyAdmin사용-데이터베이스생성 
Database 탭을 선택하고 Create new database 에 test_study 라고 입력하고 
collation으로 utf8_general_ci 를 선택해줍니다. 
collation 이란 데이터베이스에서 사용할 언어셋을 지칭하는데 
한글도 사용하기 위해 utf8_general_ci 를 선택합니다.
11.7. phpMyAdmin사용-유저생성 
왼편을 보시면 test_study 데이터베이스가 추가된 것을 확인할 수 있습니다. 
새로 만든 데이터베이스인 test_study를 사용하기 위해서는 
사용할 사용자를 생성한 후 지정해 주어야 합니다. 
Privileges 탭을 선택하고 Add a new User를 클릭하여 유저생성을 할 수 있는 화면으로 이동합니다.
11.7. phpMyAdmin사용-유저생성 
User name은 임의로 지정을 해주시고 Host에는 Local을 선택해줍니다. 
Password에는 사용할 비밀번호를 입력해줍니다. 
Password는 지정하기 귀찮다면 Generate password로 패스워드를 자동으로 생성해 줄 수 있습니다. 
생성된 비밀번호는 따로 메모해 두어야 합니다. 
데이터베이스의 권한은 따로 공부를 해야 하기 때문에 유저명과 동일한 데이터베이스에 관해 
모든 권한을 주도록 하는 Create database with same name and grant all privileges 를 선택해줍니다. 
이 옵션을 선택해서 유저를 생성해 줄 경우 동일한 이름의 데이터베이스가 생성되기 때문에 
앞의 11.6.의 데이터베이스 생성은 무시하고 유저 생성만 해주셔도 됩니다.
11.7. phpMyAdmin사용-유저생성 
Global privileges 는 모든 데이터베이스에 관한 권한을 설정하는 것이므로 
아무것도 선택하지 말고 Create User버튼을 눌러 유저를 생성해 줍니다.
11.8. phpMyAdmin사용-테이블생성 
왼편의 test_study 데이터베이스를 선택해 줍니다.
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) 
);
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', '경북 포항시 남구 오천읍');
11.9. phpMyAdmin사용-테스트 
입력한 자료를 확인합니다. 
SELECT * FROM `test_nodejs`
11.9. phpMyAdmin사용-테스트 
입력된 자료를 수정해봅니다. 
우체국의 데이터를 변경해보겠습니다. 
우체국의 데이터는 idx가 2이므로 이것을 조건으로 하여 수정하겠습니다. 
UPDATE `test_nodejs` SET mem_name='음식점', mem_tel='031-5418-6548', mem_addr='경기 수원시 팔달구' where idx=2
11.9. phpMyAdmin사용-테스트 
입력한 자료를 확인합니다. 
우체국 데이터가 수정된 것을 알 수 있습니다. 
SELECT * FROM `test_nodejs`
11.9. phpMyAdmin사용-테스트 
데이터를 삭제해봅니다. 
방금 수정했던 idx가 2인 데이터를 삭제해보겠습니다. 
DELETE FROM `test_nodejs` where idx=2
11.9. phpMyAdmin사용-테스트 
입력한 자료를 확인합니다. 
idx가 2인 데이터가 삭제된 것을 알 수 있습니다. 
SELECT * FROM `test_nodejs`
12. 외부와의 통신 
12.1. 공유기 접속 
12.2. DMZ 설정 
12.3. 포트 포워딩 
12.4. 아파치 포트변경 
12.5. 테스트
12.1. 공유기접속 
공유기에 접속을 합니다. 
여기서 공유기는 iptime 공유기에 한해 설명하겠습니다. 
192.168.0.1 로 접속을 하면 공유기의 접속화면이 나옵니다. 
공유기가 연결된 컴퓨터가 외부로 통신을 하기 위해서는 
DMZ설정이나 포트 포워딩을 해주어야 합니다. 
여기서 문제시 되는 것이 있는데 인터넷 서비스를 제공하는 업체에서는 기본적인 웹서비스 포트인 
80번을 막아놓습니다. 
그렇기 때문에 우리는 80번 포트가 아닌 2080포트로 외부에서 접속하게 하도록 바꾸어 주어야 합니다.
12.2. DMZ 설정 
좌측의 메뉴탐색기에서 고급설정의 NAT/라우터 관리에 들어가서 
DMZ/Twin IP설정을 선택하여 들어갑니다. 
내부 IP주소에는 라즈베리파이의 ip주소를 적으면 됩니다. 
여기서 DMZ란 외부로 모든 포트를 개방한다는 의미인데 하나의 공유기에 
하나의 DMZ밖에 설정이 안되고 보안위험이 있으므로 정말 귀찮지 않은 이상에는 
포트 포워딩을 해주는 게 더 좋습니다.
12.3. 포트포워딩 
포트 포워딩은 외부에서 특정 포트로 요청한 응답을 네트워크 내의 정해진 컴퓨터의 포트로 
연결해준다는 뜻입니다. 
만약 공유기의 ip 주소가 253.122.323.123이라면 외부에서 접속을 하려면 주소창에 
http://253.122.323.123:2080라고 입력을 하게 될 것입니다. 
이 때 2080번 포트로 들어오려는 요청을 공유기가 받게 되고 공유기의 설정에 따라 
2080번 포트로 들어온 요청일 경우에는 공유기 내의 네트워크의 미리 정해진 컴퓨터의 
2080번 포트로 연결해줍니다. 
이 것을 포트 포워딩이라고 합니다. 
내부 IP주소에는 요청을 받았을 때 연결해줄 PC의 IP주소를 입력해줍니다. 
규칙이름은 임의로 rasberry로 적어줍니다. 
외부포트와 내부포트는 모두 2080으로 적어주고 추가 버튼을 눌러 등록해줍니다.
12.4. 아파치포트변경 
앞서 말한 바와 같이 아파치에서 다른 포트를 연결해주기 위해 설정파일을 변경해줍니다. 
우리는 기본 포트 80번이 아닌 2080번으로 연결을 해주도록 하겠습니다. 
아래와 같이 포트설정하는 환경파일을 열고 수정해줍니다. 
sudo nano /etc/apache2/ports.conf 
NameVirtulHost *:80 -> NameVirtulHost *:2080 
Listen 80 -> Listen 2080
12.4. 아파치포트변경 
아래와 같이 기본적인 가상호스트 설정파일을 열어 포트 부분을 수정해줍니다. 
여기서 DocumentRoot 부분은 웹으로 접속시에 기본적으로 보여주는 디렉토리인데 
/var/www 을 다른 디렉토리로 변경하셔도 됩니다. 
sudo nano /etc/apache2/sites-available/default 
<VirtualHost *:80> -> <VirtualHost *:2080>
12.5. 테스트 
설정을 한 후에는 아파치 서비스를 재시작 해주어야 합니다. 
sudo /etc/init.d/apache2 restart 
공유기의 ip는 공유기 접속화면에서 확인한 ip주소가 공유기의 ip주소가 됩니다. 
즉, 외부에서 접속할 때 주소창에 입력할 ip주소입니다. 
외부에서 통신이 되는지의 여부를 테스트하는 제일 좋은 방법은 핸드폰에서 와이파이를 연결하지 않고 
공유기의 ip주소로 연결해보면 됩니다. 
아래는 핸드폰으로 접속해본 화면입니다.
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과의 연동-소스 다운로드
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
13.1. nodejs-실행전설명 
테스트는 아래의 주소로 합니다. 
http://자신의아이피:52273/ 
포트는 app.js에서 임의로 변경할 수 있습니다. 
아래의 소스에서 52273번을 다른 포트로 변경하시면 됩니다. 
app.js에서 DB에 연결될 패스워드도 변경해주어야 합니다.
13.1. nodejs-실행전설명 
외부에서 접속하기 위해서는 app.js 에서 설정해 준 포트번호를 
공유기에서 포트 포워딩을 해주어야 합니다. 
12.3.을 참고하여 포트 포워딩을 설정해주시기 바랍니다.
13.1.1. nodejs-실행화면 
리스트 입력 
수정 
삭제는 삭제할 행의 DELETE 버튼을 누르면 됩니다.
13.1.2. nodejs-소스다운로드 
아래의 경로에서 다운받을 수 있습니다. 
http://www.groovytrains.com/download/nodejs.zip
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연결부분의 설정이므로 자신에 맞게 수정해줍니다.
13.2.1. php-실행화면 
리스트 입력 
수정 
삭제는 삭제할 행의 DELETE 버튼을 누르면 됩니다.
13.2.2. php-소스다운로드 
아래의 경로에서 다운받을 수 있습니다. 
http://www.groovytrains.com/download/php.zip
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 구문을 실행해주면 됩니다.
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 thensenses.','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에서 복사해서 사용하시기 바랍니다.
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
13.3. slim-실행전설명 
설정 후에 apache를 다시 시작해줍니다. 
sudo service apache2 restart 
rewrite 모듈은 각 디렉토리에 있는 .htaccess 파일을 통하여 주소를 변경해줄 수 있습니다. 
이 파일을 활용한다면 slim을 사용하지 않고도 rest 서비스가 가능합니다. 
slim의 .htaccess 파일의 위치는 cellar/api/.htaccess 입니다.
13.3. slim-실행전설명 
/var/www/cellar/api/index.php 의 파일을 수정해 줍니다. 
dbhost 는 127.0.0.1로 놓아두어도 됩니다. 
/var/www/cellar/js/main.js 를 수정해 줍니다. 
이 때 자신의 아이피는 외부에서 접속할 수 있는 아이피를 입력해 주어야 
외부에서도 접속이 가능합니다. 
포트는 apache 설정파일에서 정해준 포트번호인 2080입니다.
13.3.1. slim-실행화면
13.3.2. slim-소스다운로드 
원본은 아래의 경로에서 다운받을 수 있습니다. 
https://github.com/ccoenraets/wine-cellar-php/zipball/master 
아래의 경로에서도 다운받을 수 있습니다. 
http://www.groovytrains.com/download/slim.zip
13.4. angularjs-설명 
Angularjs는 MVC 기반의 프론트엔드 프레임워크입니다. 
쉽게 풀어 말하면 화면상의 보여지는 것의 흐름을 관리할 수 있는 프레임워크입니다. 
볼 수 있는 것은 프론트 엔드이고 볼 수 없는 것은 백 엔드라고 생각하시면 됩니다. 
데이터베이스에 접속하여 데이터를 가져와서 정제하는 역할을 하는 것은 백 엔드이고 
그 정제된 데이터를 한번 더 보기 좋게 정렬하거나 변경하여 보여주는 역할을 하는 것이 프론트 엔드입니다. 
데이터를 입력하거나 변경하는 명령을 프론트 엔드에서 받아 백 엔드쪽으로 넘겨주면 
백 엔드에서는 적당한 처리를 한 후에 프론트 엔드로 응답을 해주고 프론트 엔드는 
화면으로 해당 응답을 보여주는 방식입니다.
13.4.1. angularjs-slim과의연동-설정 
/var/www/angular-cellar-master/api/index.php 의 파일을 수정해 줍니다. 
dbhost 는 127.0.0.1로 놓아두어도 됩니다.
13.4.1. angularjs-slim과의연동-설정
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
14. 마무리 
14.1. 싱글보드 컴퓨터 스펙 및 가격비교 
14.2. 다른 활용법들
14.1. 싱글보드컴퓨터스펙및가격비교 
2014년 3월 10일 기준으로 본 가격입니다. 
마스보드 A10 : 71,280원 마스보드 A20 : 84,000원 큐비보드 : 86,900원 
큐비보드2: 110,000원 비글본블랙 : 77,510원 라즈베리파이 : 53,350원 
이 외에도 많은 싱글보드 컴퓨터가 있지만 일반 적인 것만 비교해 보았습니다. 
싱글보드 컴퓨터의 스펙 한계가 있기 때문에 아직은 라즈베리파이가 가장 싸면서도 
효율적인 것을 알 수 있습니다.
14.2. 다른활용법들 
싱글보드 컴퓨터는 사용 전력이 극히 낮아서 24시간 동작해야하는 웹서버나 SVN같은 
저장소 용도로 사용할 수 있을 뿐 아니라 각종 전자 센서과 통신을 이용하여 스마트폰으로 
홈 오토메이션까지 구축하는 것이 가능합니다. 
간단히 LED를 켜고 끌 수 있습니다. 
LED제어 
초음파 센서로써 앞에 있는 물체의 거리를 감지하는 것이 가능합니다. 
응용하면 애완동물과 하루 종일 놀아주는 로봇을 만드는 것이 가능합니다. 
초음파 센서 활용 
모터도 간단히 제어가 가능하기 때문에 무선으로 잡아주고 스마트폰으로 제어가 가능합니다. 
모터제어 
라즈베리파이에 연동시켜 좀 더 로봇을 쉽게 만들 수 있도록 해주는 모듈도 있습니다. 
로봇 활용 
아래와 같이 클러스터링을 이용하여 슈퍼 컴퓨터를 제작하는 것도 가능합니다. 
슈퍼 컴퓨터 동영상 
라즈베리파이로 영상을 받을 수가 있기 때문에 감시카메라 혹은 아기 돌보기 용으로도 가능합니다. 
카메라활용 
터치스크린도 있기 때문에 모니터도 필요가 없습니다. 말 그대로 초소형 컴퓨터가 되는 것이지요. 
TFT 터치스크린 
라즈베리파이보다 하위단계인 아두이노로 만들어본 탱크입니다. 
라즈베리파이로 구현한다면 외부에서 wifi를 통하여 움직일 수 있습니다. 
동영상링크
15. 무선랜 
15.1. wifi 동글 
15.2. 설정
15.1. wifi동글 
Wifi 동글은 아래의 링크를 통해서 구매했습니다. 
아트로봇 
Wifi 동글을 USB포트에 연결해줍니다.
15.2. 설정 
아래의 명령어를 실행하여 라즈베리파이의 네트워크를 확인합니다. 
ifconfig 
위의 스크린샷에서 보면 eth0은 유선이고 wlan0은 무선입니다. 
그 중 wlan0의 Hwaddr이 연결한 wifi 동글의 mac address 입니다. 
공유기에서 mac 인증을 통하여 무선 연결을 허용할 경우 이 mac address를 등록해주어야 합니다.
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는 암호화방식입니다.

Más contenido relacionado

La actualidad más candente

How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.은석 김은석
 
라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째Yongho HWANG
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?Opennaru, inc.
 
[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법NAVER D2
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 AnsibleOpennaru, inc.
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration GuideJi-Woong Choi
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육Ji-Woong Choi
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용NAVER D2
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting EssentialOpennaru, inc.
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안Ji-Woong Choi
 
Impala 퍼포먼스 개선을 위한 Research
Impala 퍼포먼스 개선을 위한 ResearchImpala 퍼포먼스 개선을 위한 Research
Impala 퍼포먼스 개선을 위한 ResearchKichul Jung
 
Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선기동 이
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6Ji-Woong Choi
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기GunHee Lee
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본Dong Hwa Jeong
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3Ji-Woong Choi
 
PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기Yo-Chang Song
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구ajj007
 

La actualidad más candente (20)

How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.
 
라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 
[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
 
Impala 퍼포먼스 개선을 위한 Research
Impala 퍼포먼스 개선을 위한 ResearchImpala 퍼포먼스 개선을 위한 Research
Impala 퍼포먼스 개선을 위한 Research
 
Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
 
03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구
 

Destacado

MQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.jsMQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.jsPaul Tanner
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MBenjamin Cabé
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsJeff Prestes
 
[16.01.05] node.js & mqtt
[16.01.05] node.js & mqtt[16.01.05] node.js & mqtt
[16.01.05] node.js & mqttNa-yeon Park
 
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.Nat Weerawan
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
Building the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiBuilding the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiNeil Broers
 
An introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDAn introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDBoris Adryan
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1stPark Jonggun
 
Raspberry pi - Node js - Drupal
Raspberry pi - Node js - DrupalRaspberry pi - Node js - Drupal
Raspberry pi - Node js - DrupalMark Corben
 

Destacado (11)

MQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.jsMQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.js
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2M
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.js
 
[16.01.05] node.js & mqtt
[16.01.05] node.js & mqtt[16.01.05] node.js & mqtt
[16.01.05] node.js & mqtt
 
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
 
Raspbeery PI IoT
Raspbeery PI IoTRaspbeery PI IoT
Raspbeery PI IoT
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
Building the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiBuilding the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry Pi
 
An introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDAn introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-RED
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st
 
Raspberry pi - Node js - Drupal
Raspberry pi - Node js - DrupalRaspberry pi - Node js - Drupal
Raspberry pi - Node js - Drupal
 

Similar a Rasberry nodejs install_final

Raspberry pi
Raspberry piRaspberry pi
Raspberry piDooNa Lee
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment SettingKwangyoun Jung
 
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치Aiden Seonghak Hong
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정봉조 김
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Dongil Yeom
 
[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdf[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdfLee Dahae
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호ETRIBE_STG
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)I Goo Lee
 
망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324종인 전
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제Tae Young Lee
 
실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기Mickey SJ Lee
 
한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼ChoDae
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치Lee Seungeun
 

Similar a Rasberry nodejs install_final (20)

Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
 
[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdf[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdf
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
 
망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기
 
한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 
Raspberry Pi Basic Usage
Raspberry Pi Basic UsageRaspberry Pi Basic Usage
Raspberry Pi Basic Usage
 

Rasberry nodejs install_final

  • 2. 1. 웹서버로 활용하기 위한 구성품 1.1. 구성도 1.2. 사양 1.3. 연결도 1.4. 관련 사이트
  • 6. 1.4. 관련사이트 공식홈페이지 판매처 아이씨뱅큐 판매처 엘레파츠 네이버까페 오로카 네이버까페 라즈베리파이 커뮤니티 산딸기마을 메이크코리아
  • 7. 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. 정리
  • 8. 2.1. SD카드 라즈베리파이와 함께 구입하면 가격이 비싸기 때문에 따로 구입하기를 바랍니다. 라즈베리파이에서 사용되는 OS인 라즈비안은 최소2GB, 권장 4GB이므로 용량과 가격을 생각했을때 16GB가 적당합니다. 8GB : 11,000원 ~ 13,000원 16GB : 13,000원 ~ 15,000원 32GB : 15,000원 ~ 20,000원 * 위의 시세를 형성하고 있으니 괜히 눈탱이 맞지 않도록 조심합시다. 진지한 궁서체입니다.
  • 9. 2.1.1. 물리적크기에따른표기 SD, miniSD, microSD 가 있는데 크기비교는 아래와 같습니다. SD > miniSD > microSD
  • 10. 2.1.2. 용량에따른표기 보통 SD카드라고 부르는 것에는 SD, SDHC, SDXC 등이 있습니다. ① SD: 2GB까지 ② SDHC: 4GB에서 32GB까지 ③ SDXC: 64GB부터 편하게 용량에 따라서 이렇게 구분되기는 하지만 편하게 SD카드라고 부르면 됩니다.
  • 11. 2.1.3. 속도에따른표기 속도 표기 규격 중에 class와 UHS 등이 있는데 이것은 SD카드의 속도를 결정하는 단위입니다. 용량만 보고 사는 경우가 많은데 속도에 따라 가격이 틀려지므로 괜히 뒤통수 맞지 않기를 바랍니다. class는 최저 보장 속도(MB/초)를 적는 것이고 UHS는 데이터의 이론적인 최대 전송 속도를 적습니다. UHS-I 규격은 50MB/초(4비트 전송 기준), UHS-II는 이론적으로는 312MB/초까지 속도를 낼 수 있습니다. 물론 이론에 따른 것이라 속도가 딱딱 맞아떨어지지는 않습니다. 그 이상의 속도가 필요한 분야라면 카메라나 캠코더 정도이니까 논외로 하겠습니다. 무난하게 사용하시려면 10class와 UHS-I가 동시에 표기된 것이라면 오케이라고 아시면 되겠습니다.
  • 12. 2.1.4. 호환여부 아래의 링크에서 메모리의 호환여부를 판단하고 구입하여야 합니다. 메모리호환여부
  • 13. 2.2. 비디오연결 최초 OS설치를 하기 위해 라즈베리파이와 모니터를 연결해야 하기 때문에 RCA나 HDMI로 모니터와 연결을 해야 하는데 쉽게 사용할 수 있는 HDMI로 연결합니다. 아래의 두가지 방식 중 사용할 수 있는 것을 선택해서 구매하도록 하면 되겠습니다. HDMI -> DVI HDMI -> HDMI
  • 14. 2.3. 입력연결 마우스는 딱히 필요하지 않기 때문에 제외하겠습니다. 키보드는 무선을 사용할 수도 있지만 설치한 후에는 원격으로 접속해서 사용할 것이기 때문에 집에 있는 usb 키보드 가져다가 연결하시면 됩니다.
  • 15. 2.4. 전원연결 라즈베리파이에는 micro USB로 전원을 넣어주어야 합니다. micro USB는 요즘 사용하는 스마트폰의 충전잭이라고 생각하시면 됩니다. 편하게 전원연결을 하기 위해서 전원코드가 달린 것이 아닌 USB <-> micro USB를 사용하시면 됩니다. 이렇게 사용하면 컴퓨터 전원이 꺼져있는 상태에서도 전원을 가져와서 쓰기 때문에 편리합니다.
  • 16. 2.5. 인터넷연결 와이파이 동글을 사용하여 무선 인터넷을 연결하는 방법도 있으나 여기서는 그냥 랜선 연결을 하겠습니다.
  • 17. 3. 운영체제 라즈비안 설치방법 3.1. 라즈비안wheezy 다운로드 3.2. win32diskimager 다운로드 3.3. SD카드에 쓰기 3.4. 부팅 전 케이블 연결 3.5. 부팅
  • 18. 3.1. 라즈비안wheezy 다운로드 라즈베리 공식 홈페이지에서 라즈비안을 다운받습니다. http://www.raspberrypi.org/downloads
  • 19. 3.2. win32diskimager 다운로드 win32diskimager 를 다운받습니다. http://sourceforge.net/projects/win32diskimager/
  • 20. 3.3. SD카드에쓰기 win32diskimager 를 실행해서 SD카드에 다운받은 라즈비안을 담습니다. 라즈비안 img 파일을 선택해주고 현재 SD카드가 연결되어 있는 드라이브를 확인해준 후에 write 버튼을 눌러 SD카드에 라즈비안 운영체제를 넣어줍니다. 소요시간은 5분 내외입니다. 원래 용량이 얼마였건간에 56MB로 줄어듭니다. 이 것은 나중에 설정으로 변경이 가능하니 신경을 안 써도 됩니다.
  • 21. 3.4. 부팅전케이블연결 라즈베리파이 합체!!! ① 라즈베리파이 - HDMI케이블 - 모니터 ② 라즈베리파이 - 키보드 ③ 라즈베리파이 - 랜선 - 공유기나 모뎀 ④ 라즈베리파이 - SD카드 ⑤ 라즈베리파이 - micro USB - 컴퓨터 USB포트
  • 22. 3.5. 부팅 SD카드를 연결한 후 micro USB를 연결하여 전원을 넣어주면 켜지면서 자동으로 설치가 되기 시작합니다.
  • 23. 4. 환경설정 ①Expand Filesystem ②Change User Password ③Enable Boot to Desktop/Scratch ④InternationalisationOptions ⑤Enable Camera ⑥Add to Rastrack ⑦Overclock ⑧Advanced Options ⑨About raspi-config
  • 25. 4. 환경설정(①) ① Expand Filesystem 가장 중요한 설정입니다. 라즈비안을 SD카드에 담을때 자동으로 용량이 작게 설정이 됩니다. 라즈비안을 설치한 후에는 반드시 이 항목을 선택해줌으로써 나머지 공간도 사용할 수 있도록 해주어야 합니다.
  • 26. 4. 환경설정(②) ② Change User Password 라즈비안은 리눅스 운영체제인데 기본으로 최고관리자계정인 root와 일반 계정인 pi가 존재합니다. 그 중 pi의 초기 암호는 raspberry 이므로 꼭 수정해주어야 합니다.
  • 27. 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 desktop pi 계정으로 로그인되면서 GUI환경으로 접속하게 됩니다. * Scratch Start the Scratch programming environment upon boot scratch라는 programming 환경으로 부팅하는 항목인데 무시하셔도 됩니다.
  • 28. 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를 눌러주시면 됩니다.
  • 29. 4. 환경설정(④) * Change Timezon - Set up timezone to match your location Asia를 선택하고 tab키를 눌러 이동하여 ok를 눌러줍니다. Seoul을 선택하고 tab키를 눌러 이동하여 ok를 눌러줍니다. * Change Keyboard Layout - Set the keyboard layout to match your keyboard 특별한 키보드가 아니라면 딱히 설정해줄 필요는 없습니다.
  • 30. 4. 환경설정(⑤~⑥) ⑤ Enable Camera 카메라를 사용할 것인지 정하는 옵션인데 카메라를 사용하지 않기 때문에 무시하셔도 됩니다. ⑥ Add to Rastrack 닉네임과 이메일을 입력하면 라즈베리파이의 분포도에 자신의 라즈베리파이가 포함이 됩니다. 아래의 사이트에서 등록된 라즈베리파이의 분포도를 볼 수 있습니다. 무시하셔도 되는 옵션입니다.
  • 31. 4. 환경설정(⑦~⑧) ⑦ Overclock 오버클럭을 하는 옵션인데 큰 성능향상은 없기 때문에 무시하셔도 됩니다. ⑧ Advanced Options A1 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 GPU GPU에 할당하는 메모리를 16/32/64/128/256mb 단위로 정해주는 것인데 원격으로 CUI 기반으로 작업할 것이기 때문에 16으로 정해줍니다.
  • 32. 4. 환경설정(⑧~⑨) A4 SSH - Enable/Disable remote command line access to your Pi using SSH SSH를 사용할 것인지 묻는 여부인데 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를 선택하여 재부팅을 합니다.
  • 33. 5. 로그인 5.1. root 계정 활성화 5.2. 계정설정
  • 34. 5.1. root 계정활성화 초기 설정을 마치면 재부팅을 합니다. 재부팅이 되면 로그인 아이디와 패스워드를 묻는데 당황하지 마시고 계정을 적는 란에는 pi를 입력하시고 Password 에는 초기설정에서 입력하신 패스워드를 입력해줍니다. 패스워드를 수정하지 않았다면 raspberrypi 를 입력합니다. * 잘 보시면 kkom login 이라고 적혀있는데 앞서 초기설정에서 hostname에 적은 명칭하고 동일한 것을 알 수 있습니다. 라즈비안을 설치하면 root라는 최고관리자 아이디와 pi라는 일반 아이디가 생깁니다. 설치 후 root는 활성화되지 않으므로 아래와 같이 패스워드를 설정함으로써 활성화시켜줍니다. sudo passwd root
  • 35. 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/kuma119 sudo cp /home/pi/.bashrc /home/kuma119 sudo cp /home/pi/.bash_logout /home/kuma119
  • 36. 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를 눌러서 나옵니다.
  • 37. 5.2. 계정설정 아래의 명령어를 입력하여 pi계정을 로그아웃합니다. logout 새로운 계정으로 로그인한 후 아래의 명령어로 기존의 pi 계정을 삭제해줍니다. sudo deluser pi 아래의 명령어를 입력하여 홈디렉토리를 삭제해줍니다. rm -rf /home/pi
  • 39. 6. xwindow맛보기 아래의 명령어를 입력하면 라즈비안의 GUI인 xwindow로 들어갈 수 있습니다. startx 상당히 버벅대므로 안 하는게 좋습니다.
  • 40. 7. 라즈비안 업데이트 및 업그레이드 7.1. 프로그램 및 라이브러리 다운로드 7.2. 다운로드한 프로그램 및 라이브러리 설치
  • 42. 7.2. 다운로드한프로그램및라이브러리설치 sudo apt-get upgrade 설치하면 용량이 필요하다고 하는데 우리는 여유가 많으니까 쿨하게 y를 입력하여 진행해줍니다.
  • 43. 8. 터미널 접속(putty) 8.1. SSH 설정 8.2. putty 다운로드 8.3. 터미널 접속 8.4. 터미널 명령어
  • 44. 8.1. SSH 설정 라즈비안 설치 후 나오는 초기 설정화면에서 ssh항목을 사용한다고 설정을 하였다면 추가로 설정할 것은 없습니다. 만약 설정을 하지 않았다면 아래의 명령어를 사용해 환경설정화면으로 진입하여 SSH를 사용한다고 설정을 해주셔야 합니다. sudo raspi-config
  • 45. 8.2. putty 다운로드 아래의 주소로 접속하여 다운로드 받습니다. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  • 46. 8.3. 터미널접속 아래의 명령어로 라즈베리파이의 ip를 알아내어 따로 적어둡니다. ifconfig
  • 47. 8.3. 터미널접속 알아낸 ip주소를 Host Name에 적고 SSH를 선택한 후 Open을 눌러서 접속합니다.
  • 48. 8.4. 터미널명령어 / 디렉토리 표시 . 현재 디렉토리 .. 상위 디렉토리 cd 디렉토리 이동 ls 디렉토리 내용 출력 mkdir 디렉토리 생성 rmdir 디렉토리 삭제 pwd 현재 작업 디렉토리 절대 주소 출력 cp 파일 복사 (디렉토리 포함은 '-r') mv 파일 이동 rm 파일 삭제 (디렉토리 포함은 '-r')(강제 삭제는 -f) cat 파일 내용 출력 more 파일 내용 페이지 단위로 출력 less 파일 내용 페이지 단위로 출력
  • 49. 8.4. 터미널명령어 켜는 법은 전원 연결을 하면 됩니다. 전원선이 연결되어 있을 경우는 뺐다가 다시 연결하면 됩니다. 전원을 끄려면 아래의 명령어 중 하나를 쓰시면 됩니다. sudo shutdown -h now sudo halt 재부팅을 하시고 싶으시면 아래의 명령어 중 하나를 쓰시면 됩니다. sudo shutdown -r now sudo reboot
  • 50. 9. ftp 접속(filezilla) 9.1. 다운로드 9.2. 연결방법 9.3. 편의성
  • 51. 9.1. 다운로드 아래의 링크에서 파일질라를 다운로드 받습니다. https://filezilla-project.org/
  • 52. 9.2. 연결방법 설치 후에 사이트관리자를 열어서 설정해줍니다. 호스트에는 아이피를 입력해줍니다. 공유기가 설치되어 있다면 포트포워딩이나 DMZ설정 후에 공유기 ip를 입력해주시면 됩니다. (포트포워딩과 DMZ는 나중에 설명하겠습니다.) 프로토콜은 SFTP로 선택해주고 로그온 유형은 일반으로 선택해줍니다.
  • 53. 9.3. 편의성 접속시 기본으로 연결되는 디렉토리를 설정할 수 있고 연결된 컴퓨터의 디렉토리와 자동으로 위치 동기화를 시킬 수가 있습니다. 고급탭을 선택해주고 기본 로컬 디렉토리를 자신의 디렉토리로 설정해줍니다. 기본 리모트 디렉토리에 서버의 디렉토리를 적어줍니다. 아파치 설치 후에 /var/www 를 적어주시면 기본적으로 웹에서 접속될 디렉토리로 설정이 됩니다. 그리고 탐색 동기화 기능 사용을 체크해줍니다.
  • 54. 10. nodejs 설치 10.1. 다운로드 10.1.1. wget 10.1.2. FTP 10.2. 압축풀기 10.3. 설치할 디렉토리 이동 10.4. 빌드환경설정 10.5. 빌드 10.6. 설치 10.7. 테스트
  • 55. 10.1. 다운로드 다운받는 방법에는 라즈베리파이에서 바로 다운받을수 있는 방법과 다운받아서 FTP로 업로드하는 방법이 있습니다. wget으로 바로 다운받는 방법은 버전마다 주소가 변경이 되고 속도를 비교해서도 느리기 때문에 FTP로 업로드하는 방식을 하시는 것을 권장합니다.
  • 56. 10.1.1. wget 다운받아서 저장될 디렉토리로 이동합니다. cd /home/kuma119 아래의 url은 버전이 바뀔때마다 변경되므로 다운받아서 ftp로 올리는 방법을 추천합니다. sudo wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
  • 57. 10.1.2. FTP 아래의 링크로 들어가서 source code를 다운로드 받습니다. http://nodejs.org/download/
  • 58. 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
  • 59. 10.3. 설치할디렉토리이동 nodejs의 압축을 푼 디렉토리로 이동합니다. 여기서 압축을 푸는 것은 어떤 디렉토리에 해도 딱히 상관은 없습니다. cd /home/node-v0.10.26.tar.gz 혹시 압축을 푼 후에 어디에 풀렸는지 모를 경우 아래의 명령어로 어디에 압축이 풀렸는지 확인할 수가 있습니다. find / -name node.js -type f
  • 60. 10.4. 빌드환경설정 리눅스에서는 바이너리코드를 설치하기 위해서 빌드환경설정을 하게 됩니다. 아래의 명령어를 입력하면 자동으로 설정을 합니다. sudo ./configure
  • 61. 10.5. 빌드 아래의 명령어를 입력하여 설치할 수 있는 상태로 만들어줍니다. sudo make * 소요시간 : 최소 3시간 이상 엄청 걸리므로 책 한 권 읽으시기 바랍니다.
  • 62. 10.6. 설치 아래의 명령어를 입력하여 설치를 합니다. sudo make install
  • 63. 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 Worldn"); }); server.listen(8000); console.log("Server running at http://127.0.0.1:8000/"); 포트는 기본적으로 설정된 8000입니다. 실행은 아래의 명령어로 하시면 됩니다. sudo node /var/www/test.js
  • 64. 10.8. 업데이트 아래의 명령어를 차례로 입력하면서 업데이트 해줍니다. mysql 을 사용하기 위해 설치하는 업데이트입니다. sudo npm install mysql ejs는 nodejs에서 사용되는 템플릿 모듈입니다. sudo npm install ejs express는 각 요청을 처리해줄 수 있는 서버를 구성해주는 프레임워크입니다. sudo npm install express
  • 65. 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 확인-테스트
  • 66. 11.1. Apache 설치 아래의 명령어를 사용하여 아파치를 설치합니다. sudo apt-get install apache2 * 만약 설치하려고 할 때 아래와 같은 메시지가 나온다면 다음의 명령어를 실행해주고 다시 설치하면 됩니다. 설치하는 도중에 설치하면 용량이 얼마나 차지하는지 알려주고 설치할지 말지 여부를 물어보는데 쿨하게 y를 누르고 엔터를 쳐서 계속 설치해줍니다.
  • 67. 11.1. Apache 설치 설치 후에 아래의 명령어를 실행하면 새로운 디렉토리가 생긴 것을 알 수 있습니다. ls –al /var/ /var/www/ 라는 디렉토리인데 이 디렉토리는 아파치 웹서버가 실행될 때 기본적으로 보여주는 디렉토리입니다. 예를 들어 브라우저에 http://라즈베리파이의아이피주소/ 로 접속했을 때 보여주는 디렉토리입니다.
  • 68. 11.1. Apache 설치 이때 /var/www/ 디렉토리의 소유권은 root로 되어 있으므로 아래의 명령어를 사용하여 소유권 변경을 합니다. 여기서 kuma119는 새로 만든 계정입니다. 이렇게 소유권을 변경하는 이유는 FTP로 파일을 올릴 때 해당 디렉토리에 쓸수 있는 권한이 있어야 업로드가 가능하기 때문입니다. sudo chown kuma119 -R /var/www 아래의 명령어를 사용하여 라즈베리파이가 시작할 때 자동으로 아파치를 실행하도록 해줍니다. sudo update-rc.d apache2 defaults
  • 69. 11.1. Apache 설치 아래의 명령어를 실행하여 새로 시작하여 테스트를 해줍니다. shutdown -r now 라즈베리파이가 재시작된 후 /var/www 디렉토리에 아래와 같이 index.html 파일을 만들어 업로드 해줍니다. <html><body> hello, World </body></html> 아파치는 기본적으로 포트는 80입니다. 브라우저에서 보통 아이피를 입력해서 서버에 접속을 하게 되면 기본적으로 80번 포트로 접속을 시도하게 되기 때문에 이렇게 아이피만 입력하면 접속됩니다.
  • 70. 11.2. MySQL 설치 아래의 명령어를 사용하여 mysql을 설치합니다. sudo apt-get install mysql-server mysql-client libmysqlclient-dev 설치할때 용량이 어느정도 필요한지 나오고 계속할 것인지 물어봅니다. 이 때 y를 입력하고 엔터를 치시면 됩니다. * install 중간에 password를 입력하라고 나오는데 이때 입력하는 비밀번호는 mysql의 비밀번호이기 때문에 혼동하지 않도록 합니다.
  • 71. 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
  • 72. 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
  • 73. 11.4. phpMyAdmin설치 아래의 명령어를 사용하여 phpMyAdmin을 설치합니다. sudo apt-get install phpmyadmin 설치할 때 용량이 어느 정도 필요한지 나오고 계속할 것인지 물어봅니다. 이 때 y를 입력하고 엔터를 치시면 됩니다.
  • 74. 11.4. phpMyAdmin설치 phpmyadmin 은 딱히 다른 툴로 mysql을 조작할 필요없이 웹서비스 상에서 직접 mysql을 조작할 수 있도록 해주는 php 기반의 프로그램입니다. 우리는 apache를 설치했기 때문에 apache2를 선택해 줍니다. 설치 중에 phpmyadmin 접속시에 사용될 비밀번호를 정해주고 ok를 선택하여 나가줍니다.
  • 75. 11.5. phpMyAdmin확인 접속하여 제대로 설치가 되었는지 확인해봅니다. http://서버아이피/phpmyadmin Username에는 root를 입력하고 Password에는 앞서 설정한 비밀번호를 입력해줍니다.
  • 76. 11.6. phpMyAdmin사용-데이터베이스생성 Database 탭을 선택하고 Create new database 에 test_study 라고 입력하고 collation으로 utf8_general_ci 를 선택해줍니다. collation 이란 데이터베이스에서 사용할 언어셋을 지칭하는데 한글도 사용하기 위해 utf8_general_ci 를 선택합니다.
  • 77. 11.7. phpMyAdmin사용-유저생성 왼편을 보시면 test_study 데이터베이스가 추가된 것을 확인할 수 있습니다. 새로 만든 데이터베이스인 test_study를 사용하기 위해서는 사용할 사용자를 생성한 후 지정해 주어야 합니다. Privileges 탭을 선택하고 Add a new User를 클릭하여 유저생성을 할 수 있는 화면으로 이동합니다.
  • 78. 11.7. phpMyAdmin사용-유저생성 User name은 임의로 지정을 해주시고 Host에는 Local을 선택해줍니다. Password에는 사용할 비밀번호를 입력해줍니다. Password는 지정하기 귀찮다면 Generate password로 패스워드를 자동으로 생성해 줄 수 있습니다. 생성된 비밀번호는 따로 메모해 두어야 합니다. 데이터베이스의 권한은 따로 공부를 해야 하기 때문에 유저명과 동일한 데이터베이스에 관해 모든 권한을 주도록 하는 Create database with same name and grant all privileges 를 선택해줍니다. 이 옵션을 선택해서 유저를 생성해 줄 경우 동일한 이름의 데이터베이스가 생성되기 때문에 앞의 11.6.의 데이터베이스 생성은 무시하고 유저 생성만 해주셔도 됩니다.
  • 79. 11.7. phpMyAdmin사용-유저생성 Global privileges 는 모든 데이터베이스에 관한 권한을 설정하는 것이므로 아무것도 선택하지 말고 Create User버튼을 눌러 유저를 생성해 줍니다.
  • 80. 11.8. phpMyAdmin사용-테이블생성 왼편의 test_study 데이터베이스를 선택해 줍니다.
  • 81. 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) );
  • 82. 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', '경북 포항시 남구 오천읍');
  • 83. 11.9. phpMyAdmin사용-테스트 입력한 자료를 확인합니다. SELECT * FROM `test_nodejs`
  • 84. 11.9. phpMyAdmin사용-테스트 입력된 자료를 수정해봅니다. 우체국의 데이터를 변경해보겠습니다. 우체국의 데이터는 idx가 2이므로 이것을 조건으로 하여 수정하겠습니다. UPDATE `test_nodejs` SET mem_name='음식점', mem_tel='031-5418-6548', mem_addr='경기 수원시 팔달구' where idx=2
  • 85. 11.9. phpMyAdmin사용-테스트 입력한 자료를 확인합니다. 우체국 데이터가 수정된 것을 알 수 있습니다. SELECT * FROM `test_nodejs`
  • 86. 11.9. phpMyAdmin사용-테스트 데이터를 삭제해봅니다. 방금 수정했던 idx가 2인 데이터를 삭제해보겠습니다. DELETE FROM `test_nodejs` where idx=2
  • 87. 11.9. phpMyAdmin사용-테스트 입력한 자료를 확인합니다. idx가 2인 데이터가 삭제된 것을 알 수 있습니다. SELECT * FROM `test_nodejs`
  • 88. 12. 외부와의 통신 12.1. 공유기 접속 12.2. DMZ 설정 12.3. 포트 포워딩 12.4. 아파치 포트변경 12.5. 테스트
  • 89. 12.1. 공유기접속 공유기에 접속을 합니다. 여기서 공유기는 iptime 공유기에 한해 설명하겠습니다. 192.168.0.1 로 접속을 하면 공유기의 접속화면이 나옵니다. 공유기가 연결된 컴퓨터가 외부로 통신을 하기 위해서는 DMZ설정이나 포트 포워딩을 해주어야 합니다. 여기서 문제시 되는 것이 있는데 인터넷 서비스를 제공하는 업체에서는 기본적인 웹서비스 포트인 80번을 막아놓습니다. 그렇기 때문에 우리는 80번 포트가 아닌 2080포트로 외부에서 접속하게 하도록 바꾸어 주어야 합니다.
  • 90. 12.2. DMZ 설정 좌측의 메뉴탐색기에서 고급설정의 NAT/라우터 관리에 들어가서 DMZ/Twin IP설정을 선택하여 들어갑니다. 내부 IP주소에는 라즈베리파이의 ip주소를 적으면 됩니다. 여기서 DMZ란 외부로 모든 포트를 개방한다는 의미인데 하나의 공유기에 하나의 DMZ밖에 설정이 안되고 보안위험이 있으므로 정말 귀찮지 않은 이상에는 포트 포워딩을 해주는 게 더 좋습니다.
  • 91. 12.3. 포트포워딩 포트 포워딩은 외부에서 특정 포트로 요청한 응답을 네트워크 내의 정해진 컴퓨터의 포트로 연결해준다는 뜻입니다. 만약 공유기의 ip 주소가 253.122.323.123이라면 외부에서 접속을 하려면 주소창에 http://253.122.323.123:2080라고 입력을 하게 될 것입니다. 이 때 2080번 포트로 들어오려는 요청을 공유기가 받게 되고 공유기의 설정에 따라 2080번 포트로 들어온 요청일 경우에는 공유기 내의 네트워크의 미리 정해진 컴퓨터의 2080번 포트로 연결해줍니다. 이 것을 포트 포워딩이라고 합니다. 내부 IP주소에는 요청을 받았을 때 연결해줄 PC의 IP주소를 입력해줍니다. 규칙이름은 임의로 rasberry로 적어줍니다. 외부포트와 내부포트는 모두 2080으로 적어주고 추가 버튼을 눌러 등록해줍니다.
  • 92. 12.4. 아파치포트변경 앞서 말한 바와 같이 아파치에서 다른 포트를 연결해주기 위해 설정파일을 변경해줍니다. 우리는 기본 포트 80번이 아닌 2080번으로 연결을 해주도록 하겠습니다. 아래와 같이 포트설정하는 환경파일을 열고 수정해줍니다. sudo nano /etc/apache2/ports.conf NameVirtulHost *:80 -> NameVirtulHost *:2080 Listen 80 -> Listen 2080
  • 93. 12.4. 아파치포트변경 아래와 같이 기본적인 가상호스트 설정파일을 열어 포트 부분을 수정해줍니다. 여기서 DocumentRoot 부분은 웹으로 접속시에 기본적으로 보여주는 디렉토리인데 /var/www 을 다른 디렉토리로 변경하셔도 됩니다. sudo nano /etc/apache2/sites-available/default <VirtualHost *:80> -> <VirtualHost *:2080>
  • 94. 12.5. 테스트 설정을 한 후에는 아파치 서비스를 재시작 해주어야 합니다. sudo /etc/init.d/apache2 restart 공유기의 ip는 공유기 접속화면에서 확인한 ip주소가 공유기의 ip주소가 됩니다. 즉, 외부에서 접속할 때 주소창에 입력할 ip주소입니다. 외부에서 통신이 되는지의 여부를 테스트하는 제일 좋은 방법은 핸드폰에서 와이파이를 연결하지 않고 공유기의 ip주소로 연결해보면 됩니다. 아래는 핸드폰으로 접속해본 화면입니다.
  • 95. 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과의 연동-소스 다운로드
  • 96. 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
  • 97. 13.1. nodejs-실행전설명 테스트는 아래의 주소로 합니다. http://자신의아이피:52273/ 포트는 app.js에서 임의로 변경할 수 있습니다. 아래의 소스에서 52273번을 다른 포트로 변경하시면 됩니다. app.js에서 DB에 연결될 패스워드도 변경해주어야 합니다.
  • 98. 13.1. nodejs-실행전설명 외부에서 접속하기 위해서는 app.js 에서 설정해 준 포트번호를 공유기에서 포트 포워딩을 해주어야 합니다. 12.3.을 참고하여 포트 포워딩을 설정해주시기 바랍니다.
  • 99. 13.1.1. nodejs-실행화면 리스트 입력 수정 삭제는 삭제할 행의 DELETE 버튼을 누르면 됩니다.
  • 100. 13.1.2. nodejs-소스다운로드 아래의 경로에서 다운받을 수 있습니다. http://www.groovytrains.com/download/nodejs.zip
  • 101. 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연결부분의 설정이므로 자신에 맞게 수정해줍니다.
  • 102. 13.2.1. php-실행화면 리스트 입력 수정 삭제는 삭제할 행의 DELETE 버튼을 누르면 됩니다.
  • 103. 13.2.2. php-소스다운로드 아래의 경로에서 다운받을 수 있습니다. http://www.groovytrains.com/download/php.zip
  • 104. 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 구문을 실행해주면 됩니다.
  • 105. 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 thensenses.','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에서 복사해서 사용하시기 바랍니다.
  • 106. 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
  • 107. 13.3. slim-실행전설명 설정 후에 apache를 다시 시작해줍니다. sudo service apache2 restart rewrite 모듈은 각 디렉토리에 있는 .htaccess 파일을 통하여 주소를 변경해줄 수 있습니다. 이 파일을 활용한다면 slim을 사용하지 않고도 rest 서비스가 가능합니다. slim의 .htaccess 파일의 위치는 cellar/api/.htaccess 입니다.
  • 108. 13.3. slim-실행전설명 /var/www/cellar/api/index.php 의 파일을 수정해 줍니다. dbhost 는 127.0.0.1로 놓아두어도 됩니다. /var/www/cellar/js/main.js 를 수정해 줍니다. 이 때 자신의 아이피는 외부에서 접속할 수 있는 아이피를 입력해 주어야 외부에서도 접속이 가능합니다. 포트는 apache 설정파일에서 정해준 포트번호인 2080입니다.
  • 110. 13.3.2. slim-소스다운로드 원본은 아래의 경로에서 다운받을 수 있습니다. https://github.com/ccoenraets/wine-cellar-php/zipball/master 아래의 경로에서도 다운받을 수 있습니다. http://www.groovytrains.com/download/slim.zip
  • 111. 13.4. angularjs-설명 Angularjs는 MVC 기반의 프론트엔드 프레임워크입니다. 쉽게 풀어 말하면 화면상의 보여지는 것의 흐름을 관리할 수 있는 프레임워크입니다. 볼 수 있는 것은 프론트 엔드이고 볼 수 없는 것은 백 엔드라고 생각하시면 됩니다. 데이터베이스에 접속하여 데이터를 가져와서 정제하는 역할을 하는 것은 백 엔드이고 그 정제된 데이터를 한번 더 보기 좋게 정렬하거나 변경하여 보여주는 역할을 하는 것이 프론트 엔드입니다. 데이터를 입력하거나 변경하는 명령을 프론트 엔드에서 받아 백 엔드쪽으로 넘겨주면 백 엔드에서는 적당한 처리를 한 후에 프론트 엔드로 응답을 해주고 프론트 엔드는 화면으로 해당 응답을 보여주는 방식입니다.
  • 112. 13.4.1. angularjs-slim과의연동-설정 /var/www/angular-cellar-master/api/index.php 의 파일을 수정해 줍니다. dbhost 는 127.0.0.1로 놓아두어도 됩니다.
  • 114. 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
  • 115. 14. 마무리 14.1. 싱글보드 컴퓨터 스펙 및 가격비교 14.2. 다른 활용법들
  • 116. 14.1. 싱글보드컴퓨터스펙및가격비교 2014년 3월 10일 기준으로 본 가격입니다. 마스보드 A10 : 71,280원 마스보드 A20 : 84,000원 큐비보드 : 86,900원 큐비보드2: 110,000원 비글본블랙 : 77,510원 라즈베리파이 : 53,350원 이 외에도 많은 싱글보드 컴퓨터가 있지만 일반 적인 것만 비교해 보았습니다. 싱글보드 컴퓨터의 스펙 한계가 있기 때문에 아직은 라즈베리파이가 가장 싸면서도 효율적인 것을 알 수 있습니다.
  • 117. 14.2. 다른활용법들 싱글보드 컴퓨터는 사용 전력이 극히 낮아서 24시간 동작해야하는 웹서버나 SVN같은 저장소 용도로 사용할 수 있을 뿐 아니라 각종 전자 센서과 통신을 이용하여 스마트폰으로 홈 오토메이션까지 구축하는 것이 가능합니다. 간단히 LED를 켜고 끌 수 있습니다. LED제어 초음파 센서로써 앞에 있는 물체의 거리를 감지하는 것이 가능합니다. 응용하면 애완동물과 하루 종일 놀아주는 로봇을 만드는 것이 가능합니다. 초음파 센서 활용 모터도 간단히 제어가 가능하기 때문에 무선으로 잡아주고 스마트폰으로 제어가 가능합니다. 모터제어 라즈베리파이에 연동시켜 좀 더 로봇을 쉽게 만들 수 있도록 해주는 모듈도 있습니다. 로봇 활용 아래와 같이 클러스터링을 이용하여 슈퍼 컴퓨터를 제작하는 것도 가능합니다. 슈퍼 컴퓨터 동영상 라즈베리파이로 영상을 받을 수가 있기 때문에 감시카메라 혹은 아기 돌보기 용으로도 가능합니다. 카메라활용 터치스크린도 있기 때문에 모니터도 필요가 없습니다. 말 그대로 초소형 컴퓨터가 되는 것이지요. TFT 터치스크린 라즈베리파이보다 하위단계인 아두이노로 만들어본 탱크입니다. 라즈베리파이로 구현한다면 외부에서 wifi를 통하여 움직일 수 있습니다. 동영상링크
  • 118. 15. 무선랜 15.1. wifi 동글 15.2. 설정
  • 119. 15.1. wifi동글 Wifi 동글은 아래의 링크를 통해서 구매했습니다. 아트로봇 Wifi 동글을 USB포트에 연결해줍니다.
  • 120. 15.2. 설정 아래의 명령어를 실행하여 라즈베리파이의 네트워크를 확인합니다. ifconfig 위의 스크린샷에서 보면 eth0은 유선이고 wlan0은 무선입니다. 그 중 wlan0의 Hwaddr이 연결한 wifi 동글의 mac address 입니다. 공유기에서 mac 인증을 통하여 무선 연결을 허용할 경우 이 mac address를 등록해주어야 합니다.
  • 121. 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는 암호화방식입니다.