리액티브 시스템(Reactive System)
클라이언트의 요청에 반응을 잘하는 시스템을 의미
리액티브 시스템 특징
- 리액티브 시스템에서 사용하는
커뮤니케이션 수단
- Message Driven
- 리액티브 시스템에서는 메시지 기반 통신을 통해 여러 시스템 간에 느슨한 결합을 유지
- 리액티브 시스템 구조의
특성
- Elastic
- 시스템으로 들어오는 요청량이 적거나 많거나에 상관없이 일정한 응답성을 유지
- Resillient
- 시스템의 일부분에 장애가 발생하더라도 응답성을 유지
- 리액티브 시스템의
핵심 가치
- Responsive
- 리액티브 시스템은 클라이언트의 요청에 즉각적으로 응답할 수 있어야 한다.
- Maintainable
- 클라이언트의 요청에 대한 즉각적인 응답이 지속가능해야 한다.
- Extensible
- 클라이언트의 요청에 대한 처리량을 자동으로 확장하고 축소할 수 있어야 한다.
리액티브 프로그래밍(Reactive Programming)
리액티브 시스템에서 사용되는 프로그래밍 모델
선언형 프로그래밍
방식 사용 - 순차적으로 실행되지 않는다.
- 지속적으로 발생하는 데이터를 하나의 데이터 플로우로 보고 데이터를 자동으로 전달
📍 리액티브 스트림즈(Reactive Streams)
리액티브 프로그래밍을 위한 표준 사양(또는 명세, Specification)
📍 리액티브 스트림즈 컴포넌트
- Publisher
- 데이터 소스로 부터 데이터를 내보내는(emit) 역할을 하는 인터페이스
- Subscriber
- Publisher로부터 내보내진 데이터를 소비하는 역할을 하는 인터페이스
- Subscription
- Subscriber의 구독 자체를 표현한 인터페이스
- Processor
- Subscriber 인터페이스와 Publisher 인터페이스를 상속하고 있기 때문에 Publisher와 Subscriber의 역할을 동시에 할 수 있는 특징을 가진다.
📍 리액티브 스트림즈의 구현체