정말 오랜만입니다.
그 동안 많은 일이 있었습니다. 이 블로그에 글을 남겼듯이 소소하게 부업으로 진행했던 채굴은 직장인 월급정도로 수익이 늘어났고, 덕분에 조금 더 여유롭게 IoT 프로젝트를 진행할 수 있게 되었습니다.
이런 점들이 달라졌습니다.
Flask → Express로 백엔드를 변경했습니다. 웹 프레임워크는 다양합니다. 제가 많은 프레임워크들을 만져본 것은 아니지만, 되도록이면 자유도가 높은 프레임워크가 필요했습니다. Javascript는 태생이 웹을 위한 언어라 그런지 웹 관련해서는 파이썬 기반의 Django, Flask가 도저히 따라올 수 없는 자유도를 가지고 있음을 느껴 Node.js 위에서 굴러가는 Express 서버를 백엔드 서버로 사용하게 되었습니다.
플랫폼이 바뀌었습니다. 기존에는 ROS + roslibjs를 이용했습니다. 그러나 사용하면 할수록 이 방식이 가지는 장점을 찾을 수가 없었습니다. 굳이 높은 주기(hertz)로 데이터를 송수신 할 필요도 없었고, 로봇 제어에 필요한 mapping, SLAM을 사용하지 않는다면 단순한 메시지 송수신을 위한 플랫폼으로서는 적당하지 않았습니다. 따라서 기존의 ROS를 버리고 , RESTful Api를 통한 통신을 지향하게 되었습니다. 이에 관한 내용은 추후에 자세히 설명드리겠습니다.
프론트엔드를 React 기반으로 변경했습니다. 이 작은 프로젝트를 위해 React까지 배울 필요가 있을까...? 싶었는데, 기존 HTML + CSS + JS 기반으로 페이지를 개발하면서 너무나 많은 괴로움을 겪었기에, 과감히 React로 넘어갔습니다. 지금 생각해보면 Vue.js로 프론트엔드로 구성해볼까 싶기도 했지만, 일단 React를 통해 개발을 시작했으니, 프론트엔드는 이쯤에서 마무리할까 합니다. 생각해보면 기계공학 전공하고 있는 사람이 프론트엔드에 몰두하는게 그림이 조금 이상하기도 하지요.
Firebase Realtime Database를 사용합니다. Firebase는 서버리스 앱을 만들 수 있도록 다양한 기능들을 제공하지만, 현재 진행중인 프로젝트에서는 Firebase를 DB 이상의 목적으로는 필요하지 않아 보였습니다.
다시, 시작해보겠습니다.
그동안 글이 안 올라왔던 건 이렇게 많은 변동사항이 있었고, 이러한 변화를 만들어내기 위해서였습니다. 현재는 홈IoT시스템(Cranberry)가 Alpha 버전 정도는 개발이 되었다는 확신이 들어 이제 글을 다시 쓰기 시작하는 겁니다. 주 1-2회 업로드 예정이며, 반응이 괜찮다면 다른 플랫폼에서도 찾아뵙도록 하겠습니다. 감사합니다.
긴 글 읽어주셔서 감사합니다.
글이 도움이 되셨다면 왼쪽 아래의 공감버튼과 광고 클릭 부탁드립니다. 고마움을 표현할 수 있는 가장 쉬운 방법입니다.