Error rendering WebPanel: No renderer found for resource type: velocity Template contents: <meta name="ajs-keyboardshortcut-hash" content="$keyboardShortcutManager.shortcutsHash">
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동


  • Polling 

    Client 에서 Server로 주기적/반복적으로 Polling 하며 응답할 것이 없으면 빈 응답을 리턴
    (장점) 쉬운 구현 
    (단점)주기가 짧으면 부하 발생, 주기가 길면 실 시간성 떨어짐
    -  사용 에 : HTTP 통신간격이 충분한 곳(스포츠 경기 문자중계 - 10~20초 간격의 업데이트)
  • Long Polling

    Polling과 다르게 서버에서 응답할 데이터가 있을 때까지 요청을 유지하다 응답
    (장점) 부하가 적음, 좀 더 실시간으로 반응
    (단점) 데이터가 빈번한 상황에 맞지 않음, 동시 접속자 수가 많은 경우 서버부하가 있음
    - 사용 예 : 실시간에 가깝지만 동시접속에 제한이 있는 서비스(웹 기반 그룹채팅 - 데이터 변경시간이 짧음, 인원이 한정적)


  • HTTP Stream (+SSE)

        Clienet에서 Server로 요청을 끊지 않고 필요한 메시지를 계속 보내는 방식

       (장점) 메시지를 보내고 다시 연결하는 부담이 적음, 특별한 프로토콜/서버구현 필요 없음
       (단점) 클라이언트에서 서버로 메시지를 보내는 모델에 적합하지 않음
      - 사용 예 : 서버에서 단방향 데이터 전송, 실시간 업데이트(주식사이트-서버측 데이터를 실시간으로 받아옴, 뉴스피드)

         

Class ServerSentEvent<T>

    • Representation for a Server-Sent Event for use with Spring's reactive Web support. Flux<ServerSentEvent> or Observable<ServerSentEvent> is the reactive equivalent to Spring MVC's SseEmitter.
    • Spring Web MVC SseEmitter = Spring WebFlux Flux<ServerSentEvent>


  • Web Socket

    HTTP Handshke를 이후 Socket Connection을 통해 양방향 통신이 가능한 방식
    (장점) 80,443 포트를 이용 추가적인 방화벽 설정 없음, 기존의 연결에 발생되는 트래픽 없어짐
    (단점) 계속 연결이 되어있으므로 대역폭 소비가큼, 구현시 처리해야될 부분이 많음, 미지원 브라우저
    - 사용 예 : 실시간 양방향 전송 서비스(웹 기반 문서편집 서비스, 게임, 채팅)



참고 자료



  • 레이블 없음