Spring(14)
-
Spring Security, 제대로 이해하기 - FilterChain
Spring Security의 인증, 인가 과정을 FilterChain을 살펴보며 이해하는 것이 본 포스팅의 목표입니다. 해당 포스팅은 1부 Spring Security, 어렵지 않게 설정하기의 이은 포스팅이지만, 읽는데 순서는 상관없습니다. 이해하는데 서로 도움이 되는 포스팅입니다. ----------------- INDEX ----------------- [ 1부: 설정 ] WebSecurityConfigurerAdapter HttpSecurity WebSecurity [ 2부 - 인증, 인가 동작 원리: FilterChain] 📚 Big Picture 초기화 사용자 요청 후 ? 🔗 FilterChain SecurityContextPersistenceFilter LogoutFilter Username..
2022.04.14 -
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 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 -
Bulk Insert, 성능 테스트
데이터베이스 쿼리의 성능을 높이는 방법으로 Bulk Insert를 사용하곤 하는데요. 오늘은 데이터베이스의 Bulk Insert의 성능을 비교해보고자 합니다. 직접 실행해본 쿼리를 통해 어느정도 성능이 좋아지는 지를 직접 확인해보기 위함입니다. + 스프링에서 사용하는 MyBatis에 대한 코드로의 테스트도 함께 진행합니다. 이어지는 포스팅 👉🏻 Spring, Bulk Insert 성능 측정 Bulk Insert Bulk는 무더기, 더 나눠지지 않는 대량의 짐 등으로 볼 수 있습니다. 데이터들이 무수히 많은 경우의 데이터 삽입 시에 이 Bulk Insert를 사용합니다. 따로 어려운 개념이 아니라, Insert 쿼리만을 조금 바꾸는 것인데요. 실제로 테스트 해보도록 합시다. 참고로, MySQL Workbe..
2022.03.05