본문 바로가기
Spring

WebSocket 라이브러리 (dependenc)

by sehunbang 2025. 2. 27.

 

WebSocket을 활용한 실시간 화면 공유 프로그램 구현 시 사용하는 라이브러리

웹소켓을 활용한 실시간 화면 공유 프로그램을 작성하면서 WebRTC를 알게 되었고, 관련하여 자주 사용되는 라이브러리 두 가지 였습니다:

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

spring-boot-starter-websocket

spring-boot-starter-websocket은 Spring Boot 프로젝트에서 WebSocket을 쉽게 사용할 수 있도록 도와주는 스타터 패키지입니다. 이 라이브러리를 사용하면 WebSocket 서버를 설정하고, 클라이언트와 실시간 양방향 통신을 간편하게 구현할 수 있습니다.

  • WebSocket 서버 구축: WebSocket 엔드포인트를 만들어 클라이언트와 실시간 양방향 통신을 할 수 있습니다.
  • STOMP 프로토콜 지원: spring-messaging을 통해 WebSocket을 메시징 시스템처럼 활용할 수 있습니다. STOMP(Simple Text Oriented Messaging Protocol)를 사용하면 WebSocket을 메시지 브로커와 연동하여 확장성 있는 시스템을 만들 수 있습니다.
    •  
  • WebSocket 핸들러 제공: TextWebSocketHandler 또는 BinaryWebSocketHandler를 사용하여 메시지를 처리할 수 있습니다.
  • SockJS 지원: WebSocket을 지원하지 않는 브라우저에서도 사용할 수 있도록 SockJS를 지원합니다.
  • Spring Security와 통합: WebSocket 연결 시, Spring Security와 통합하여 보안 설정을 함께 사용할 수 있습니다.

spring-websocket

spring-websocket은 Spring Framework의 WebSocket 기능을 제공하는 기본 모듈입니다. 이 모듈은 Spring Boot 프로젝트가 아닌 일반 Spring Framework 기반의 프로젝트에서 WebSocket을 사용할 때 필요합니다.

  • WebSocket 서버 및 클라이언트 기능: WebSocket 서버 및 클라이언트 기능을 제공하여, 실시간 양방향 통신을 가능하게 합니다.
  • Spring Boot 통합 지원 없음: spring-boot-starter-websocket과는 달리, spring-websocket은 Spring Boot에 최적화된 설정을 제공하지 않으므로, 별도로 Spring Boot 환경에서 사용하려면 수동으로 설정해야 합니다.
  • 추가 의존성 필요: spring-messaging 등과 같은 추가 라이브러리를 수동으로 추가해야 할 수 있습니다.

차이점 요약

spring-boot-starter-websocket Spring Boot 프로젝트에서 WebSocket을 쉽게 사용할 수 있도록 해주는 스타터 패키지. spring-websocket을 포함하고 Spring Boot의 **자동 설정(Auto Configuration)**을 제공하여 설정이 간편함.
spring-websocket 일반 Spring Framework 프로젝트에서 WebSocket을 사용할 때 필요한 기본 모듈. 추가로 spring-messaging과 같은 의존성을 수동으로 추가해야 할 수 있음.

 

요약

  • Spring Boot 프로젝트에서는 **spring-boot-starter-websocket**을 사용하여 WebSocket을 쉽게 설정하고 확장할 수 있습니다.
  • 일반 Spring Framework 프로젝트에서는 **spring-websocket**을 사용하여 WebSocket을 구현하며, 필요한 추가 라이브러리를 수동으로 관리해야 합니다.
  • WebSocket만 필요하면 TextWebSocketHandler 기반으로 개발하고, STOMP 기반 메시징이 필요하면 @EnableWebSocketMessageBroker와 STOMP를 활용할 수 있습니다.

'Spring' 카테고리의 다른 글

Spring POJO (Portable Service Abstraction)  (0) 2024.04.26
캐시 매니징  (0) 2024.04.04
Redis 동시성 제어 (수정중)  (1) 2024.03.22
Redis (Cashing 캐싱/성능 높히기)  (0) 2024.03.21
Redis 장점과 설치  (0) 2024.03.21