spring security는 쓰레드로컬 기반으로 동작하기 때문에 reactive 환경에서는 사용하기 힘들다. 그렇다면 reactive 환경에서는 security를 사용하지 않는걸까? 이번에는 reactive 환경에서 security를 어떻게 사용하는지 알아보자.SecurityFilterChainservlet stack에서는 Servlet Filter를 사용하는데, Filter Chain 중간에 DelegatingFilterProxy를 추가하고, DelegatingFilterProxy는 내부적으로 여러 개의 Security Filter를 갖는 SecurityFilterChain을 호출한다.FilterChain내에서는 bean을 사용하기 힘들지만, SecurityFilterChain은 Spring Cont..
RestTemplate기존에 사용하던 RestTemplate은 동기 blocking 기반의 webClient이다. 스프링 5.0부터 더이상의 개발은 하지 않고 유지만 하고 있으며, WebClient를 사용하길 권장하고 있다.WebClientWebClient는 Non-blocking reactive http 클라이언트이며, thread safe하기 때문에 여러 쓰레드에서 동시에 접근해도 문제가 없다. Reactor Netty, Jetty, apache의 HttpComponent를 이용해서 구현되어 있고, http 호출을 위한 여러 설정들을 메서드 체이닝을 통해 유연하게 설정할 수 있다는 특징이 있다.WebClientBuilderWebClientBuilder는 WebClient를 만들면서 필요한 설정들을 제..
Functional Endpoints는 스프링 5.x 버전부터 추가된 기능이다.기존에 Controller를 기반으로 웹서버를 구성하던 것과는 다르게 Functional Endpoints를 사용하면 HandlerFunction과 RouterFunction를 이용해서 좀 더 함수형 기반으로 웹서버를 구성할 수 있다.HandlerFunctionHandlerFunction은 요청을 처리하고, 응답을 반환한다.handle: ServerRequest를 인자로 받고 ServerResponse를 Mono로 반환하는 추상 메서드RouterFunctionRouterFunction은 path, method, predicate등으로 handlerFunction과 연결하여 해당 요청이 들어왔을 때, handlerFunction..
DispatcherHandlerDispatcherHandler는 WebHandler를 구현하고 있고, handlerMappings, handlerAdapters, resultHandlers로 구성되어 있다.DispatcherHandler의 요청 처리 흐름DispatcherHandler에서 요청을 처리하는 흐름을 도식화하면 아래와 같이 나타낼 수 있다.Netty로부터 요청(request)이 들어온다.DispatcherHandler는 HandlerMapping List를 순회하면서 요청을 처리할 수 있는 Handler를 찾아 반환한다.Handler의 호출을 위임하기 위해 HandlerAdapter List로 가서 이 요청을 처리할 수 있는 HandlerAdapter를 조회한다.반환받은 HandlerAdapt..
- Total
- Today
- Yesterday
- 데이터베이스
- 북클럽
- 구현
- 백준
- Spring
- Algorithm
- 릿코드
- webflux
- 스프링부트
- 알고리즘
- 문자열
- MySQL
- Real MySQL
- 파이썬
- 인프런
- 김영한
- 코테
- 노마드
- 노마드코더
- 그리디
- 스프링
- 리팩토링
- mysql 8.0
- 자료구조
- kotlin
- leetcode
- spring boot
- 정렬
- 코틀린
- 스프링 부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |