개인적으론 반대했지만, 팀원들의 뜻에 따르기로 하고, 기업 연계 프로젝트에 참여하게 되었다.
(마음고생도 되게 많이 했다..)
요구되는 기술 스택들에 대해 별 안내 없이 들어서 더 거부감이 컸던것도 있다. (이걸 다 써야 하는거야?)
같은 과정을 듣는 다른 분반 팀들과 협업 형식으로 진행이 되는데,
크게는 대립이
"각자 전체 서비스를 소형화 시켜 구현하는 것이다. vs 센서 수집 시스탬과 전체 관제 시스템을 두 팀이 나눠 진행한다."
"프로젝트 발표를 한 팀이 전담하는 것은 부당하다. vs 굳이 두 팀 각자 같은 주제로 발표할 필요가 있나?"
라는 내용에서 발생했지만
"센서 수집 시스템은 A분반 팀이 진행하고, 통합 관제 시스템 및 비콘 출입관리 시스템은 B분반 팀이 진행한다."
"발표는 각자가 개발한 기능에 초점을 맞춰 진행하고, 기타 문서는 통합이 가능하면 통합하는 순으로 한다."
로 Fix가 되어 얼마 전 부품 선정을 마치고, 학습에 필요한 도서도 주문 완료 했다.
그래서....내가 맡은 웹서버 구현 및 데이터베이스 구축, 라즈베리파이 셋팅 및 환경 백업의 과정을 요약해보고자 한다.
0. 라즈베리파이 원격 접속 설정
자주 쓰게 될 SSH와 VNC를 활성화 해주었다. VNC가 연결되었을 때의 해상도도 별도로 설정함.
1. mariaDB 설정 및 node.js 최신버전 설치
//mariadb 설치
sudo apt-get install mariadb-server
//mariadb 보안 설정, 입력 한 후 내용 읽어보며 진행하기.
sudo mysql_secure_installation
//관리자 계정으로 접속, 모든 ip에 대한 허용 진행
sudo mysql -u root -p 설정했던 비밀번호
//계정 생성 및 비밀번호 설정
create user'사용자명'@'호스트명' identified by '패스워드';
//모든 데이터베이스에 대한 접근권한을 특정 사용자에게 부여하는 명령
GRANT ALL PRIVILEGES ON *.* TO '사용자명'@'호스트명' IDENTIFIED BY '패스워드';
//호스트 명을 *.*로 해두면 모든 IP에서 접속이 가능하다. 다만 보안설정은 필수!
flush privileges;
// mariadb 서비스 종료, 시작, 재시작
sudo service mysql stop
sudo service mysql start
sudo service mysql restart
다음 경로의 파일을 열어준다.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address 가 기본 값으론 127.0.0.1로 되어있는데, 이를 *로 바꾸어 준다.
Ctrl +x로 나가면서 y 입력하고 빠져나간 후 서비스를 다시 시작해준다.
기존 개발환경과 일치시키기 위해 nodejs의 버전을 업데이트 시켜준다. 현재 기준 최신 LTS 버전은
16.13.1이지만, 라즈베리파이에는 이보다 이전의 버전이 설치되어 있을 것이다.
//설치된 nodejs의 버전 확인
node -v
//구버전 node.js 삭제
sudo apt-get remove nodejs
sudo apr-get autoremove -y
//패키지 저장소와 버전 비교
apt list | grep nodejs
//nodejs 패키지 저장소 최신화
sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
//갱신 여부 확인
apt list | grep nodejs
//최신버전 nodejs 설치
sudo apt-get install nodejs -y
2. vsCode 설치 및 ufw(리눅스 방화벽) 설치, DB 및 자주 쓰는 포트 열기
//vsCode 설치
sudo apt-get install code -y
//방화벽 설치
sudo apt-get install ufw -y
일단 확실하게 열어야 할 포트는 SSH 사용을 위한 22번 포트, VNC Viewer를 위한 5900포트, mysql에서 사용되는
3306 포트가 되겠다. (필요한 포트가 있다면 포트번호만 바꾸는 방식으로 열어줄 수 있으니 걱정 마시라..!)
터미널 창을 실행하고, 화면에 sudo nano /etc/apt/sources.list 를 입력한다. 커서로 이동하고,
다음의 내용을 입력한다.
2021 10월자에 나온 bullseye의 경우 다음의 두 줄을 추가한다.
deb http://ftp.kaist.ac.kr/raspbian/raspbian/ bullseye main contrib non-free rpi
deb-src http://ftp.kaist.ac.kr/raspbian/raspbian/ bullseye main contrib non-free rpi
2021 06월자의 buster의 경우 다음의 두 줄을 추가한다.
deb http://ftp.kaist.ac.kr/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://ftp.kaist.ac.kr/raspbian/raspbian/ buster main contrib non-free rpi
Ctrl + o를 눌러 저장하고, y를 입력해 저장한다. Ctrl+x를 눌러 빠져나온다.
6-3. 초기 설정 (시간대 설정)
아까 실행했던 Raspberry Pi Configuration로 들어가 Localisation Tab의 Set Timezone를 클릭하고,
Area를 Asia로, Location을 Seoul로 잡아준 뒤 확인을 누른다. 시간대가 정상적으로 바뀐 후 다음 단계를 진행한다.
6-4. 초기 설정 (업데이트 및 한글 설정)
터미널 창을 실행한다. sudo apt-get update를 입력해 캐시를 업데이트 해 준 후,
sudo apt-get upgrade -y를 입력해 업데이트를 진행한다.
bullseye 버전의 경우 vlc 오류가 발생하며 업데이트가 안 되는 경우도 있는데,
그런 경우 sudo apt remove vlc -y를 입력해 vlc를 삭제하고,
sudo apt-get autoremove를 진행해 사용하지 않는 패키지를 같이 지워준다.
그런 후 sudo apt-get upgrade -y를 다시 시도한다.
업데이트가 끝나면 sudo apt-get install fonts-unfonts-core -y를 사용해서 한글 폰트를 설치해준다.
설치가 완료되면 Language를 ko(Korean), Character Set을 UTF-8로 변경하고, OK를 클릭한다.
한번 재부팅을 해 주면 언어가 한글로 바뀐 것을 확인할 수 있다.
7. 한글 키보드 설치
터미널 창에 sudo apt-get install ibus ibus-hangul -y 를 입력하고, 설치가 완료되길 기다린다.
Yes를 클릭해 실행해준다.
"..."을 클릭한 뒤, Shift를 체크해주고 추가 & 적용을 눌러주고 확인을 클릭해 나온다.
재부팅 후 좌측 Shift + Space 키 조합으로 한영 전환이 되는 걸 확인하고, 사용하면 된다.
*한글 입력이 안 되는 경우
sudo apt-get remove ibus ibus-hangul , sudo apt autoremove 를 순서대로 완료해준 뒤