SpringBoot (10) 썸네일형 리스트형 [Springboot/React] #2 웹소켓과 STOMP로 실시간 채팅 구현하기 웹소켓과 STOMP를 함께 사용한 이유 WebSocket은 효율적인 저수준 양방향 통신을 제공하여 실시간 응답성을 보장하고, STOMP는 고수준 메시징 프로토콜로, 메시지의 전송, 구독, 관리 등을 간편하게 만들어 준다.따라서 좀 더 효율적이고 편리하게 관리하기위해 WebSocket에 STOMP를 결합하여 실시간 채팅을 구현하였다. STOMP 실시간 메시지 송수신 과정 사용자는 '/sub' 엔드포인트를 통해 채널을 구독하고, '/pub' 엔드포인트를 통해 메시지를 발행할 수 있다. 발행된 메시지는 동일한 주제를 구독하는 사용자들에게 서버에서 즉시 전송되어 사용자들의 실시간 채팅이 가능하게 한다. 서버(Springboot)1. WebSockConfig 수정@Configuration@EnableWebSoc.. [Springboot] #1 웹소켓과 STOMP로 실시간 채팅 구현하기 - spring boot에 웹소켓 연결 실시간 채팅을 구현하기 위해 웹소켓과 STOMP를 이용하여 구현하였다. 1. 웹소켓의 통신 과정웹소켓의 연결(1) 클라이언트 요청: 클라이언트가 웹소켓 연결을 시작하기 위해 서버에 HTTP 요청을 보낸다.(2) 서버 응답: 서버는 클라이언트의 HTTP 요청(웹소켓 업그레이드 요청)을 수신하고, 이를 확인한 후 웹소켓 연결을 수락한다. 서버는 HTTP 응답을 보내며, 이는 웹소켓 업그레이드를 승인하는 내용을 포함하게 된다.(3) 프로토콜 업그레이드 완료: 이러한 과정을 거치면 HTTP에서 웹소켓 프로토콜로 업그레이드가 완료되며, 지속적인 연결을 통해 양방향 통신이 활성화된다. 데이터 전송클라이언트와 서버는 텍스트 또는 바이너리 메시지를 주고받게되는데, 이 과정에서 각 메시지는 웹소켓 프레임으로 캡슐화되어 .. [Springboot] #2 spring security와 jwt로 인증구현하기 jwt를 생성하고 jwt를 통해 인증을 하는 과정에 대한 정리.Json Web Token의존성 추가처음 프로젝트 진행할때는 0.9.1버전을 사용하였지만 JDK 9 이상에서는 사용할 수 없어서 최신버전 사용( deprecated된 메소드가 있음)//implementation 'io.jsonwebtoken:jjwt:0.9.1'implementation 'io.jsonwebtoken:jjwt-api:0.11.5'runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'토큰 생성 및 관리토큰을 생성하고 관리하는 JwtProvider 클래스를 생성해 준다.JwtProvider 클래스는 Spring S.. [Springboot] #1 spring security와 jwt로 인증구현하기 - spring security 사용하기 로그인과 인증구현을 위해 spring security를 사용했다.Spring Security란Spring Security는 Java 기반의 프레임워크로서, 애플리케이션의 보안을 담당하는 강력한 보안 프레임워크이다.spring security와 jwt의 통신과정프론트엔드에서 사용자의 로그인 정보 (예: userId, userPw)를 백엔드로 전송한다.백엔드는 받은 로그인 정보를 검증하고, 인증이 성공하면 해당 사용자의 정보로 JWT를 생성 후 프론트엔드로 반환한다.프론트엔드는 받은 JWT를 저장하고, 이후 서버에 요청을 보낼 때마다 해당 JWT를 요청의 헤더에 포함시켜 보낸다.백엔드는 요청을 받을 때 JWT를 검증 후 성공하면 요청에 대한 처리를 진행하고, 결과를 프론트엔드에 응답한다.Spring Secu.. [Springboot] swagger 사용하기- 의존성 추가 및 jwt 인증 추가하기 Swagger는 API 개발을 위한 프레임워크로서, API 문서를 작성하고 관리하는 데 사용된다.RESTful API를 문서화하고 API를 시각적으로 표현할 수 있다.의존성 추가Swagger에는springfox와 springdoc 두가지 버전이 있다.implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'하지만 springfox 사용시 Spring Boot 2.5.x 버전 이후부터는 Spring과 Swagger 사이의 버전 호환이 되지 않아 오류가 발생한다.그래서 나는 springdoc을 사용했다.swaggerConfig를 이용.. [Springboot] api 컨트롤러에서 json형식의 데이터와 MultipartFile 동시에 받기 한개의 컨트롤러에서 json 데이터와 MultipartFile 을 한번에 받으려 할때 @NoArgsConstructor@AllArgsConstructor@Getter@Setterpublic class User { private String id; private String pw; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") private Date birth; private List myList; private String imgPath;}@PostMapping(value = "/create", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public Re.. [Springboot/Firebase] Firebase CRUD 정리 Firebase CRUD 정말 간단하지만 헷갈린다,,, 그래서 나 보기 좋으라고 정리하는 CRUD 언어는 Java 기준Firebase 데이터베이스 구조Firebase는 NoSQL 기반의 실시간 데이터베이스로서 Firestore와 Realtime Database 두 가지 주요 데이터베이스 서비스를 제공하고 있다. 그중 사용한 데이터베이스는 FireStore로, FireStore는 JSON 기반 문서를 사용하여 데이터를 저장하고 쿼리할 수 있다. FireStore에서는 다음과 같은 기본 요소들로 구성되어 있다.Database: 한개의 프로젝트 내에 여러 개의 Firestore 데이터베이스가 포함될 수 있다. 각 데이터베이스는 고유한 ID를 가지고 있다.Collection: 컬렉션은 문서들의 그룹을 나타낸다.. Firebase Storage 시작하기 firebase Storage 시작하기다음 클릭 후 규칙을 설정할 수 있다.Storage 규칙 구성 요소Storage 규칙은 다음과 같은 구성 요소로 이루어져 있다:match: 규칙을 적용할 경로를 지정. /b/{bucket}/o와 같이 Storage 버킷과 관련된 경로를 지정할 수 있다.allow: 허용할 작업(읽기, 쓰기)을 지정. 보통 read 또는 write 작업을 지정하며, 이 작업들에 대한 조건을 추가할 수 있다.request.auth: 요청에 포함된 사용자 인증 정보. request.auth != null과 같이 사용하여 인증된 사용자만 접근할 수 있도록 제어할 수 있다.Storage 규칙 설정rules_version = '2';// Craft rules based on data in you.. 이전 1 2 다음