Django Channels(websocket)를 이용한 실시간 퀴즈 프로그램 실시간으로 영상에 송출되는 문제로 Admin이 직접 컨트롤하며 퀴즈가 진행되는 프로그램
FrontEnd : 김효진, 박성은
BackEnd : 안정현, 정재유(PM)
Python
Django
Postgresql
Notion
Git
GitHub
프로젝트는 Agile형식으로 진행되었습니다.
1~2주차는 스프린트는 적용할 기능 학습을 목적으로 두고 진행하였으며
3주차에는 전반적인 기능 유저입장과,퀴즈송출,어드민관리,통계부분
4주차에는 QA진행하고 배포하고 발표준비 하는방식으로 진행되었습니다.
프로젝트를 시작하기 전 굉장히 간단해 보이고 쉬울 것 같은 프로젝트여서 솔직히 금방 끝날줄 알았다.
Websocket이라는 새로운 기능을 적용하는데 필요한 공부시간과
1~2주차는 Django에 Websocket을 이용할 수 있게 해주는 channels라는 라이브러리를 학습에만 몽땅 시간을 쏟았다 처음엔 정말 어려웠다
이게 어떻게 작동 되는지 많은 강의들과 공식문서를 참조 하여 우선 기본적인 채팅기능을 구현해보고 나서
채팅기능을 응용하여 어드민이 요청을하는 메시지를 받으면 데이터를 불러오는 형식으로 개발을 진행 하였다.
또 대량의 트래픽 처리를 하려면 Nosql인 redis를 적용하여 퀴즈 문제들을 캐싱 해서 적용해야 했으나, Websocket 자체를 이해하고 적용하는데 시간을 너무 지체해서
아쉽지만 대용량 트래픽 처리는 과감히 포기하고 그냥 Websocket을 이용하여 요청을 주고받는 형태로만 개발을 하게 되었다.
실시간으로 다수의 유저와 통신하는 퀴즈 프로젝트, Websocket을 이용 하는 새로운 경험을 할 수 있었다.
어떤 플로우로 흘러가는지 명확하게 Zeplin을통해 확인 할수있었고 모호하거나 궁금한 부분에 댓글을 달아서 소통하고 실제 회사에선 Zeplin으로 디자이너들과 협업하고 어떻게 소통하는지 알 수 있었다.
Websocket을 이용한 도전 해보고 싶은 새로운 아이디어의 프로젝트들을 생각해볼 수 있었다.
프론트엔드와 개발을 할 때, 통신을 할 때 회의를하고 회의록을 작성하고 API정의서를 작성하면서 모든 작업들을 문서화가 가능하다면 문서화 하는것이 중요하다는 것을 깨닳았다.
프로젝트가 끝나고 나는 어떤 팀원이였는가 라는 생각을 했다.
완벽하진 않았지만 함께 웃으며 회의했고, 웃으면서 코드를 치고
새로운 기술 학습에 각자 필요한 강의나 정보들을 찾다보면 공통된 부분의 정보도 공유하고 재밌게 일했고 또 재밌었던 사람이였다고 생각한다.
팀원들도 그렇게 생각 해준다면 정말 고마울 것 같다.
다들 처음 접했던 기술스택들 PM이신 재유님은 문서 작성하며 심지어 node.js로 진행하시고 참 힘드셨을 텐데 고생하셨습니다.
완벽하진 못 했지만 프로젝트가 끝나면 늘 그렇듯 뭔가 생각보다 할만 했다 라는 생각이 들긴한다.
항상 새로운 것을 공부하고 시작하는게 점점 익숙해지고 있는건가? 라는 생각이든다.