반응형

2024/02 3

ProjectReactor Case Study

개요 Reactive coding에서는 적절한 operation 사용이 필수 불가결이다. 이는 가독성을 높이고, Sequence를 효과적으로 구성할 수 있다. 하지만, operator는 종류가 많고, 복잡한 것들이 많기 때문에, 선택에 어려움이 있다. 이번 글은 상황 별 operator 가이드와, 예시를 제공하고자 한다. Case 별 Operator 정리 Sequence 생성 Operator 상황 just, justOrEmpty 특정 Element 또는 Element들로 시작하는 Sequence 생성 fromArray, fromIterable, range, fromStream iteration 할 수 있는 Element들로 Sequence(Flux) 생성 empty empty한 Sequence 생성 de..

개발 일지 2024.02.22

Global Hooks And Context Propagation (Projectreactor Advanced Features)

Global Hooks란 리액터는 연산자의 콜백을 전역으로 설정할 수 잇다. 이는 Operator에 element가 흐르는 로직에 관여하는 것과 비슷하다. Hooks 클래스로 제공되는 기능으로 3가지 종류가 있다. 1. Dropping Hooks 2. Internal Error Hook 3. Assembly Hooks DroppingHooks 일반적으로 onError가 모든 에러를 잡을 수 있을 것으로 기대하지만, 그렇지 못한 상황이 발생한다. 가령 onComplete()를 호출 한 후 onNext()등 다른 signal를 연결했을 때 또는 handle되지 못한 에러가 있다. Dropped By Previous Complete // onNextDropped Example Hooks.onNextDroppe..

개발 일지 2024.02.20

Hot vs Cold Publisher (Projectreactor Advanced Features)

개요 Project Reactor 기능 중 심화 개념에 해당되는 파트들을 정리 Hot Publisher And Cold Publisher 일반적으로 Webflux 등에서 사용되는 Publisher들은 subscribe()가 되어야 Element를 생성한다. 이는 모두 Cold Publisher를 사용하기 때문이며, Hot Publisher는 구독과 상관없이 Element를 생성한다. cold와 hot의 차이점은 데이터 발행의 주도권이 누구에게 있는가 이다. Cold Publisher Flux source = Flux.fromIterable(Arrays.asList("blue", "green", "orange", "purple")) .map(String::toUpperCase); source.subscri..

개발 일지 2024.02.19
반응형