Reactive Programming

2022. 6. 30. 22:55·Spring

https://tech.io/playgrounds/929/reactive-programming-with-reactor-3/Intro

 

Introduction to Reactive Programming - Reactive Programming with Reactor 3

Explore this playground and try new concepts right into your browser

tech.io

해당 링크를 통해 공부하며 정리했습니다!
구글 번역과 상상력으로 정리한 것이라 틀릴 수 있습니다😢

 

Reactor 3는 JVM에 Reactive Programming 패러다임을 제시하는 라이브러리다.

 

왜 리액트 프로그래밍을 쓸까?

  • 리액트 프로그래밍은 비동기 파이프라이닝 처리를 위해 선언적 프로그래밍(함수형 프로그램)을 쓸 경우에 제시하는 새로운 패러다임이다
  • 유저에게 데이터가 PUSH 될 경우 이용 가능해지는 이벤트 기반 모델이며, 비동기 이벤트의 연속이다.
  • 클라이언트와 리소스가 증가할 때 굉장히 효과적이며, 로우 레벨의 동시적/병렬적 코드를 작성하지 않아도 된다.
  • 비동기 & 논블로킹 의 핵심 기둥을 중심으로 구축되며, Reactive Programming은 JDK의 콜백 기반 API를 대체할 수 있다.
  • 비동기 코드를 읽기 쉽고 유지보수하기 편하게 만들어준다. 

Reactive Streams(반응형 스트림)

반응형 스트림을 JVM상에서 표준화하려고 업계가 많이 노력했다. 더 나아가 상호 운용이 가능하게끔 구체적으로 명시하고 있다. Reactor3 뿐만 아니라 RxJava 2 이상, Akka Streams, Vert.x, Ratpack 또한 구현체에 포함된다.

TCK를 포함한 4개의 간단한 인터페이스를 가지고 있으며, 핵심 부분이기 때문에 이 인터페이스들을 간과해서는 안 된다.

Technology Compatibility Kit(TCK)
A suite of tests that at least nominally checks a particular alleged implementation of a Java Specification Request (JSR) for compliance. It is one of the three required pieces for a ratified JSR in the Java Community Process, which are: the JSR specification.
[번역]
TCK(Technology Compatibility Kit)는 규정 준수를 위해 JSR(Java 사양 요청)의 특정 구현이라고 최소한 명목상 확인하는 테스트 모음입니다. JSR 사양은 Java Community Process에서 비준된 JSR의 세 가지 필수 요소 중 하나입니다.

하지만 유저의 시각에서는 상당히 Low-Level이다. 그래서 Refactor3은 다양한 상황에 걸쳐 영향력을 행사하기 위해 Reactive Stream Publisher 상에 구축해 더 높은 레벨의 API를 목표로 한다.

 

상호작용

Publisher : 데이터를 생산하고, Subscriber가 Register(Subscribe)하지 않으면 아무 것도 하지 않는다!

Subscriber : Register(Subscribe)를 통해 데이터를 받아온다.

Reactor는 Operator 개념을 추가한 것이며, 함께 연결되어 각 단계에서 데이터에 처리될 내용을 설명한다

Operator는 중간 Publisher 같이 작동하여 각 단계별로 어떤 처리가 적용되어야 할지 설명하기 위해 연결된다. Operator를 사용하면 새 중간값이 반환된다. 이 때 Operator는 하위에서는 Publisher로, 상위에서는 Subscriber 처럼 취급된다.

저작자표시 비영리 변경금지 (새창열림)

'Spring' 카테고리의 다른 글

File->MultipartFile  (0) 2022.07.26
QueryDSL 사용 전 환경설정  (0) 2022.07.12
스프링 핵심 원리 - 기본편(빈 스코프)  (0) 2022.04.28
스프링 핵심 원리 - 기본편(빈 생명주기 콜백)  (0) 2022.04.27
스프링 핵심 원리 - 기본편(의존관계 자동 주입)  (0) 2022.04.27
'Spring' 카테고리의 다른 글
  • File->MultipartFile
  • QueryDSL 사용 전 환경설정
  • 스프링 핵심 원리 - 기본편(빈 스코프)
  • 스프링 핵심 원리 - 기본편(빈 생명주기 콜백)
코드파고
코드파고
  • 코드파고
    Digging Code
    코드파고
  • 전체
    오늘
    어제
    • 분류 전체보기 (99)
      • Memorization (12)
      • Spring (18)
      • Java (1)
      • Algorithm (40)
      • Server (2)
      • DB (0)
      • CS (0)
      • CI & CD (4)
      • Architecture (0)
      • Design Patterns (0)
      • Study (1)
      • Book (9)
        • DEV (7)
        • Non-DEV (0)
      • Infra (1)
        • Kafka (6)
        • AWS (4)
      • TroubleShooting (1)
        • Etc (1)
      • Tools (0)
  • 블로그 메뉴

    • 홈
    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    architecture
    알고리즘
    클린아키텍쳐
    Spring독학
    Spring Boot
    Clean Code
    헥사고날아키텍쳐
    clean architecture
    SpringFramework
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
코드파고
Reactive Programming
상단으로

티스토리툴바