spring 5

제어의 역전(IoC)와 의존성 주입(DI)

이 글은 스프링부트3 백엔드 개발자 되기 책을 바탕으로 공부한 내용을 정리한 게시글 입니다. https://mangkyu.tistory.com/150 위 블로그에 내용도 참고하여 정리하였으니 더 자세한 내용은 위 블로그에서 확인할 수 있습니다. 스프링은 장점이 많은 개발 도구 이지만 설정이 매우 복잡하다는 단점이 있습니다. 스프링의 이러한 단점을 보안하기 위해서 스프링 부트가 출시했습니다.스프링부트는 스프링 프로젝트를 빠르게 생성 할 수 있게 해주고 의존성 세트라고 불리는 스타터를 사용해 간편하게 의존성을 사용하거나 관리 할 수 있습니다. 저희는 스프링부트에 앞서 스프링에 핵심기능은 의존성에 대해서 알아보도록 하겠습니다. 1. 의존성이란?먼저 의존성이 무엇인지 알아보겠습니다.의존성이란 한 객체가 다른 객..

스프링부트 프로젝트 생성 및 초기설정 git연결

스프링부트를 이용하여 프로젝트 2개를 완성시켰지만 개발을 안한지도 좀 되었고 지금은 다른일을 하고 있기 때문에 다시 기초부터 차근차근 하기 위해서 스프링부트 3 백엔드 개발자 되기 책을 구매해서 처음부터 차근차근 구현해 볼려고 합니다.  직장인이 스프링부트를 처음부터 공부해서 개발자가 되기까지의 과정을 블로그로 이렇게나마 작성하여 기록할려고 합니다. 부족한 글쓰기 실력이지만 그래도 제가 취업준비하는데 좋은 참고자료가 될것도 같고 다른분들에게 조금이나마 도움이 될 수 도 있을거 같아서 작성해 봅니다. 이 게시물은 총 3개의 과정을 담고 있습니다.1. 프로젝트 생성2. git연결3. 초기 설정이 순서대로 게시물을 작성해 보겠습니다. 1. 프로젝트 생성첫번째 입니다. 프로젝트 생성법입니다.인텔리제이 상단 메뉴..

실시간 채팅 구현 백엔드 구현하기 다른상대 찾기

실시간 채팅 화면입니다. 여기서 다른상대 찾기 버튼을 클릭하면 다른 상대로 바꿀 수 있게 구성을 해보겠습니다. 먼저 서비스로직을 구성하겠습니다.public ChatRoomDTO matchAndCreateNewRoom(String userUid) { return matchAndCreateRoom(userUid);} 이렇게 uid를 이용하여 전에 구성해 놓았던 메소드인  matchAndCreateRoom(userUid)을 반환하게 해준다. public ChatRoomDTO matchAndCreateRoom(Long userId) { User currentUser = userRepository.findById(userId) .orElseThrow(() -> new RuntimeE..

실시간 채팅 구현 백엔드 구현하기2 서비스로직 구성

이전 글에서 데이터를 저장 할 entity와 데이터베이스와 메핑을 해줄 수 있는 repository를 작성한 후 데이터를 전달해 줄 dto를 작성을 하였습니다. 이제 서비스 로직을 작성을 해 보겠습니다. 상대방과 임의로 매칭 한 뒤 채팅방을 만드는 로직입니다.public ChatRoomDTO matchAndCreateRoom(Long userId) { User currentUser = userRepository.findById(userId) .orElseThrow(() -> new RuntimeException("User not found with userId: " + userId)); // 현재 사용자의 관심사 목록 List userInterests = current..

실시간 채팅 구현 스크립트 코드 구성

웹소켓 라이브러리를 이용하여 실시간 채팅을 구현하는 코드를 구성을해 보았습니다. 먼저 웹소켓 라이브러리를 등록을 해 줍니다.  웹소켓 연결에 관한 스크립트 코드 입니다.function connect() { if (stompClient !== null) { stompClient.disconnect(); // 기존 WebSocket 연결을 끊음 } console.log("roomId로 WebSocket 연결 시도:", roomId); const socket = new SockJS('/ws'); stompClient = Stomp.over(socket); stompClient.connect({}, function (frame) { conso..