NoOpServerSecurityContextRepository 와 ReactiveSecurityContextHolder 차이
·
트러블슈팅
처음에 NoOpServerSecurityContextRepository 설정을 보고 “SecurityContext는 더 이상 저장되지 않겠구나”라고 생각했다.stateless한 JWT 기반 인증 구조를 만들기 위해 이 설정을 사용한 것이었다.하지만 디버깅 중에 이상한 현상을 발견했다.ReactiveSecurityContextHolder.withAuthentication(...)를 통해 인증 정보를 저장했더니,인증 정보도 필터 체인 내부에서 정상적으로 동작하고 있었다.“아니, 분명히 context 저장을 막았는데 어떻게 인증 정보가 유지되는 거지?”이 의문으로부터 NoOpServerSecurityContextRepository와 ReactiveSecurityContextHolder의 역할을 명확히 구분해서..
SINKS
·
개념 저장소/spring reactive
과거의 Processor 사용 방식Reactive Streams나 Spring WebFlux와 같은 리액티브 프로그래밍 환경에서는 보통 데이터의 흐름이 내부에서 Publisher → Subscriber로 이어집니다. 그런데 때때로 외부에서 발생한 이벤트를 리액티브 스트림에 주입해야 할 필요가 있습니다. 과거에는 이러한 외부 이벤트를 리액티브 스트림에 연결하기 위해 Processor라는 컴포넌트를 사용했습니다.Processor는 기본적으로 Subscriber이면서 동시에 Publisher 역할을 하는 브릿지(bridge)였기 때문에, 외부에서 받은 이벤트를 내부 스트림으로 "중계"할 수 있었습니다.그러나 Processor 방식은 다음과 같은 문제점들이 있었습니다.명확하지 않은 상태 관리: Processor..
리액티브 스트림 구성요소
·
개념 저장소/spring reactive
용어 정리1. Publisher (발행자, 게시자, 생산자, 방출자)데이터를 제공하고 Subscriber(구독자)에게 데이터를 전달한다.데이터를 방출(emit)하는 역할을 한다.2. Subscriber (구독자, 소비자)Publisher가 방출한 데이터를 소비한다.onSubscribe, onNext, onError, onComplete 메서드를 통해 데이터를 처리하며 Sequence를 구독(subscribe)한다.3. Emit (방출하다, 내보내다)Publisher가 데이터를 내보내는 행위4. Sequence (연속적인 흐름)Publisher가 emit하는 데이터의 흐름으로, Operator 체인 형태로 정의된다.5. Subscribe (구독)Subscriber가 Sequence를 구독하여 데이터를 전달..