728x90

1. 리액티브 시스템(Reactive System)
클라이언트 요청에 반응을 잘 하는 시스템
- 리액티브 시스템의 특징

- Means
- Means는 리액티브 시스템에서 사용하는 커뮤니티 수단을 의미한다.
- Message Driven : 메세지 기반 통신을 통해 여러 시스템간의 느슨한 결합을 유지한다.
- Means는 리액티브 시스템에서 사용하는 커뮤니티 수단을 의미한다.
- Form
- Form은 메시지 기반 통신을 통해 리액티브 시스템이 어떤 특성을 가지는 구조로 형성되는지 의미한다.
- Elastic : 시스템으로 들어오는 요청량이 적거나 많거나 상관없이 일정한 응답성을 유지하는 것을 의미한다.
- Resillient : 시스템의 일부분에 장애가 발생하더라고 응답성을 유지하는 것을 의미한다.
- Form은 메시지 기반 통신을 통해 리액티브 시스템이 어떤 특성을 가지는 구조로 형성되는지 의미한다.
- Value
- 리액티브 시스템의 핵심 가지가 무엇인지를 표현하는 영역이다.
- Responsive : 리액티브 시스템은 클라이언트 요청에 즉각적으로 응답할 수 있어야 함을 의미한다.
- Maintainable : 클라리언트의 요청에 대한 즉각적인 응답이 지속가능해야 한다는 것을 의미한다.
- Extensible : 클라이언트의 요청에 대한 처리량을 자동으로 확장, 축소할 수 있어야 하는 것을 의미한다.
- 리액티브 시스템의 핵심 가지가 무엇인지를 표현하는 영역이다.
2. 리액티브 프로그래밍(Reactive Programming)
- 리액티브 프로그래밍의 특징
- declarative programming paradigm
: 선언형 프로그래밍 방식을 사용하는 대표적인 모델이다. - data streams, the propagation of chance
: 지속적으로 데이터가 입력으로 들어올 수 있음을 의미하고, 데이터가 지속적으로 발생하는 것 자체를 데이터에 어떤 변경이 발생함을 의미한다. - automatic propagation of the changed data flow
: data streams, the propagation of chance와 같은 의미이다. 지속적으로 발생하는 데이터를 하나의 데이터 플로우로 보고 데이터를 자동으로 전달한다.
- declarative programming paradigm
3. 리액티브 스트림즈의 구현체
- Project Reactor
: 리액티브 스트림즈를 구현한 대표적인 구현체로써 Spring 과 가장 잘 맞는 리액티브 스트림즈의 구현체이다. - RxJava
: NET기반의 리액티브 라이브러리를 넷플릭스에서 Java언어로 포팅한 JVM기반의 리액티브 확장 라이브러리이다. - Java Flow API
: 리액티브 스트림즈를 구현한 구현제가 아니라 리액티브 스트림즈 표준 사양을 Java안에 포함을 시킨 구조이다. 즉, 다양한 벤더들이 JDBC API를 구현한 드라이버를 제공할 수 있도로고 SPI(Service Provider Interface)역할을 하는것 처럼 Flow API도 리액티브 스트림즈 사양을 여러 구현체들에 대한 SPI역할을 한다. - 기타 리액티브 확장(Reactive Extensive)
: 특정 언에에서 리액티브 스트림즈를 구현한 별도의 구현제가 존대한다는 의미이며, 실제로 다양한 프로그래밍 언어에서 리액티브 스트림즈를 구현한 리액티브 확장 라이브러리를 제공하고 있다.
'JAVA > Spring' 카테고리의 다른 글
[Spring] Spring Batch(1) (0) | 2023.04.26 |
---|---|
[Spring] Spring Boot 3.0 (0) | 2023.03.26 |
[Spring] Java Spring? (0) | 2023.03.23 |
[Spring Web Flux] Project Reactor (0) | 2022.11.30 |
[SPRING]Spring Framework (0) | 2022.11.30 |