로그인 한 유저 기준
account 로 넘어가기 전 order 상태의 매수 & 매도 주문이 후에 체결되었을 경우, 사용자에게 매도 & 매수 알람 전송
알람 타입 enum 으로 관리
웹소켓과 폴링만 알고있었는데, 찾아보니 SSE 방식을 통해 구현하는 것이 좋을 것 같았다. 찾아보면서 정리한 내용이다.
웹 소켓과 SSE 방식 차이 알아보기
SSE 방식이란?

SSE (Server-Sent Events)
SSE는 서버에서 클라이언트로 일방향 데이터를 지속적으로 전송하며, 클라이언트는 HTTP 요청을 통해 서버와 연결을 맺고, 연결되어있는 동안 단방향으로 클라이언트에게 데이터를 전송한다.

SSE는 서버쪽에서 클라이언트로 실시간으로 데이터를 보내준다.
동작 방식이 웹 소켓에 비해 단순하다.
1. 클라이언트가 서버에 요청을 보낸다
2. 서버는 이를 확인하고 클라이언트에게 ok 사인을 보낸다.
3. 클라이언트는 서버에서 메세지를 수신할 준비를 한다.
4. 서버는 정해진 이벤트가 있을 때 마다 클라이언트에게 메세지를 보낸다.
단방향 통신이다. 클라이언트는 서버의 메세지에 응답을 하지 않고, 메세지가 도착할 떄마다 반응하며 작업을 수행하게 된다.
2. 웹소켓 방식
Web Socket은 클라이언트와 서버 간의 수명이 긴 단일 연결을 통해 양방향 통신 채널을 제공한다.
실시간 양방향 통신을 위한 기술로 양방향 통신으로 연결이 이루어지면 클라이언트가 요청하지 않아도 서버의 데이터를 받을 수가 있다.
한번 연결이 이루어지면 클라이언트와 서버가 서로 원할 떄 데이터를 송수신할 수 있다.
클라이언트와 서버의 연결은 HTTP 요청으로 이루어진다.

웹소켓 동작 과정
1. Opening Handshake
2. Data transfer
3. Closing Handshake
여기서 handshake란 정상적인 통신을 하기 전에, 일련의 과정을 거쳐 연결을 성립시키는 것
HTTP와 같이 연결 후 끊어버리는 것이 아니라 연결 후 계속적으로 Connection을 지속하므로 연결하는데 필요한 불필요한 비용을 제거할 수 있다.
정리해보면 ?
SSE는 Websocket에 비해 단방향이지만, HTTP에서 직접 지원하는 스펙으로서 에러를 처리하기 용이하다. 한 방향으로 서버에서 클라이언트로 데이터를 전송할 떄 유용하다.
WebSocket은 양방향, Full- Duplex이며 자체적으로 지원하는 에러 처리 방식이 없어 개발자가 예외처리 로직을 직접 구현해야 한다. 서버와 클라이언트가 계속해서 무언가를 주고받아야하는 채팅 등을 구현할 때 유용하다.
실시간 알림 기능의 경우 서버에서 클라이언트에 데이터를 보내주기만 하면 되기 떄문에, 양방향 통신까지는 필요하지 않는 것 같다.
웹소켓보다 가벼운 SSE 방식을 사용해서 구현 하려고 한다.
'project' 카테고리의 다른 글
| [프로젝트] 댓글 조회시 N+1 문제 해결, 성능 비교 (0) | 2025.11.26 |
|---|---|
| [프로젝트] 주식 체결 알림 기능 추가 - 2 (1) | 2025.01.23 |