WeQuiz의 핵심 기능 중 하나인 스터디 그룹 내 실시간 퀴즈 기능
을 구현하기 위해 크게 다음과 같이 4가지 방법을 고민하였습니다.
firebase의 fcm
역시 실시간으로 푸시 알림을 받아 처리할 수 있지만, 서버 구현을 필요로 하기 때문에 firebase에서 제공하는 fireStore
와 realTime database
중 선택을 하고자 하였습니다.
실시간 기능을 구현할 때 가장 많이 사용되는 기술 중 하나가 webSocket
입니다. 저희 팀 역시 webSocket
을 가장 먼저 고려하였으니, webSocket
은 서버 구현을 필요로 합니다. 저희 팀원 모두 이번 프로젝트를 진행하며 안드로이드 구현에 집중하고자 하였고, 직접 서버를 구현하지 않고 실시간을 구현할 수 있는 다른 방법을 찾아 보게 되었습니다.
realTime dataBase의 경우, 공식 문서를 확인해본다면 내부적으로 WebSocket을 사용하여 실시간 기능을 제공하는 것을 알 수 있습니다.
fireStore 역시 데이터 동기화를 제공하고 있으며, 외부 문서를 통해서 데이터 동기화를 위해 webSocket을 적용하고 있다는 것을 확인할 수 있었습니다.
공식 문서에서도 realTime dataBase보다 fireStore를 권장하고 있습니다. 하지만 저희만의 근거가 필요하다 생각해 다음과 같이 표를 통해 두 플랫폼을 비교해 보았습니다.