웹소켓 연결 유지 확인
오버헤드 : 시스템 자원을 사용하거나 데이터를 처리할 때 추가로 발생하는 비용 또는 부하를 의미
HTTP오버헤드 : HTTP는 요청마다 헤더, 쿠키, 인증 정보 등을 포함해 전송하는데 데이터의 크기가 작을수록 헤더의 비율이 상대적으로 커져 오버헤드가 커짐
WebSocket오버헤드 : 웹소켓은 HTTP와 비교할 때 초기 연결을 유지하면서 추가적인 요청이나 응답없이 데이터를 주고 받으니 헤더를 반복해서 보내는 오버헤드가 적은 편임

(1) 스프링부트 의존성 추가
//Gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-websocket'
}
(2) WebSocketConfig 설정
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
private final WebSocketHandler webSocketHandler;
public WebSocketConfig(WebSocketHandler webSocketHandler) {
this.webSocketHandler = webSocketHandler;
}
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// WebSocket 핸들러를 등록하고 엔드포인트 설정
registry.addHandler(webSocketHandler, "/ws").setAllowedOrigins("*");
}
}
(3) WebSocketHandler 설정
@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 수신한 메시지 출력
System.out.println("Received message: " + message.getPayload());
// 클라이언트에게 응답 메시지 전송
session.sendMessage(new TextMessage("Server received: " + message.getPayload()));
}
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println("Client connected: " + session.getId());
}
}
(4) 테스트한 값 확인하기

