legacy/Spring
-
[Spring] Spring Bean이란?legacy/Spring 2024. 6. 24. 21:41
Spring Bean (스프링 빈)이란?IoC 컨테이너에 의해 프레임워크로부터 생성되고 관리되는 자바 객체를 의미한다. 스프링 컨테이너에 Bean을 등록하는 방법1. @ComponentScan에 의한 자동으로 Bean 등록@Component가 붙은 애너테이션을 사용하면 스프링 컨테이너에 의해 자동으로 Bean으로 등록된다. @Component가 붙은 대표적인 애너테이션은 다음과 같다.@Controller@Service@RepositoryControllerUserController는 UserService에 의존한다.@Controllerpublic class UserController { private UserService userService; public UserController(UserSe..
-
[Spring] DI(Dependency Injection)과 IoC(Inversion of Control)legacy/Spring 2024. 6. 24. 20:30
DI (Dependency Injection)다른 프레임워크와 달리 스프링은 의존 관계 주입이라는 차별점을 갖는다.개발자가 직접 객체를 생성하는 것이 아닌, 프레임워크에서 객체를 생성한 후 주입해 주는 방법이다. 방법 1. 개발자가 직접 객체를 생성한다.A 객체를 사용하기 위해 개발자가 생성자를 사용하여 B와 C 객체를 생성하는 방식이다.즉, 의존성 주입을 사용하지 않고 직접 객체를 생성하여 주입하는 방식이다.public class UserService { private UserRepository userRepository = new UserRepository(); public User findUser(String userId) { return userRepository.f..
-
[Spring] SSE(Server Sent Events)를 사용하여 실시간 알림 기능 사용하기legacy/Spring 2024. 5. 3. 00:09
SSE (Servet Sent Events)란SSE는 Server Sent Events의 줄임말입니다. 서버에서 클라이언트로 실시간 이벤트를 전달하는 기술입니다.위 사진을 보면 클라이언트가 서버와 연결을 먼저 진행합니다. 이를 구독(subscribe)라고 합니다. 이후에 서버에서 클라이언트로 단방향 통신을 진행하며, 클라이언트의 요청이 없이도 서버에서 응답을 내릴 수 있습니다. SSE의 장점은 다음과 같습니다.실시간으로 이벤트를 발생시킬 수 있다.연결이 끊어지면 자동으로 연결을 시도한다.HTTP 통신이다. 실시간 알림의 경우 서버에서 클라이언트 방향으로만 데이터를 전송하면 되기 때문에, 양방향으로 통신을 진행할 필요가 없습니다. 따라서 SSE를 사용하여 실시간 알림을 구현해보도록 하겠습니다. 스프링부트에..
-
[Spring] 이미지를 AWS S3로 업로드하는 2가지 방법 (MultipartFile, PresignedUrl)legacy/Spring 2024. 5. 2. 07:36
클라이언트가 이미지를 업로드할 때, 서버에서 처리할 수 있는 방법은 2가지가 존재합니다.서버에서 MultipartFile 형태로 데이터를 받아서 AWS S3로 업로드한다. 서버에서 presignedUrl을 발급하여 AWS S3로 업로드한다.2번에서 presignedUrl이 다소 생소할지라도 이번 글을 통해 이해할 수 있습니다. (AWS S3 생성 및 스프링과 연결 방법에 대해서는 생략합니다) 1. MultipartFile 형태로 서버에서 처리스프링에서는 MultipartFile 인터페이스를 제공합니다. 업로드한 파일의 이름, 크기 등을 제공하는 메서드가 존재합니다.Controllerform-data로 넘어오는 이미지를 MultipartFile로 받습니다.@RestController@RequestMappi..
-
[Spring] 스프링에서 생성된 LocalDateTime과 DB 시간이 다르다legacy/Spring 2024. 4. 24. 15:13
생성된 QR 코드의 만료 시간을 설정하고 DB에 저장하고자 하였다. 그러나.... 둘 간의 시간 오차가 발생했다. 분명 스프링에서는 2024-04-24T16:05:24.911197 로 생성이 되는데, DB에서는 2024-04-24 07:05:24.911197 로 저장되는 문제가 있었다. 그 이유는 간단했다. DB의 serverTimezone=UTC 로 설정되어 있었기 때문이다. 스프링은 당연히 KST 기준으로 시간을 설정하기 때문에 UTC와 오차가 발생한다. 따라서 기존의 serverTimezone을 수정한다.수정 전spring: datasource: url: jdbc:mysql://localhost:3306/qr_code?serverTimezone=UTC&characterEn..
-
[Spring] AWS 자격증명 정보를 사용하는 2가지 방법legacy/Spring 2024. 4. 19. 16:19
EC2 IAM에 등록된 자격 증명 사용하기패키지 정보 확인하기import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import software.amazon.awssdk.auth.crede..