SSAFY 8기 자율 프로젝트 우수상 🏆
- 기획 배경
- 타겟 유저
- 프로젝트 소개
- 사용 기술
- 팀원 소개
기존의 정적인 퀴즈 풀이 방식에서 벗어난 동적인 게임이 추가된 새로운 퀴즈 플랫폼!
기본적으로 회원가입한 유저만 템플릿을 생성, 퀴즈방을 열 수 있습니다.
호스트가 소캣서버에서 핀번호와 퀴즈정보를 요청하게 됩니다. 이때 카프카를 통해 방 정보를 레디스와 마리아 디비에 업데이트 해줍니다. 그리고 소켓서버를 열게됩니다.
참여자가 방에 참여하게 되면 연결을 하고 메시지를 구독해 퀴즈방에 들어온 참가자의 목록을 받을 수 있습니다.
퀴즈가 진행되면서 참여자들이 문제를 풀고 소켓 서버에 제출할 때마다 카프카에 관련 정보가 든 메시지가 쌓이게 되고 채점서버에서 쌓인 데이터를 가져와 채점을 하고 레디스에 결과를 반영합니다. 그리고 해당 방의 모든 채점이 끝나면 소켓서버에 알리고 소켓서버는 결과를 유저와 호스트에 전달합니다.
퀴즈가 끝나면 카프카에게 퀴즈 종료 메세지를 보내고 현재 세션에 저장되어있는 퀴즈결과 정보를 계산해서 로그디비에 report로 저장하게 됩니다. 그러면 유저는 레포트를 볼 수 있읍니다.
카카오, 구글 로그인을 지원합니다. 소유하고 있는 템플릿을 보거나 레포트를 확인할 수 있는 마이페이지로 이동할 수 있습니다.
드래그 앤 드롭으로 퀴즈의 순서를 수정할 수 있습니다.
주관식 문제에는 중복답안을 입력할 수 있습니다.
답변 및 문제의 유효성 체크를 진행해줍니다.
유효성 검사가 완료되면 온전한 템플릿으로 표시해줍니다.
웹소켓 비동기 처리에 중점을 두고 개발을 하였습니다. 반응형 웹을 구현하여 모바일, 웹 모든 환경에 최적화된 서비스를 제공하였습니다. 그리고 컴포넌트를 효율적으로 구분하였습니다.
대용량 트래픽 처리에 중점을 두고 개발하였습니다. 쿠버네티스와 카프카를 활용하여 동시에 많은 양의 데이터를 처리하였습니다.