<aside>
💡 여기 적어두면 한글파일로 옮겨서 제출할게
</aside>
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5177f460-7ba5-40d3-9078-4673d293fbf0/_.pdf
프로젝트 개요
대덕소프트웨어마이스터고등학교 학생들을 위한 완전 익명성을 제공하는 온라인 커뮤니티. 게시글 작성 시 페이스북 페이지 '대마고 대나무숲'에도 글이 연동되어 SNS를 통해 자신의 생각을 다른 사람들과 공유할 수 있다. 서비스 운영자를 선정하여 올바른 커뮤니티 문화를 정착해 나가며, 페이스북 커뮤니티 규정을 준수한다는 특징이 있다.
참여인원
요약서
최종목표
사용자에게 멀티플랫폼을 지원하고자 하는 프로젝트의 특성에 발맞춰 실제 production 환경에 최종 배포하고 지속적인 서비스 운영을 목표로 한다.
개발내용
- Web, Android, iOS의 멀티 플랫폼을 제공하여 대마고 대나무숲 서비스에 대한 사용자의 접근성을 강화하였다.
- 본 애플리케이션에서 작성한 게시글 작성 요청을 관리자가 승인 시 Facebook Pages API를 이용하여 '대마고 대나무숲' 페이스북 페이지에 자동으로 게시글이 업로드 된다.
- Google Firebase의 기능 중 FCM(Firebase Cloud Messaging)을 사용하여 웹, 안드로이드, iOS에 Push Notification을 전송한다. 이 기능을 통해 게시글 업로드 요청의 승인 여부를 게시자에게 알릴 수 있으며, 공지사항 및 게시글 업로드 소식을 빠르게 전달할 수 있다.
- RBAC(Role Based Access Control)을 구현하여 관리자 및 익명 사용자의 권한을 구분한다. 관리자를 별도의 엔티티로 분할하지 않음으로써 비즈니스 로직의 복잡성을 감소시킬 수 있다. 또한 별도의 Admin Controller를 구현하지 않아도 되어 더욱 더 간결한 코드 구조의 수립이 가능하다.
- 기존 상태 유지를 보장해야 하는 세션 인증 방식에서 벗어나기 위해 JWT 토큰 인증 방식과 토큰 순환 프로세스를 도입했다. 이를 통해서 서버 메모리 사용량을 최적화하고 사용자 인증을 위한 복잡한 절차를 간소화할 수 있었다.
개발결과
- 서버에서 사용자에게 Push Notification을 전송하기 위해서는 FCM(Firebase Cloud Messaging) API를 호출해야 한다. FCM API에서 응답을 받을 때 까지 병목이 발생해 반환 속도에 지장을 주었는데, 비동기 처리를 수행하도록 하여 이를 해결하였다.