이번 칸반보드 팀프로젝트에서 필수 구현 중 내가 맡은 댓글 CRUD를 빠르게 마쳤다. 그리고 처음으로 웹 알림 기능을 도전했다. 칸반 보드 내 카드에 변화가 생기거나, 댓글이 달릴 경우, 알림이 가는 기능이다. 사실 알림 기능에 대해 조금도 알지 못해서 처음부터 공부해나가는 느낌으로 공부하기 시작했다. 그렇게 알림기능 구현에 웹소켓을 이용한다는 것을 알게되었다.
기존 http 요청이 아닌 웹소켓을 사용하는 이유는 무엇일까?
1. 실시간 양방향 통신
웹소켓은 클라이언트와 서버 간에 지속적인 연결을 유지하여 양방향 통신을 가능하게 한다. 이는 사용자가 알림을 즉시 받을 수 있게 하며, 실시간 상호작용을 필요로 하는 기능에 적합하다. (HTTP는 클라이언트가 요청을 보내고 서버가 응답을 반환하는 단방향 통신 모델.)
2. 효율적인 리소스 사용
HTTP 요청-응답 모델은 각 요청마다 새로운 연결을 설정해야 하며, 이는 네트워크 오버헤드와 레이턴시(지연시간)를 증가시킨다. 웹소켓은 한 번 연결이 설정되면 지속적으로 데이터를 주고받을 수 있어 연결 설정에 드는 비용이 줄어들고, 리소스 사용이 효율적입니다.
3. 서버 푸시 기능
웹소켓을 사용하면 서버가 클라이언트에 직접 데이터를 푸시할 수 있다. 이것은 클라이언트가 지속적으로 서버에 상태를 확인하지 않아도 된다는 것을 의미한다. 예를 들어, 누군가 댓글을 남기거나 카드를 변경할 때, 서버가 즉시 관련 사용자에게 알림을 보낼 수 있다.
크게 지속적인 연결을 유지한다는 특징과 양방향 통신이라는 장점으로 실시간 알림 기능 구현으로 웹소켓을 선택하기로했다. 이번 기회로 새로운 기술을 배우고 추후, 웹소켓으로 많이 이용하는 채팅 기능까지 시도해보려 한다.
'개발 기초 다지기' 카테고리의 다른 글
distinctAlias 문제 (쿼리 빌더) (0) | 2024.07.22 |
---|---|
웹소켓 웹 알림 기능 구현(할당받은 멤버에게만) (0) | 2024.07.16 |
칸반보드 프로젝트 LexoRank 트러블 슈팅 (0) | 2024.07.11 |
NestJS 서버 포트 충돌 문제 해결(기존 포트 프로세스 죽이기) (0) | 2024.07.10 |
공연 예매하기 (nest.js transactionalEntityManager) (0) | 2024.07.09 |
댓글