Lego BrickFinder 만들기 - 6. 라즈베리파이 내부 배포
슬슬 상반기 서류 제출은 마감되고 있고, 다시 시간이 났으니 배포를 해봐야겠습니다.
이번에 배포에 활용할 기기 환경은 다음과 같습니다.
- 공유기: IPTIME, skylife
- 단말: 라즈베리파이, 무선 연결
flask로 단순하게 서버를 배포하면 host
는 127.0.0.1로 설정되고, 그 기기에서만 접속 가능합니다.(로컬) 사실상 서버랍시고 만들어놨지만 아무것도 아닌 것입니다. 다른 기기에서도 접속 가능하게 하려면 host
를 0.0.0.0으로 설정해줍니다. 그러면 IP 주소: 포트 번호로 다른 기기에서도 서버에 접근이 가능해집니다.
라즈베리파이는 공유기를 통해 세상과 연결되어 있습니다. 대강 비유를 하자면 공유기를 아파트단지라고 볼 수 있습니다. 아파트단지에는 도로명 주소가 부여되겠죠. 이를 외부(공인) IP라 합시다. 이번 포스팅에서는 이 부분은 다루지 않을 것이므로 넘어가겠습니다. 아파트단지에는 여러 가구가 있습니다. 그리고 가구에는 각각 몇 동 몇 호라고 번호가 부여되어 있습니다. 공유기에도 이에 연결된 기기들이 많을 겁니다. 공유기는 연결되는 기기마다 몇 번이라고 번호를 부여해줍니다. 이는 내부 IP라 하겠습니다.
이를 확인하기 위해 공유기 관리 페이지로 들어가보겠습니다. 각 네트워크 사업자 및 기종에 따라 관리 페이지 UI는 상이하므로 따로 찾아볼 필요가 있습니다. 우리집 공유기는 DHCP 설정
을 보면 되네요.
사용중인 IP 주소는 비유하자면 현재 가구가 입주한 방의 번호 같은 거라 보면 됩니다. 번호를 부여하는 규칙은 비트마스킹으로 정해집니다. 대여범위는 서브넷 마스크를 제외한 나머지 비트로 표현할 수 있는 범위이며(192.168.0.1/24라면 앞 24비트를 제외해야 함), 1번은 항상 게이트웨이에 할당, 255번은 브로드캐스팅용이 되므로 대여 불가능합니다. 정보처리기사 딸 때 대충 공부하고 넘어간 내용이었는데, 직접 설정하면서 보니까 새롭네요.
만약 같은 공유기에 연결된 기기 내에서 다른 기기에 접근하고자 한다면 이 번호만 알아도 충분합니다. 같은 아파트단지에서라면 동호수만 알아도 위치를 찾을 수 있는 것과 같습니다. 그런데 여기서 한 가지 문제가 생깁니다. IP주소의 대여시간이 2시간이라서 자동 할당되는 주소의 경우 번호가 무작위로 부여된다는 것입니다. 마치 2시간마다 어떤 사람이 사는 집 위치가 바뀌는 것과 같습니다. 이래서는 안정적인 서버 배포가 불가능해지는데, 이를 방지하기 위해 특정 MAC 주소에 대해서는 IP를 수동등록 해줘야 합니다.
설정을 마쳤다면 다른 기기에서도 페이지 접속이 가능해집니다.
다음 포스팅에서는 외부 배포를 위한 포트포워딩을 해주겠습니다. 또한 라즈베리파이에 모니터와 키보드를 연결하고 작업하기에는 제 방구석은 좀 좁기 때문에 원격 접속을 위한 SSH 설정도 해야겠습니다.