[프로젝트] 주식 체결 알람 기능 추가 - 1

2025. 1. 15. 02:33·project

로그인 한 유저 기준

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
'project' 카테고리의 다른 글
  • [프로젝트] 댓글 조회시 N+1 문제 해결, 성능 비교
  • [프로젝트] 주식 체결 알림 기능 추가 - 2
zioni
zioni
  • zioni
    jiwon's dev.log
    zioni
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • spring & java (13)
      • Algorithm (14)
      • PS (37)
      • project (3)
      • experience (1)
      • etc (6)
      • study (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    자바
    java
    백준2525
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
zioni
[프로젝트] 주식 체결 알람 기능 추가 - 1
상단으로

티스토리툴바