서버환경 구축, 이것저것 연동 🖥

그저 구글링으로 웹캠을 웹서버에 띄웠을 때는 정말 신났다!
팀원 한 명씩 몰래 기념사진도 남기고 🤗🤗🤗🤗!!
근데 문제는 그게 아니였던거지.. 인애랑 둘이 해보겠다고 서로 뭘 깔고 지우고 안되서 한숨 푹 쉬고 닭가슴살먹고 아주 힘든 나날이였어. 환경을 구축하고 버전을 맞추고 연동하는게 쉬운게 아니더라!
다시는 서버개발자를 무시하지마라...   



우리는 원래 도커를 쓰기로 했었어. 그런데 도커가 wls랬나 아무튼 윈도우환경에서 버전도 안맞고 리눅스에 깔려니까 라이브러리가 버전이 다 제각각이라 안되더라고.
안정성있게 가기 위해서는 그냥 pc자체에 서버를 구축하는게 낫다고 판단해서 인애는 pc에 linux mint os를 설치해서 리눅스로 부팅했어.
나는 아이디어 구상단계에서 기획해둔 웹서버 루트 구성을 토대로 프레임워크를 만졌는데, 처음에는 php로 넣었다가 캐시 문제인지 css버전오류인지 뭔지 모르겠는 미지의 오류로 인해서 첫 개발한 웹서버페이지를 못쓰게되었어.



그라파나에서 그래프 불러오는 임베딩을 하는데, 처음 맞춘 버전은 최신이라 잘 되다가 다른 페이지 들어가니까 그때부터 안보이더라구..
구글링 2시간동안 해서 알아낸 건 8.x버전 이후로는 임베딩이 잘 안되도록 제한됐다? 뭐 그런 소리가 있던거같아.
지금은 해결해서 희미하네 기억이.. 이제 웹캠도 한번 띄워볼까? cctv기능은 병원에 필수지!하면서 웹캠코드를 짜서 넣었는데...


너무 잘되고 빠르더라. 그런데 이것도 오류가있어. 이건 기기내에 코드를 짜고 그냥 웹캠장치를 컴퓨터가 인식하면 불러와지는 단순한 거였는데, 이거 하나 해봤다고 신나서 팀원 얼굴 찍고 그랬네.
나중에가서는 1차로 Azure 클라우드 서버에 플라스크를 깔고, 플라스크 페이지 하나 구현해서 거기서 웹캠 구동한걸 가지고 iframe이나 포트포워딩, ssh같은 방법으로 데려오려고했는데 플라스크가 안먹더라고? 그래서 포기하고
2차로는 mjpg스트림 서비스를 이용하는걸로 해서 최종적으로 mjpg를 썼어. 근데 장점이 많더라구.
mjpg를 메인 라즈베리파이인 파이1번에 깔아놓고 웹캠장치를 직접 인식시키면 병실침대와 거리도 적당하고, 바로바로 객체검출 후 값들을 서버랑 DB에 넣어줄수도 있는데다가 안정적이지, 그리고 또 나중에 js나 java개발해도 충분히 데려올 수 있다는 장점까지 있어서 나름 좋았어!

시계열 데이터베이스를 포기하다

원래 우리는 실시간이 생명인 병원시스템인점을 감안해서 flask와 influxDB를 사용하고싶었어.
influxDB는 시계열이라 실시간으로 데이터가 좌르르르륵 올라와서 그래프도 풍성하지, 간지나지, 활용도도 높다는 장점이 있는데, 워낙 자료가 적고 연동가능한 버전이나 호환성도 적어서 하다하다 안되서 그냥 mariaDB로 갈아타버렸어.
이걸 썼더라면 Restful API를 제공하기 때문에 API통신도 해볼 수 있었는데 너무아쉽다!!😥😥
일정 주기마다 데이터처리 후 새로 저장하는 기능이랑 데이터 자동삭제까지..
그래프가 풍성한데도 쿼리가 절약되서 빠르고 너무 좋은데 못써본게 한이야..



아무튼 어찌저찌해서 Grafana + Apache + MariaDB + Laravel + PHP 구조를 완성했어.
하고나니까 또 개운하더라.
버튼제어 넣겠다고 어플 열심히 만들다가 블루투스 모듈 버전업데이트니 지원하지않는 언어니 하면서 개발 해놓을때마다 오류나서 때려친건 아직도 화나네.
뭔가 마가 낀게 분명해. 그래도 Post 통신은 먹어서 다행이야 그치?