스프링 리액티브 프로그래밍,1편 (Reactive Streams)

박주진·2021년 7월 25일
0

스프링 리액티브

목록 보기
1/4

해당 포스팅은 토비님의 스프링 리액티브 프로그램밍 라이브 코딩 동영상을 기반으로 내용을 바탕으로 정리한 글입니다.

Reactive Programming 이란?

  • 외부 이벤트나 데이터가 발생하면 거기에 대응하는 방식으로 진행되는 프로그래밍

Reactive Programming 주요 특징

  • 등장배경
    • observer패턴의 단점을 보완하기 위해 나옴
  • Duality (쌍대성)
    - 똑같은 기능이나 반대방식 예) Iterable <---> Observable
    • iterable은 pull 방식 (data method(void))
    • obserable은 push 방식 (void method(data))
  • Observer 패턴
    • source가 event/data를 observer에게 던지는 방식
    • 장점
      • 여러 관심있는 observer에게 한꺼번에 broadcast하기 쉽다.
      • 다른 Thread에서 이벤트나 데이터에 대한 처리가 iterator방식보다 쉽다.
    • 단점
      • complete의 부재
      • 에러처리 어려움
  • Reactive Streams
    • JVM 진영에서 만든 표준
    • 주요 component
      - Publisher(데이터 provider), Subscriber(데이터 사용측), Subscription()
    • 두가지 축(observable,scheduler)
    • 스프링 reactive web또한 Reactive streams 기반
  • 예제소스
    https://github.com/JuJinPark/Reactive-Spring-Study/tree/main/src/main/java/com/example/reactivespringstudy/lesson1

0개의 댓글