차성민, 엄재식, 진지연, 박민상, 윤소영
- IoT, AI, Node.js 등 다양한 기술을 경험해보자
- IoT 터치 패널로 냉장고를 관리하고, 갖고 있는 재료에 적합한 레시피를 추천해주는 서비스를 만들자
- 프론트 : 차성민(팀장), 엄재식(프론트)
- 백엔드 : 진지연(추천 알고리즘, IoT), 박민상(서비스 로직), 윤소영(로그인, IoT)
- 팀 룰
- Notion, Jira, GitLab, Discord을 활용해서 커뮤니케이션의 오류를 줄이자
- 갖고 있는 재료나 유통기한이 임박한 재료에 적합한 레시피를 추천한다.
- 추천 로직의 연산량이 많아 서버가 느려지는 문제가 있었다. 그래서 기본 로직을 담당하는 서버와 추천 로직을 담당하는 서버를 분리하고, 두 서버가 비동기 방식으로 통신하도록 구현하여 throughput 을 늘렸다.
- IoT 터치 패널로 냉장고에 재료를 추가할 수 있다.
- IoT 센서를 활용해서 요리할 때 유용한 기능 타이머, 유통기한 임박 알림을 이용할 수 있다.
- 추천 서비스를 위한 서버를 분리하고, 두 서버가 비동기 통신하도록 했다.
- 브라우저 - Nodejs - Django 구조로 구현했는데 장단점은 다음과 같다.
- 장점 ) 로그인 기능을 Nodejs 에서만 구현하면 된다. DB에 동시접근 할 우려가 없다
- 단점 ) Nodejs와 Django 가 통신하는 과정에서 브라우저를 거치지 않기 때문에 JWT 토큰이 유실된다. 그래서 통신할 때에 JWT 토큰을 넣어줘야 했다.
- PIGPIO 라이브러리를 활용해서 IoT 센서를 제어했다.
- 웹과 통신하는 기능이 없으므로, 클라우드가 아닌 라즈베리파이 로컬 환경에 서버를 구성하고 IoT 센서와 소통하도록 했다.