Help Todo 서비스는 팀 단위 투두리스트 서비스이다.
같은 팀에서 투두리스트를 수정할 경우, 다른 팀원들의 투두리스트를 수정된 데이터로 업데이트해주어야 한다.
나는 이 부분을 웹 소켓의 Pub/Sub 방식으로 해결하려고 했다.
구독, 발행 방식을 구현하는 중, SSE라는 걸 알게 되었고, 해당 데이터 노티 기능은 SSE로 구현하는 것이 적합한거 같아 SSE에 대해 찾아보았다.
SSE란 ?
Server-Sent-Event의 약어로, 클라이언트가 HTTP를 통해 서버에서 자동 업데이트를 받을 수 있도록 하는 서버 푸시 기술이다.
SSE ↔️ 소켓
- 방향성
- SSE는 서버에서 클라이언트로 데이터를 전송해주는 단방향 푸시 기술이다.
- 소켓은 서버와 클라이언트가 서로 데이터를 주고 받을 수 있는 양방향 기술이다.
- 따라서, 채팅처럼 양방향 관계가 필요할 때는 소켓을 선택하고, 간단한 노팅같은 단방향 관계가 필요할 때는 SSE를 선택하면 좋을 것 같다.
- 부하
- 소켓은 서버와 클라이언트가 서로 데이터를 주고 받을 수 있도록 양방향 연결을 유지해줘야 하지만, SSE는 서버에서 클라이언트로의 단반향 연결만 일정 시간 유지시켜준다.
따라서, SSE가 더 가볍다.
- 소켓은 서버와 클라이언트가 서로 데이터를 주고 받을 수 있도록 양방향 연결을 유지해줘야 하지만, SSE는 서버에서 클라이언트로의 단반향 연결만 일정 시간 유지시켜준다.
- 프로토콜
- 웹 서비스의 경우, 요즘 소켓은 WS라는 웹소켓 프로토콜을 주로 이용한다.
- SSE는 기본적인 HTTP 혹은 HTTP2 프로토콜을 이용한다.
'활동들~ > Help Todo (개인프로젝트)' 카테고리의 다른 글
[문제 기록] NEXT.JS(SSR) Error: Text content does not match server-rendered HTML. (0) | 2023.04.02 |
---|---|
react JWT 토큰 저장, 가져오기 (0) | 2023.03.23 |
[문제 기록] 클라이언트에 응답 시, JPA 양방향 객체 무한 참조 (0) | 2023.03.21 |
[에러] Builder 패턴 중 NullPointExepction (0) | 2023.03.21 |
[개발 기록] 백엔드 Spring Security 리팩토링 (0) | 2023.03.20 |