목록springboot (3)
훈훈훈
아래 내용은 스프링 공식문서 스터디에서 정리했던 자료 입니다. Task Execution and Scheduling 1. Executor (1) Executor 란? Java 5에 도입되었으며, 단순히 void execute(Runnable command); 메서드만 정의된 객체이다. command 를 실행할 때 마다 새로운 스레드에 동작 command 는 Runnable 인터페이스 객체이다. Executor 가 실행될 때는 쓰레드를 명시하지 않는다고 한다. 그 역할은 Runnable 인터페이스가 대신한다. executor.execute(new RunnableTask()); 이런 식으로 command 를 실행 시킨다. (2) Runnable Interface 자바에서는 Thread 를 구현할 때 Thre..
이번에는 JPA Entity에서 이벤트가 발생할 때마다 특정 로직을 실행시킬 수 있는 @EntityListeners를 정리해보려고 한다. 예제 코드는 Spring boot와 Kotlin을 사용하여 작성하였다. JPA EntityListeners 란? 하이버네이트 문서에서는 JPA Entity에 이벤트가 발생할 때 콜백을 처리하고 코드를 실행하는 방법이라고 소개하고 있다. 이제 하이버네이트에서 지원하는 콜백 메서드들을 살펴보자. EntityListeners는 JPA Entity에 Persist, Remove, Update, Load에 대한 event 전과 후에 대한 콜백 메서드를 제공한다. 이번 글에서는 간단한 예제로 Update 하는 코드를 작성해보려고 한다. 예제 코드 @Component class U..
이번에 사내에서 S3 업로드 방식을 멀티파트(Multipart) 업로드 방식으로 변경하는 일을 맡게 되었다. 해당 기능 구현 중 SDK를 사용한 예제는 많았지만 S3에서 지원하는 REST API를 사용하는 예제는 찾기 힘들었기 때문에 이 기회에 정리하게 되었다. ( 해당 예제 코드는 Spring boot 와 Kotlin으로 작성하였다. ) Why Multipart Upload ?? S3에서 단일 객체를 업로드할때 최대 5GB 이상은 업로드할 수 없다. 일반적으로 5GB를 초과하는 파일을 업로드할때 용량을 압축해서 올리는 방안이 있겠지만, 압축에도 한계가 발생할 수 있다. 그런 상황에서 멀티파트 업로드를 사용하면 하나의 파일을 최대 5GB까지 10,000개로 분할 후 업로드 할 수 있다. 즉 5TB 파일까..