1장 : 리액티브 시스템과 리액티브 프로그래밍

2023. 4. 30. 15:12북리뷰/스프링으로 시작하는 리액티브 프로그래밍

728x90

# 리엑티브 

어던 이벤트나 상황이 발생했을 대, 반응을 해서 그에 따라 적절하게 행동하는 것

클라이언트의 요청을 즉각적으로 응답함으로써 지연 시간을 최소화

 

방법/수단(MEAN) : 주요 통신 수단으로 무엇을 사용할 것인지

- 메시지 기반 통신을 통해서 느슨한 결합, 격리성, 위치 투명성 보장

형태(FORM) : 어떤 형태를 지니는 시스템인지

- 탄력성 : 시스템의 작업량이 변화하더라도 일정한 응답을 유지하는 것

- 회복성 : 시스템에 장애가 발생하더라도 응답성을 유지하는 것

값(VALUE) : 즉각적으로 응답 가능한 시스템을 구축할 수 있음

 

# 리엑티브 프로그래밍 특징

Non-Blocking I/O : 스레드가 차단되지 않음

선언형 프로그래밍 : 동작을 구체적으로 명시하지 않고 목표만 선언

data streams : 데이터가 지속적으로 발생

the propagation of change : 데이터가 발생할 떄마다 변화하는 이벤트로 보고, 이벤트를 발생시키면서 데이터를 계속적으로 전달

 

# 선언형 프로그래밍 특징

- 동작을 구체적으로 명시하지 않고 목표만 선언

- 각 동작을 별도의 코드로 분리하지 않고 메서드 체인을 형성

- 함수형 프로그래밍으로 구성

 

# 리엑티브 프로그래밍 코드 구성

## Publisher

- 발행인, 발행자

- 입력으로 들어오는 데이터를 제공

## Subscriber

- Publisher가 제공한 데이터를 전달받아서 사용하는 주체

## Data Source

- Publisher에 입력으로 들어오는 데이터

## Operator

- Publisher 와 Subscriber 사이에서 애플리케이션의 요구사항에 맞게 데이터를 가공처리

 

 

728x90