라즈베리파이 code-server 설치 및 접속

주피·2025년 4월 14일

나는 수업을 갈 때에 아이패드만을 들고 다닐 때가 많다. 교재를 pdf로 저장해서 들고 다니기에 편하고, 가벼우며, 필기가 편리하다. 그러나 이 기기의 가장 큰 문제는 네이티브로 프로그래밍 할 수 있는 방법이 없다는 것이다. code app이나 구름 ide와 같은 유료 어플 혹은 서비스를 통해 할 수 있기는 하지만, 만원으로 하루를 살아야 하는 대학생의 입장에서 그런 서비스들은 다소 끌리지 않았다.

때문에 집에서 놀고 있는 라즈베리파이를 통해 code server를 설치하고, 여기에 아이패드로 접속하여 프로그래밍을 하기로 하였다.
기초적인 방식은 해당 비디오를 참고하였다.
https://youtu.be/11YfaGi0Fpk?si=9fgABTuHIcT8wsqy

1. 라즈베리파이 os 설치 및 기초 세팅

프로젝트에 사용된 라즈베리파이는 라즈베리파이4B 모델이다.
라즈베리파이는 기본 저장장치로 마이크로 sd카드와 리더기를 사용하기에 이를 준비한다. 설치 과정에서 sd 카드의 정보는 포멧되므로 안 쓰거나 새 sd 카드를 사용하길 권장한다.
본인은 보다 빠른 연결을 위해 공유기와 유선으로 연결 할 수 있는 랜선을 준비했지만, 통상의 환경이라면 wifi 세팅으로 충분할 것이다.

라즈베리파이os는 해당 주소에서 다운 받을 수 있다.
https://www.raspberrypi.com/software/

이를 다운받은 뒤 실행시키면 Rasberry pi Imager라는 프로그램이 설치된다.

이를 실행하면 다음과 같은 화면이 나타나는데, '저장소 선택'을 클릭하여 sd카드를 선택한다.

그 뒤, 운영체제 선택을 클릭하여 Rasberry Pi OS(64-bit)를 선택한다.

마지막으로, 장치 선택을 누른다. 본인의 장비에 맞는 것을 고른다.

위 세 가지를 선택한 뒤에는 '다음'을 누른 뒤 os의 각종 설정을 적용할 수 있는데, '이 중에서 설정을 편집하기'를 눌러 몇 가지를 설정해야 한다.

사용자 이름 및 비밀번호를 설정한다. 비밀번호는 향후 라즈베리파이 접속 시 필요하므로 개인만 알 수 있도록 지정하는 것이 좋지만, 사용자 이름은 편리를 위해 pi로 설정하는 편이 좋다. 무선랜 설정은 wifi 설정이다. ssid와 비밀번호에 각각 접속하고자 하는 wifi의 이름과 비번을 작성한다. 무선랜 국가와 시간대를 한국으로 설정한다.

마지막으로 서비스탭에서 SSH 사용을 설정한다.

모든 설정이 끝난 뒤 Imager의 메시지로 sd카드를 제거해도 좋다고 표시되면 기초적인 설정은 끝났다.

2. 라즈베리파이 접속

라즈베리파이에 접속하기 위해서는 컨트롤하고자 하는 컴퓨터와 라즈베리파이가 같은 망 내에 있어야 한다.

라즈베리파이에 타입에 맞는 충전기를 꽂으면 설정해둔 무선랜에 접속할 수 있다. 만약 되지 않는다면 공유기에 랜선을 직접 꽂는 것을 추천한다.

만약 접속이 똑바로 되었다면 공유기 관리자 페이지에서 라즈베리파이를 찾을 수 있다.
대부분 공유기 관리자 페이지는 192.168.0.1이며, 이외의 경우는 제조사를 확인하길 바란다.
ipTime의 경우 관리도구 - 고급설정 - 내부 네트워크 설정에서 보면 사용중인 IP 주소 정보에서 라즈베리파이의 접속 여부와 사용하는 ip 주소를 알 수 있다. 여기서 라즈베리파이의 이름은 위의 설정에서 지정한 hostname으로 표기된다.

접속하려는 컴퓨터의 CMD를 연다.

ssh pi@"라즈베리파이의 IP주소"

를 입력한다. 제대로 입력되었다면

pi@"라즈베리파이의 IP주소"'s passwoed

가 표시되는데, 여기서 위에서 설정한 라즈베리파이의 암호를 입력한다. ssh에 비밀번호를 입력해도 표시가 안되는 것은 원래 보안상의 이유로 그런 것이니 안심해도 좋다.

똑바로 되었다면

pi@rasberrypi:~$

이라고 표시된다.

3. code-server 설정

원래대로라면 정석적인 설치 방식은

$ curl -fsSL https://code-server.dev/install.sh | sh

를 입력하는 것이겠지만, 나의 경우는 이 방식을 사용할 경우 Node.js의 버전과 관련한 충돌이 자주 일어났다.

그래서 다음의 명령어를 통해 Node.js의 환경을 먼저 구축하였다.

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

그 뒤 Yarn을 통해 유저 디렉토리에 code-server를 설치할 수 있었다.

npm install -g yarn
yarn global add code-server

이제 설정 파일을 수정해야한다. 설치 경로 ~/.config/code-server/config.yaml에서
아래처럼 수정하여 외부 접속을 허용한다.

bind-addr: 0.0.0.0:원하는 포트 번호 
auth: password
password: 원하는_비밀번호
cert: false

작성 후에는 ctrl+ O, enter, ctrl+X를 통해 설정을 저장한다.

~/.yarn/bin/code-server

마지막 명령어를 입력하면 cmd 창이 멈춘 것처럼 나올텐데, 이는 code-server가 백그라운드 실행이 아닌 포그라운드 실행 명령어기 때문이다. 때문에 해당 명령어를 통해 코드서버를 돌린다면, 라즈베리파이의 부팅 후 다시 ~/.yarn/bin/code-server를 작성해서 실행을 시켜야한다.

이제 컨트롤 컴퓨터의 웹브라우저를 열고

http://라즈베리파이의 IP:아까 적은 포트 번호

를 입력하면 code-server에 접속 가능하다. 비밀번호는 ~/.config/code-server/config.yaml에 작성한 비밀번호를 입력하면 된다.

4. 포트 포워딩

이제 남은 작업은 이를 외부 네트워크에서도 작업할 수 있도록 하는 것이다.
고정IP를 사용해도 좋지만 아무래도 ip 주소는 외우기 어려운 만큼 DDNS 설정을 해주었다.
아까의 공유기 관리자 페이지에 접속하여 관리도구 - 고급설정 - DDNS 설정을 들어가자.
호스트 이름에 접속하고자 하는 주소를 지어주고, 사용자 ID에 이메일 주소를 적어준 뒤 DDNS 등록을 누른다. 잠시 뒤 '정상등록'으로 표시되면 설정 성공이다.

이제 고급설정 - NAT/라우터 관리 - 포트포워드 설정으로 이동한다.
여기서 규칙 이름을 정하고
내부 IP 주소를 라즈베리파이의 IP로 적는다.
프로토콜은 TCP로 두고, 외부포트는 임의로 작성하고, 내부포트는 아까의 라즈베리파이의 포트 번호로 작성한다. 적용을 누르면 포트포워딩이 완성된다.

http://DDNS 주소:등록한 외부포트번호

이제 위의 코드대로 접속해보면 정상적으로 라즈베리파이의 코드서버에 접속할 수 있다.

후기

꽤 힘든 작업이었다. 각종 글과 영상들을 보았지만 똑바로 작동되질 않아 몇 번이고 sd카드를 포멧하고 os를 설치해야 했다. 결국 chat gpt의 도움을 많이 받아야 했다. 그래도 이를 통해 밖에서도 프로그래밍을 할 수 있는 환경을 얻을 수 있었다.
라즈베리파이 자체적인 성능의 한계로 거대한 프로젝트를 만들진 못하겠지만, 적어도 백준의 문제 정도는 풀 수 있을 것으로 기대한다. 긴 글 읽어주어 감사하고, 다음에 또 좋은 글로 돌아오도록 하겠다.

profile
ㅇㅇ

0개의 댓글