자바&스프링 5

[Spring] WebSocket & STOMP로 채팅 구현하기 (4)

프론트로 넘어가기 전 JWT 유효성 검사를 위해 configureClientInboundChannel를 사용했습니다.다시 WebSocketConfig로 돌아가서... WebSocketConfig@Configuration@EnableWebSocketMessageBroker@RequiredArgsConstructorpublic class WebSocketConfig implements WebSocketMessageBrokerConfigurer { private final JwtUtil jwtUtil; @Override public void configureClientInboundChannel(ChannelRegistration registration) { registration...

자바&스프링 2025.04.07

[Spring] WebSocket & STOMP로 채팅 구현하기 (3)

이번에는 메시지 전송을 위한 Controller와 Service, Repository에 대해 작성하고자 합니다. Controller@Controller@RequiredArgsConstructorpublic class ChatMessageController { private final ChatMessageService chatMessageService; private final SimpMessagingTemplate messagingTemplate; // 메시지 전송 @MessageMapping("/message/{chatRoomId}") public void sendMessage(@DestinationVariable("chatRoomId") Long chatRoomId,..

자바&스프링 2025.03.28

[Spring] Spring boot와 MySQL 연동하기

개발할 때는 H2를 쓰는 것도 괜찮았지만MySQL이 DB 마이그레이션 하기 편할 것 같아 Spring 프로젝트와 MySQL을 연동해서 사용했습니다. MySQL DB 추가하기저는 DBeaver 사용해서 데이터베이스를 추가해줬습니다.localhost와 연결할 것이기 때문에 localhost 안에 새로운 데이터베이스를 추가 DB명을 정하고 만약 다른 거로 되어 있다면 utf8로 설정해야 됩니다! application.ymlspring: application: name: 프로젝트명 datasource: url: ${DB_URL} username: ${DB_USERNAME} password: ${DB_PASSWORD} driver-class-name: com.mysql.cj.jdbc..

자바&스프링 2025.03.20

[Spring] WebSocket & STOMP로 채팅 구현하기 (1)

프로젝트로 채팅을 구현했었는데, 복습할 겸 내용을 정리해두고자 합니다.구현 과정에 대한 설명 전...WebSocket과 STOMP에 대해서 하나도 몰랐기 때문에 내용을 정리했었습니다.WebSocketWebSocket이란?Ws 프로토콜 기반으로 클라이언트와 서버 사이에 지속적인 완전 양방향 연결 스트림을 만들어주는 기술을 말합니다.대표적으로 게임과 채팅에 많이 사용됩니다. 따라서 채팅은 HTTP 통신이 아니라 웹소켓(WebSocket) 통신을 통해서 일어납니다.웹 소켓은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜로 실시간성을 보장하기 위해 사용됩니다.즉, 채팅은 실시간성이 필요하기 때문에! 웹소켓을 사용합니다. HTTP 통신은 한 번 요청 후 응답하면 연결이 끝납니다. 여러 번..

자바&스프링 2025.03.14