티스토리 뷰
부모님 일을 도와서 라즈베리파이로 이미지 업로드/조회 서버를 구축해야 할 일이 생겼다.
머신러닝 부트캠프 접수도 끝나서 여유 시간을 이용해서 해보기로 했다.
간단한 기능이라 1~2주면 끝날 것 같다는 생각이다. (이렇게 잡으면 항상 두 배는 걸리던데 ㅎㅎ..)
라즈베리 파이는 사실 처음 써봤는데, 이 작은 걸로 리눅스가 돌아간다고 한다. 이걸로 재밌는 일들을 많이 해볼 수 있을 것 같다. 찾아보니까 IoT 스마트홈 DIY나 개인 서버로 많이 쓰는 것 같다.
먼저 라즈베리파이에 라즈베리 파이 OS를 설치해야 한다. 데비안 기반 리눅스인데 라즈베리 파이에 맞게 최적화나 편의기능이 들어가 있는 것 같다. 뭐 우분투도 돌아간다고는 하는데 제조사에서 공식적으로 지원하는 게 최고라고 생각해서 라즈베리 파이 OS를 설치하기로 했다.
라즈베리 파이 설치
설치는 다음 글을 참고했다.
https://m.blog.naver.com/makitmine_/222070055923
[RaspberryPi] 라즈베리 파이 8GB로 서버 구축하기
평소 기록하는 습관을 들이지 않아서 그런가... 막상 다 구축해놓고 하려니까 해놓은 그 과정에 대한 스크...
blog.naver.com
사실 별 거 없고 SD 카드만 있으면 된다.
공식 홈페이지에서 라즈베리 파이 매니저라는 툴을 제공해서, SD카드를 컴퓨터에 연결하고 설치할 이미지를 결정하기만 하면 알아서 SD카드에 이미지를 써준다.
내 건 라즈베리 파이 4인데, 라즈베리 파이 Zero 2부터 64비트 OS를 지원한다고 해서 64비트로 설치했다.
참고한 글: https://www.robotstory.co.kr/london/?vid=250
그리고 리눅스 CLI에 익숙해지자는 생각으로 GUI를 제거한 Lite 버전을 설치했는데, 나중에 이것 때문에 귀찮은 일이 생기게 된다..
설치하면서 노트북에 SD카드가 꽂힌다는 걸 처음 알았다..ㅋㅋ
이 SD카드를 라즈베리 파이에 꽂고 전원 케이블을 연결하면 알아서 설치해준다.
그런데! 입출력 장치가 없으니 제대로 동작하고 있는지도 모르고 조작도 못한다. 키트에 들어있던 USB-C - HDMI 케이블로 모니터를 연결해준다. 키보드도 USB 포트에 연결한다.
그리고 전원을 연결해주면 알아서 부팅된다.
인터넷 접속
이렇게 하면 일반 리눅스 컴퓨터 쓰듯이 쓰면 되는데, 원래 작업하던 키보드 모니터와 별개로 써야 해서 무척 귀찮다. SSH로 연결해서 쓰자
그러려면 먼저 공유기에 접속해야 한다. (방법이 여러 가지인데 이게 제일 간편해 보였다)
랜선으로 라즈베리 파이를 직접 공유기에 연결하거나, 무선랜 드라이버가 내장된 경우 WiFi로 접속할 수 있다.
나의 경우는 공유기 포트가 다 차서 WiFi로 연결했다. 설정은 다음 글을 참고하자.
https://webnautes.tistory.com/903
iwconfig 명령어로 공유기에 정상적으로 접속되었는지 확인해보자.
SSH 연결
SSH 활성화
SSH 연결은 다음의 글을 참고했다.
[RaspberryPi] 라즈베리파이 SSH Enable 하는 방법 (headless setup 포함)
Putty등을 사용하여 라즈베리파이의 Shell을 사용하는 경우가 많습니다. 이게 편하거든요. 그런데 처음 ...
blog.naver.com
라즈베리 파이 OS 특정 버전부터는 보안상 SSH가 기본적으로 꺼져 있어서 설정을 따로 해줘야 한다고 한다.
설치 때 이미지에 ssh 설정을 추가해주는 방법이 있는데 이미 설치해버렸으니 다른 방법을 선택한다.
$ sudo raspi-config
위 명령어로 라즈베리 파이 설정에 들어가서 ssh를 켜주면 된다 (위 블로그 글 참조)
SSH 접속
이제 라즈베리 파이에 접속해보자.
윈도우 노트북에서 PuTTy를 이용해 접속했다.
접속은 다음 글을 참고했다.
라즈베리파이(라즈비안)에서 SSH 설정 및 SSH 접속하는 방법 - 코드도사
리눅스는 네트워크 연결에 있어서는 OS 중에서는 가히 독보적이라고 볼 수 있습니다. 리눅스가 현재 꽤 유명해지고 많이 애용되는 가장 큰 이유중에 하나가 네트워크 연결이 손쉽고 사용하기가
codedosa.com
VS Code에서 SSH로 접속
근데 나는 아직 GUI가 편해서 VS Code에서 ssh로 접속했다.
Remote Development 익스텐션을 설치한다.
그러면 이렇게 원격 접속 익스텐션이 쫙 깔리는데 이중에서 Remote - SSH를 쓸 것이다.
맨 왼쪽 아래 >< 버튼을 눌러서 접속한다.
유저명은 라즈베리파이 첫 부팅 때 설정한 유저명으로, ip주소는 라즈베리파이에서 ifconfig 명령어로 조회한 ip를 그대로 입력한다. 비밀번호를 물어볼텐데 부팅 때 설정한 것을 입력하면 된다.
접속이 되면 Oper Folder 버튼을 눌러 루트 디렉토리를 열어주자.
개발 환경 설정이 끝났다!
이제 다음 편에선 파이썬 마이크로 웹 프레임워크인 Flask를 이용해 이미지 서버를 만들어 볼 것이다.
블로그 글을 써보며..
블로그 글 쓰는 것을 미뤄오다가 오랜만에 써봤는데, 이렇게 쓰는 게 맞나? 싶다.
튜토리얼로는 디테일이 생략되어 있고 개인적인 기록으로서는 너무 사진이나 시행착오 설명이 부족한 것 같다.
작업을 하면서 노션에 1차로 흐름을 기록하고 블로그에 다시 풀어서 써봤는데, 못 찍은 사진과 스크린샷도 많고, 시행착오를 기록하는 과정에서도 다 적지 못하는 것들이 생기고 블로그에 글 쓸때도 생략하는 것들이 생긴다.
무엇보다 다른 블로그 글 쓰는 사람들은 시행착오를 전부 순서대로 기록하는지 궁금하다. 이게 착오를 겪은 것도 전부 (특히 스크린샷과 사진까지) 기록하려다보니 원래는 1시간이면 끝날 일을 2시간만에 끝내는 느낌이 들어서 비효율적인 느낌도 든다.
추가로 블로그에 다시 풀어쓰는 것도 시간이 꽤 걸려서 전체적으로 기록을 안할 때보다 시간이 많이 걸리는데, 이게 맞는 방향일지 좀 더 고민해봐야겠다.
다음부터는 튜토리얼적인 부분은 잘 설명한 튜토리얼에 맡기고, 시행착오 부분만 스크린샷과 함께 더 자세히 남기는 게 좋을 것 같다.
임시저장해둔 군대 회고글도 빨리 써야겠다!