트러블슈팅: 실시간 통신을 위한 웹소켓 도입
문제 상황
초기 프로젝트에서는 클라이언트와 서버 간 HTTP 통신을 통해 데이터를 주고받도록 구현하였습니다. 그러나 카드 생성 등의 이벤트를 실시간으로 반영해야 할 필요성이 생겼고, HTTP 방식만으로는 이를 효율적으로 처리하기 어려웠습니다.
시도한 해결 방법
웹소켓을 도입하여 실시간 양방향 통신이 가능하도록 개선하였습니다.
- 서버에서 카드 생성 시 card.created 이벤트를 발생시키고, eventEmitter2와 @OnEvent 데코레이터를 활용하여 이벤트를 처리한 후, 웹소켓을 통해 클라이언트로 전송하였습니다.
- 클라이언트에서는 cardCreated 이벤트를 수신하여 데이터를 즉시 반영하도록 구현하였습니다.
결과 및 개선점
웹소켓을 통해 사용자는 카드 생성 이벤트를 실시간으로 확인할 수 있게 되었고, 여러 디바이스에서 동일한 알람을 관리하는 기능도 추가할 수 있었습니다. 이를 통해 사용자 경험이 크게 향상되었습니다.
배운 점 및 향후 계획
이번 경험을 통해 실시간 통신의 중요성을 체감하였으며, 웹소켓을 활용한 다양한 기능을 추가할 계획입니다. 앞으로도 실시간 상호작용이 필요한 서비스에서 웹소켓을 적극 활용할 예정입니다.