Java 5

[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] WebSocket & STOMP로 채팅 구현하기 (1)

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

자바&스프링 2025.03.14

[백준] 11655번 : ROT13 - JAVA(자바)

백준 11655번 : ROT13  문제 풀이백준 11655번은 브론즈 1 난이도로 구현, 문자열에 관한 문제입니다. 우선 문자열을 입력 받은 뒤 문자열의 길이만큼 반복문을 돌립니다.이때 charAt()함수를 사용해서 char형으로 문자열을 잘랐고,그 문자가 A ~ Z 범위인지, a ~ z 범위인지를 구분했습니다. 또 구분한 그 안에서 만약 아스키 코드 값으로 원래 문자 + 13을 했을 때 z의 범위가 넘어갈 경우문자 - 13을 하면 다시 a값부터 시작하므로 알맞은 문자를 찾을 수 있습니다.대소문자 둘 다 동일한 방식이므로 아스키 코드만 바꿨습니다. 코드import java.io.*;public class Main { public static void main(String[] args) throws IOE..

알고리즘/백준 2025.02.26

[백준] 10808번 : 알파벳 개수 - JAVA(자바)

백준 10808번 : 알파벳 개수  문제 풀이백준 10808번 알파벳 개수는 브론즈 4 난이도로 구현, 문자열에 관한 문제입니다.단어는 알파벳 소문자로만 이루어져 있고, 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하면 됩니다. 저는 map과 아스키 코드를 활용해 각 알파벳과 개수를 저장했습니다.key를 알파벳으로, value를 단어에 속한 알파벳 개수를 카운트하는 방식으로 풀이를 진행했습니다. 소문자 a는 아스키 코드로 97의 값을, 알파벳의 마지막인 소문자 z는 아스키 코드로 122의 값을 가집니다.이를 활용해 문제를 풀 수 있습니다. 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] a..

알고리즘/백준 2025.02.16