회원기능(인증, 인가) 없이 convertAndSendToUser()를 사용할 때Principal을 직접 정의하여 사용하는 방법 문제 발생 --예외처리를 하기 위해기존 컨트롤러처럼 @SendToUser()를 통해 응답할 수 없는 상황이라서convertAndSendToUser()를 통해 응답해야 하는 상황이 왔다. @SendToUser() 같은 경우는 자동으로 Principal을 알아서 사용하여 응답해 주니 값을 몰라도 됐지만convertAndSendToUser() 같은 경우는 직접 Principal값을 작성해줘야 한다. 하지만 Security를 사용하지 않아서인지 sessionId 또는 user정보를 아무리 사용해도 클라이언트에게 응답이 전달되지 않았다. 그래서 직접 Principal을 정의하기..
Spring Boot
Spring, Spring Framwork, Spring boot는 어떤 차이가 있을까? Spring Framework --스프링 프레임워크는자바 플랫폼에서 엔터프라이즈급 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크로,다양한 모듈과 도구를 제공하며, 경량화와 유연성을 바탕으로 설계한 프레임워크다. 엔터프라이즈는 간단하게 대규모 환경이라고 생각하면 된다. 즉, spring Framework는 복잡하고 번거로운 로우(low) 레벨의 기술들을 어느 정도 알아서 제공해 주기 때문에개발자가 로우 레벨 기술에 직접 실경 쓰는 시간을 줄이고,보다 중요한 애플리케이션의 비즈니스 로직에 대해 더 집중하여 조금 더 빠르고 효과적으로 개발할 수 있도록 도와준다. Spring Framework가 개..
Spring boot에서 STOMP는 어떻게 사용할까? STOMP이란? -- STOMP (Simple/Streaming Text Oriented Messaging Protocol)STOMP이란 무엇인가? STOMP (Simple/Streaming Text Oriented Messaging Protocol) --STOMP은웹소켓(WebSocket) 또는 TCP처럼 "양방향" 네트워크 프로토콜 위에서 동작하는텍스트 기반의 메시징 서브 프로토콜로nijy.tistory.com-- 환경 --Spring boot : 3.4.0build : GradleJava : 17-- STOMP 의존성 추가 --build.gradleimplementation 'org.springframew..
Spring boot에서 WebSocket을 어떻게 사용할까? WebSocket이란? -- 웹소켓 (WebSocket)웹소켓은 무엇인가? HTTP 통신 --기본적으로 HTTP 통신은클라이언트가 서버에게 요청을 보내고,서버는 해당 요청에 대한 응답을 다시 보내는 "단방향 통신"으로 소통한다. 일반적인 기nijy.tistory.com-- 환경 --Spring Boot : 3.4.0build : GradleJava : 17-- SebSocket 의존성 추가 --build.gradleimplementation 'org.springframework.boot:spring-boot-starter-websocket'-- DTO (+ Enum) --WebSocketMessage..
프로젝트 생성 후 실행 시 나오는 에러 문제 발생 --Spring Boot로 프로젝트를 시작하기 위해"spring initializr" 사이트에서 프로젝트를 생성 후해당 프로젝트 생성 설정Project : Gradle - GroovyLanguage : JavaSpring Boot : 3.4.0Packaging : JarJava : 17IntelliJ로 열어 바로 실행하면 아래와 같이 에러가 발생한다. -- 해결 방법 --IntelliJ의 좌측 상단에File -> Settings -> Build, Excution, Deployment -> Build Tools -> Gradle 경로로 이동하여 Build And run using과 Runtests using을기존 Gradl..
이메일을 통해서 인증코드를 전송하려면어떻게 해야 할까? SMTP 의존성 추가하기 --SMTP란?Simple Mail Transfer Protocol의 약자로인터넷을 통해 이메일 메시지를 주고받을 때에 사용되는 통신 프로토콜이다. build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-mail'} 해당 의존성은Spring Boot 애플리케이션에서 이메일을 쉽게 전송할 수 있도록 지원하는 기능을 가지고 있다. 주요 기능JavaMailSender : 이메일을 전송하기 위한 기본 인터페이스 (간편하게 이메일을 구성 및 전송)MailSenderAutoConfiguartion : 이메일 ..
security 동작 중에 발생하는 예외는어떻게 처리할 수 있을까? 기존에 사용하는 예외 처리 방법을 사용할 수 있나? --평소에는 @ControllerAdvice, @RestControllerAdvice, @ExceptionHandler 를 이용해서 예외처리를 했다.다만 해당 어노테이션들을 사용하는 방법은 컨트롤러에서 발생하는 예외를 처리하는 방법으로아직 컨트롤러에 접근하기도 전 단계인 security에서 발생하는 예외는 처리할 수 없다. 2024.01.18 - [Spring Boot 3] - 상태 코드 반환하기2024.04.24 - [Spring Boot 3] - 전역으로 예외 처리 통일 시키는 방법-- security에서 발생하는 예외를 처리하는 방법은? --security에서 발생하..
특정 시간마다 자동으로 수행하는 로직은어떻게 구현해야 할까? 환경 --IntelliJ community 2023.1.5Spring Boot 3.2.1JDK 17-- 스케줄러란? --예시로쇼핑몰에서 회원 등급을 올해 총 구매 금액을 기준으로 부여한다면매년 회원의 총 구매 금액을 0으로 초기화를 해주어야 한다. 이렇게 특정 시간마다 자동으로 어떠한 로직이 수행되도록 도와주는 것이 스케줄러이다. Spring에서는 스케줄링을 구현하기 위해 TaskScheduler : 스케줄링 기능을 관리하는 인터페이스 / 스케줄링할 작업을 정의 및 실행 가능@Scheduled : 메서드에 정의할 수 있으며 정의된 메서드는 주기적으로 실행되도록 스케줄링이 된다.기능을 제공한다.-- Spring에..