리액티브 프로그래밍

grapefruit·2022년 11월 29일
0

BE 2022-11.28~12.02

목록 보기
1/2

리액티브 시스템(Reactive System)이란?

참고자료: https://www.reactivemanifesto.org/

리액티브 시스템의 설계 원칙

  • MEANS

    MEANS는 리액티브 시스템에서 사용하는 커뮤니케이션 수단을 의미한다.

Message Driven

리액티브 시스템에서는 메시지 기반 통신을 통해 여러 시스템 간에 느슨한 결합을 유지한다.


  • FORM

    FORM은 메시지 기반 통신을 통해 리액티브 시스템이 어떤 특성을 가지는 구조로 형성되는지를 의미한다.

Elastic

시스템으로 들어오는 요청량이 적거나 많거나에 상관없이 일정한 응답성을 유지하는 것을 의미한다.

Resillient

시스템의 일부분에 장애가 발생하더라도 응답성을 유지하는 것을 의미한다.


  • VALUE

    리액티브 시스템의 핵심 가치가 무엇인지를 표현하는 영역이다.

Responsive

리액티브 시스템은 클라이언트의 요청에 즉각적으로 응답할 수 있어야 함을 의미한다.

Maintainable

클라이언트의 요청에 대한 즉각적인 응답이 지속가능해야 함을 의미한다.

Extensible

클라이언트의 요청에 대한 처리량을 자동으로 확장하고 축소할 수 있어야 함을 의미한다.


리액티브 프로그래밍(Reactive Programming)이란?

리액티브 프로그래밍은 한마디로 리액티브 시스템에서 사용되는 프로그래밍 모델을 의미한다.

리액티브 시스템에서의 메시지 기반 통신(Message Driven)은 Non-Blocking 통신과 유기적인 관계를 맺고 있으며, 리액티브 프로그래밍은 Non-Blocking 통신을 위한 프로그래밍 모델이다.

리액티브 프로그래밍의 특징

In computing, reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change. With this paradigm, it's possible to express static (e.g., arrays) or dynamic (e.g., event emitters) data streams with ease, and also communicate that an inferred dependency within the associated execution model exists, which facilitates the automatic propagation of the changed data flow.

위 설명은 위키피디아에 나와 있는 리액티브 프로그래밍에 대한 설명이다.

declarative programming paradigm

리액티브 프로그래밍은 선언형 프로그래밍 방식을 사용하는 대표적인 프로그래밍 모델이다.

data streams and the propagation of change

data streams는 지속적으로 데이터가 입력으로 들어올 수 있음을 의미하며, 리액티브 프로그래밍에서는 데이터가 지속적으로 발생하는 것 자체를 데이터에 어떤 변경이 발생함을 의미한다.

그리고 이 변경 자체를 이벤트로 간주하고, 이벤트가 발생할 때 마다 데이터를 계속해서 전달한다.

automatic propagation of the changed data flow

앞에서 설명한 data streams and the propagation of change와 같은 의미다.
지속적으로 발생하는 데이터를 하나의 데이터 플로우로 보고 데이터를 자동으로 전달한다.

profile
개발자몽

0개의 댓글