반응형

개요

프로젝트에서 SSE를 사용해 실시간 알림 기능을 구현하였다. 가볍게 스쳐 지나갔지만 다시 보니 조금 더 공부해보고 싶어서 찾아봤다. SSE의 장단점, WebSocket의 장단점을 비교하여 SSE를 사용이 적합했던 이유를 작성.

 

1. SSE

서버로부터 보낸 메시지를 클라이언트 측에서 받을 수 있는, 단방향 메시지를 지원하기 위한 웹 기술이다. 주로 웹 애플리케이션에서 실시간 업데이트를 제공하는 데 사용되며 서버에서 클라이언트로 데이터를 전송할 수 있게 해 주며, 클라이언트는 이를 수신하여 웹 페이지의 동적 업데이트나 실시간 정보 표시에 활용할 수 있다. 이벤트 스트림(Event Stream) 형태로 데이터를 보내므로, 연결이 한 번 만들어진 후 서버에서 주기적으로 데이터를 전송할 수 있다.

SSE

 

1.1 SSE 장점

- 간편한 구현 : SSE는 기본적인 HTTP프로토콜을 사용하기 때문에 구현이 비교적 간단하다. 웹 서버 측에서 특별한 라이브러리나 추가 설정 없이도 사용이 가능하다.

- HTTP와의 호환성 : SSE는 HTTP/HTTPS위에서 동작하므로, 대부분의 네트워크 환경에서 문제없이 사용할 수 있다. 또한 HTTP와의 호환성으로 인해 방화벽이나 프록시 서버를 통과하는데도 어려움이 적다.

- 간편한 이벤트 처리 : 이벤트 스트림 형태로 데이터를 수신하기 때문에, 클라이언트 측에서 데이터를 이벤트로 처리하기가 용하다. 새로운 데이터 도착시 이를 처리하는 메커니즘이 직관적이다.

 

1.2 SSE 단점

- 크기가 제한적 : payload의 크기가 제한적이여서 많은 데이터를 담을 수 없다.

- 브라우저 호환성 : 오래된 버전의 브라우저에서는 SSE를 지원하지 않을 수 있다.

 

 

 

2. WebSocket

실시간 양방향 통신을 위한 프로토콜이며, 이를 사용하는 웹 애플리케이션은 클라이언트와 서버 간에 지속적인 연결을 유지하고 양쪽에서 데이터를 주고받을 수 있다. 

WebSocket

2.1  WebSocket 장점

- 최대 동시 접속 수가 많다.

- 양방향 통신이 가능하다.

- 대부분의 브라우저에서 지원한다.

 

2.2 WebSocket 단점

- 배터리 소모량이 크다.

- 연결이 끊기면 자동 재접속이 되지 않는다.

 

 

결론

SSE는 단방향 통신으로, 데이터 양이 적고 실시간 업데이트가 필요한 경우에 적합하다. 따라서 알림과 같은 간단한 실시간 업데이트를 위해서는 SSE를 사용하는 것이 비교적 간단하며 리소스 사용량도 적다. WebSocket은 양방향 통신이 가능하고 대량의 데이터를 다루기에는 적합하지만, 추가적인 복잡성과 자원소모량이 많다. 따라서 단순한 실시간 업데이트나 알림 구현에는 SSE가 더 적합하다고 생각한다.

반응형

+ Recent posts