[스프링] 스프링과 React를 사용한 웹 소켓 통신 구현

웹 소켓(WebSocket)은 클라이언트와 서버 간의 실시간 양방향 통신을 제공하는 프로토콜입니다. 이번 블로그에서는 스프링(Spring) 프레임워크와 React를 사용하여 웹 소켓 통신을 구현하는 방법에 대해 알아보겠습니다.

목차

  1. 스프링 백엔드 구현
  2. React 프론트엔드 구현
  3. 결론

1. 스프링 백엔드 구현

먼저, 스프링을 사용하여 웹 소켓 서버를 구현해보겠습니다. 스프링에서는 spring-websocket 모듈을 사용하여 웹 소켓을 쉽게 구현할 수 있습니다.

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(new SocketHandler(), "/socket")
                .setAllowedOrigins("*");
    }
}

public class SocketHandler extends TextWebSocketHandler {
    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        // 웹 소켓 메시지 처리 로직 구현
    }
}

위 코드는 /socket 엔드포인트로 웹 소켓 연결을 수락하고, SocketHandler 클래스를 통해 웹 소켓 메시지를 처리하는 방법을 보여줍니다.

2. React 프론트엔드 구현

이제 React를 사용하여 웹 소켓 클라이언트를 구현해보겠습니다. React 애플리케이션에서는 websocket 패키지를 사용하여 웹 소켓을 연결하고 메시지를 주고받을 수 있습니다.

import React, { useEffect } from 'react';
import WebSocket from 'websocket';

const MyComponent = () => {
  useEffect(() => {
    const ws = new WebSocket('ws://localhost:8080/socket');
    ws.onopen = () => {
      console.log('웹 소켓 연결 성공');
    };
    ws.onmessage = (event) => {
      console.log('받은 메시지: ', event.data);
    };
  }, []);

  return <div> 소켓 통신 예제</div>;
};

export default MyComponent;

위 코드는 React 컴포넌트에서 websocket 패키지를 사용하여 웹 솼켓 연결을 설정하고, 메시지를 수신하는 방법을 보여줍니다.

3. 결론

이렇게 스프링과 React를 사용하여 웹 소켓 통신을 구현할 수 있습니다. 웹 소켓을 통해 실시간으로 데이터를 주고받을 수 있는 다양한 기능을 구현할 수 있으며, 이를 통해 사용자 경험을 향상시킬 수 있습니다.

이상으로, 스프링과 React를 사용한 웹 소켓 통신 구현에 대해 알아보았습니다.

참고 자료