오늘은 Ajax같은 비동기식 통신말고 다른걸 알아보자


  • 실시간 채팅 구현도 안하는데 .. 왜 소켓과 Sse와 같은 통신 기술이 필요한거야?
    • 실시간 채팅과 같이 서버와 서버간의 연결을 도와주어 다른 유저들의 Action을 고려해야 할 상황이 오는데 -> 우리 프로젝트에서는 타인의 내 게시물에 대한 Action을 관찰하거나 state를 볼 수 있도록 실시간으로 Action들을 받아 올 수 있도록 Socket과 같은 통신 개념이 필요하게 되었다.
  • 삽질의 여정에 앞서 철저한 자료조사

EDD coie117님의티스토리 air.log님의벨로그 Baeldung

  • Spirng에서 gradle을 사용하여 Socket을 구현한 예제가 별로 없다.. 죄다 마빈……. -> 그래서 생각하게 되었다. ! 통신의 종류는 Socket이 전부일까?

그렇지않다!

Websocket VS Server-Sent-Events

  • 둘의 가장 큰 차이는 방향성이다.
  • 우리 웹의 경우에는 사용자간 서로가 연결되거나 사용자와 서버간의 실시간 소통은 필요하지않다.
  • Sse 는 서버단에서 클라이언트로 연결되는 단방향 구조다.
  • 하지만 최대 접속수가 http -> 6 / HTTP2-> 100라는 접속자의 규제가 존재한다. -? 대용량 서비스를 제공한다면 뇌를 빼고 소켓을 사용하자.
  • 신기하게도 Sse는 HTTP라는 프로토콜을 이용하고, Scoket은 Websocket 이다.

폴링? 같은 주기적인? 통신방법이 더 있는데 효용가치가 없는지 자료도, 업데이트도 적은 느낌이다. 서버에서 기용한다면 서버비가 감당이 되지 않는다!

  1. Websocket 을 구현하기 위해 마빈레포를 뒤졌다.
  2. 쓸만한 버전을 탐색하고 연결하고 참고가 될 만한 doc를 뒤졌는데, Gradle 기반으로 작성된 글이 …..너무 작았다.

Stop!

그럼 SSe 쓰지 뭐,

  • SSe를 사용하기 위해 configration, Service logic을 internal, Notification, boardNotification으로 제작했다 ,
  • Create SSe를 연결 했는데 , 참고중이던 프로젝트는 Sse를 버리고 firebase의 FMS를 사용하더라, Delte……….All

원점으로 돌아가서 내일은 gradle기반으로 작성된 websocket을 다시 찾아봐야겠다. socket의 개념은 잡았는데, 실제로 구현된 시뮬레이터가 있다면, 혼자 할 수 있을까…

Server <- User = Connction - - > live on find Activity - - > !issue ====> request Where =====> response id,message ====>css

흐름은 이런데… 으어,………… 내일 마저 해야겠다. 20일간의 TIL 오디갔냐………….ㅠㅠㅠㅠㅠ