개발자는 기록이 답이다

패스트캠퍼스 환급챌린지 10일차 미션 (2월 10일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기 본문

패스트캠퍼스

패스트캠퍼스 환급챌린지 10일차 미션 (2월 10일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기

slow-walker 2024. 2. 10. 22:48

 

1. Reactive streams 구현 라이브러리

  • Project reactor
  • RxJava
  • Mutiny

publisher의 경우 구현 라이브러리에 따라 많이 달라진다.

  • Project reactor는 스프링 webflux에서 기반이 되는 라이브러리이다.
  • RxJava는 넷플리스에서 만들었고, Rx를 Java형태로 포팅해서 제공하는 라이브러리이다
  • 처음 시작이 C#이었는데, Rxjs, RxRuby등으로 지원한다
  • Mutiny는 하이버네이트 리액티브로서 만들어졌다.

 

2-1. Project reactor

 

  • Pivotal사에서개발
  • Spring reactor에서 사용
  • MonoFlux publisher 제공

2-2 Project reactor - Flux

  • 0..n개의 item을 전달
  • 에러가 발생하면 error signal 전달하고
  • 모든 item을 전달다면 complete signal 전달
  • 하고
  • backPressure 지원

2-3 Project reactor - Mono

  • 0..1개의 item을 전달
  • 에러가 발생하면 error signal 전달하고 종료
  • 모든 item을 전달했다면 complete signal 전달
  • 하고 종료

2-4 Flux에서 하나의 값만 넘겨주면 되는데 왜 Mono를 사용할까?

  • 1개의 item만 전달하기 문에 next하나만 실행하면 complete가 보장
  • 혹 은전달하지 않고 complete를 하면 이 없다는것을 의미
  • 하나의 이 있거나 없다

2-5. Mono와 Flux

  • Mono<T>: Optional<T>
    • 없거나 혹은 하나의
    • Mono<Void>정 사건이 완료되는 시점을 가리수도 있다
  • Flux<T>: List<T>
    • 무한하거나 유한한 여러 개의

2-6. FluxMono

  • Mono.from으로 Flux를 Mono로
  • 첫번째값만전달
  • collectList()
  • Flux들을 collect하고 complete가 발생하는 시점에 모은 들을 전달

 

2-7. Mono를 Fluxfh

  • flux()
  • Mono를 next한번 호출하고 onComplete를 호출하는 Flux로 변환
  • flatMapMany
  • Mono의 값으로 여러 개의 값을 전달하는 Flux를 만들고 연결

 


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. https://bit.ly/48sS29N