[스프링] 스프링 WebSocket 설정 방법

이번 글에서는 스프링 프레임워크에서 WebSocket을 설정하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저, WebSocket을 사용하기 위해 Maven 또는 Gradle 프로젝트의 의존성에 spring-boot-starter-websocket을 추가해야 합니다.

Maven을 사용하는 경우:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

Gradle을 사용하는 경우:

implementation 'org.springframework.boot:spring-boot-starter-websocket'

2. WebSocket 구성

다음으로, WebSocket을 구성해야 합니다. 이를 위해 @EnableWebSocketMessageBroker 어노테이션을 포함한 구성 클래스를 생성해야 합니다.

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/ws").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/topic");
        registry.setApplicationDestinationPrefixes("/app");
    }
}

위의 코드에서는 /ws 엔드포인트를 설정하고, /topic을 구독하는 클라이언트에게 메시지를 브로드캐스트하는 데 사용됩니다.

3. 클라이언트 구현

마지막으로, 클라이언트는 JavaScript 또는 다른 언어를 사용하여 WebSocket을 연결하고 메시지를 주고 받을 수 있습니다.

var socket = new SockJS('/ws');
var stompClient = Stomp.over(socket);

stompClient.connect({}, function (frame) {
    stompClient.subscribe('/topic/public', function (message) {
        // 메시지 처리 로직
    });
});

function sendMessage() {
    stompClient.send("/app/sendMessage", {}, JSON.stringify({'message': 'Hello'}));
}

이제 스프링 프레임워크에서 WebSocket을 설정하는 방법에 대해 알게 되었습니다. WebSocket을 사용하여 실시간 양방향 통신을 구현할 수 있습니다.

참고 문헌: