Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- css
- 개발자 취업
- Grafana
- 99클럽
- 면접(java
- Java
- wil
- 회고
- 코딩공부
- GIT
- Til
- 이진 탐색(binary search)
- 항해99
- 코딩문제
- 배열
- 프로그래머스
- aop
- 코딩
- 자료구조
- ArrayList
- 메서드
- Entity
- github
- Spring
- 코딩테스트 준비
- 정렬 알고리즘(sort algorithm)
- 자바
- CS
- HTML
- cs 공부)준비
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240402 Polling, Long Polling, Websocket, SSE 본문

Polling
- 클라이언트가 평범한 HTTP Request를 서버로 계속 요청해 이벤트 내용을 전달받는 방식이다.
- 가장 쉬운 방식이지만 클라이언트가 지속적으로 Request를 요청하기 때문에 클라이언트의 수가 많아지면 서버의 부담이 급증한다.
- HTTP Request Connection을 맺고 끊는 것 자체가 부담이 많은 방식이고, 클라이언트에서 실시간 정도의 빠른 응답을 기대하기 어렵다.
- 일정하게 갱신되는 서버 데이터의 경우 유용하게 사용할 수 있는 방법이다.
Long Polling
- Long Polling(롱 폴링)은 클라이언트가 서버에게 요청을 보내고, 서버가 즉시 응답하지 않고 일정 시간 동안 연결을 유지한 채로 대기하다가 새로운 데이터 또는 이벤트가 발생하면 응답을 반환하는 방식의 통신 기법이다.
- 일반 polling 방식보다는 서버의 부담이 덜하지만 클라이언트로 보내는 이벤트들의 시간간격이 좁으면 polling과 크게 다르지 않게 된다.
- 다수의 클라이언트에게 동시에 이벤트가 발생하면 Long Polling은 서버에 대한 부하를 유발할 수 있고, 연결을 유지하는 동안 클라이언트와 서버 간의 리소스 소비가 발생한다.
Websocket
- HTML5 표준 기술로, 클라이언트와 서버 간의 양방향 통신을 열고, 실시간으로 데이터를 교환하는 방식이다.
- 단방향 통신 : TV, 라디오
- 지연 시간이 낮고 효율적이다.
- 단일 TCP 연결을 유지하기 때문에 메모리 및 네트워크 사용이 효율적이다.
- open connection 을 유지해줘야 하기 때문에 따로 chat server 를 만들어서 관리한다.
웹소켓의 동작 방식
- 웹소켓은 양방향 통신이기 때문에 연속적인 데이터 전송의 신뢰성 보장을 위해 Handshake 과정을 진행한다.
- 기존의 다른 TCP 기반의 프로토콜은 TCP layer에서의 Handshake를 통해 연결을 수립하는 반면, 웹소켓은 HTTP 요청 기반으로 Handshake과정을 거쳐 연결을 수립한다.
- Handshake 과정을 통해 연결이 수립되면 응용 프로그램 계층 프로토콜이 HTTP에서 웹소켓으로 업그레이드된다.
→ 업그레이드가 되면 웹소켓 연결이 닫힐 때 까지 웹소켓 프로토콜을 사용하여 데이터를 주고 받는다. (새로고침이나 창 닫기 등의 이벤트 발생 시 닫힌다.)
HTTP Server-Sent Events (SSE)
- HTML5 표준 기술로, 서버에서 클라이언트로 단방향 연결을 열고 새로운 데이터를 이벤트 스트림 형식으로 전송하는 방식이다.
- 웹소켓의 역할을 비슷하게 하면서 더 가볍다.
- 재접속 처리가 자동으로 지원된다.
- 양방향 통신을 지원하지 않는다.
참고 자료
- https://dev-gorany.tistory.com/212
- https://tecoble.techcourse.co.kr/post/2021-08-14-web-socket/
- https://dev-gorany.tistory.com/212
'프레임워크 > spring' 카테고리의 다른 글
[TIL]240412 Spring Scheduler (0) | 2024.04.12 |
---|---|
[TIL]240409 Dirty Checking (0) | 2024.04.09 |
[TIL]240401 Websocket(웹소켓) (0) | 2024.04.01 |
[TIL]240326 Dto의 toEntity (0) | 2024.03.26 |
[TIL]240321 엔티티(Entity) 연관관계 매핑(2) (0) | 2024.03.21 |