Spring(56)
-
Spring, Bulk Insert 성능 측정
Bulk Insert의 성능을 측정하고, 사용 시의 주의사항을 알아가는 것이 해당 포스팅의 목표입니다. 이 글을 Bulk Insert, 성능테스트 에 이은 두 번째 글입니다. 데이터베이스 쿼리의 성능을 높이는 방법으로 Bulk Insert를 사용하곤 하는데요. 지난 번은 데이터베이스의 직접적인 성능을 알아봤고, 이번에는 스프링에서의 Bulk Insert의 성능을 비교해보고자 합니다. 직접 실행해본 코드를 통해 어느정도 성능이 좋아지는 지를 직접 확인해보기 위함입니다. Spring Test 테스트는 아주 간단히 Runner를 통해 확인할 수 있게끔 했습니다. Test 코드를 짜기도 했는데, 가장 하단에 참고용으로 첨부할 예정입니다. 특별한 설명이 필요 없을 것 같아 바로 코드를 확인하겠습니다. UserIn..
2022.03.29 -
Spring Security, 어렵지 않게 설정하기
본 포스팅은 Spring Security의 WebSecurityConfigurerAdapter를 이해하는 것을 목표로 합니다. ----------------- INDEX ----------------- [ 1부: 설정 ] WebSecurityConfigurerAdapter HttpSecurity 📌 Authentication 📌 Authorization WebSecurity [ 2부 - 인증, 인가 동작 원리: FilterChain] ---------------------------------------------- Dependency org.springframework.boot spring-boot-starter-security dependencies { implementation 'org.spring..
2022.03.24 -
Spring WebClient, 어렵지 않게 사용하기
WebClient는 스프링 5.0에서 추가된 Blocking과 Non-Blocking 방식을 지원하는 HTTP 클라이언트입니다. - Reactor, 제대로 사용하기 - Error Handling - Reactive Programming, 제대로 이해하기 👉🏻 WebClient 소개 - Spring WebClient, 제대로 사용하기 - retrieve - Spring WebClient, 제대로 사용하기 - exchange WebClient의 설정 및 요청, 응답 처리 등의 사용법을 학습하는 것이 본 포스팅의 목적입니다. ----------------- INDEX ----------------- WebClient? Create 📌 create() 📌 build() Configuration 📌 Timeout..
2022.03.17 -
Spring Interceptor, 제대로 이해하기
Interceptor는 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 합니다. 스프링의 Intercepter의 이해와 사용법을 익히는 것이 본 포스팅의 목표입니다. ----------------- INDEX ----------------- Interceptor? Interceptor VS Filter 📌 Filter HandlerIntercepter 📌 preHandle 📌 postHandle 📌 afterCompletion HandlerInterceptorAdapter AsyncHandlerInterceptor ---------------------------------------------- Interceptor? '가로채다' 스프링 MV..
2022.03.15 -
Spring Transaction, 제대로 이해하기
Spring의 @Transactional과 AOP를 이용한 선언적 Transaction 처리 기법에 대해 이해하고, 각각의 방법에 따라 속성을 적용하는 것이 이 포스팅의 목표입니다. 본 내용은 토비의 스프링 3.1 을 학습하고 정리한 글입니다. 자세한 정리본은 깃허브를 참고해주세요. 포스팅을 적으며 실제로 테스트를 하기 위해 작성한 테스트 코드를 깃허브에 올려두었으니, 필요하다면 참고하시길 바랍니다. Transaction? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미합니다. 즉, 병행 제어 시 처리되는 작업의 논리적 단위입니다. Transaction은 하나의 흐름으로 하나의 실행이 성공하거나 실패하면 모든 연산들을 동일하게 처리합니다. A, B, C의 연산을 한 묶음이라..
2022.03.13 -
@ExceptionHandler, @ControllerAdvice
안녕하세요. 오늘은 Spring에서 Exception 처리에 대해 다뤄보겠습니다. 지난 포스팅에서 Spring Exception에 대한 내용을 다뤘습니다. 이번 포스팅에서는 Annotation을 이용한 Exception 처리 방식에 대해 다루고자 합니다. @ExceptionHandler, @ControllerAdvice을 알아볼텐데요. 미리 간단히 정리하면 아래와 같습니다. 미리 보기 ✔️ @ExceptionHandler : Controller 내의 Method 범위로 Exception 처리 (Target이 Method) @ControllerAdvice : Controller 전역에 걸쳐 Exception 처리 (Target이 TYPE − 즉, Class, Interface, Enum) @Exceptio..
2022.03.08