2023/05/04 (20:00)
역할
임진묵: 캘린더 메인화면
김지수: 연차/당직 로직
변창우: 회원가입, 로그인, 개인정보수정
김형준: 관리자 기능
<aside> 💡 전반적인 프로젝트 진행을 알기 위해 대략적인 설명을 작성해 주세요.
</aside>
이 프로젝트는 사용자들의 연차와 당직 요청을 관리하고, 관리자가 승인 또는 거절할 수 있는 시스템을 구축하는 것입니다. 주요기능에 대한 설명은 다음의 문서를 참고하시면 됩니다.
백엔드기능 명세 https://www.notion.so/daab3999f29f453cb8f925c9627f5273
API 명세 https://www.notion.so/API-009e0ee494394c61b949a925f245f02e
Q. 알람 기능 구현 관련
로그인 되어 있는 유저에게 실시간 알람을 어떻게 전달할 것인가? 어떤 방식을 선택해야 할지 고민이네요. 간단한건 폴링방식인거 같은데요.
웹소켓 (WebSocket): 웹소켓은 양방향 통신을 지원하는 프로토콜로, 서버와 클라이언트 간에 실시간 데이터 전송이 가능합니다. 웹소켓을 사용하면 알림 이벤트가 발생하자마자 서버에서 클라이언트로 알림을 전송할 수 있습니다.
서버 전달 이벤트(Server-Sent Events, SSE)를 사용할 수도 있습니다. SSE는 서버에서 클라이언트로 단방향 통신을 할 때 사용됨
폴링 (Polling): 폴링은 클라이언트가 주기적으로 서버에 알림을 확인하도록 요청하는 방식입니다. 서버는 요청을 받아 알림을 확인한 후, 응답으로 알림을 전송합니다. 폴링은 구현이 간단하지만, 실시간성이 떨어지고 통신 비용이 높을 수 있습니다.
롱폴링 (Long Polling): 롱폴링은 폴링의 변형으로, 클라이언트가 서버에 알림을 확인하도록 요청한 후 서버가 알림이 발생할 때까지 응답을 지연시키는 방식입니다. 알림이 발생하면 서버는 클라이언트에게 바로 알림을 전송합니다. 롱폴링은 실시간성이 폴링보다 높지만, 웹소켓에 비해 구현이 복잡하고 서버의 자원을 많이 사용할 수 있습니다.