본문 바로가기
💻CS/정리용

[Reactive Programming]반응형 프로그래밍이란?

by 둥둥동동# 2022. 5. 16.
728x90

정의

 

객체지향 프로그래밍, 함수형 프로그래밍과 같은 프로그래밍 기법으로 

데이터의 흐름, 변경사항을 전파하는데에 중점을 둔 프로그래밍 패러다임 입니다

즉, 주변 환경에 변화가 발생하면 이벤트를 받아 동작하도록 설계하는 방식입니다

이래 스프레드 시트 예시를 보면 빠르게 이해할 수 있습니다

 

 

 

A1B1 셀에는 각각 5와 10이 있습니다 

C1셀은 A1과 B1을 더한값을 가지고 D1은 A1와 C1을 더한 값을 갖는것으로 선언했습니다

여기에 B1의 값을 변경하게 된다면 이벤트가 전파되어 C1의 값이 변경되고 C1값을 가진 D1까지 값이 변경됩니다

 

 

 

 

B1의 값이 변경되면서 C1값이 변경되고 D1값까지 변경되는 것을 데이터흐름이 발생했다고 표현합니다

 

 

 

 

 

 

기존 패러다임과의 차이점

 

반응형 프로그래밍에는 두가지 포인트가 있습니다

 

선언적 프로그래밍

과정표현이 아닌 무엇을 해야하는가를 정의해야 합니다

위 엑셀에서 C1셀은 'A1과 B1을 더한다'라고 정의되어 있을 뿐 값을 어떻게 꺼내오는지 등을 정의하지 않습니다

 

 

 

PUSH방식의 데이터전파

B1의 값이 변경되면 이 변경사항이 C1과 D1에 자동으로 전파되어 값이 수정됩니다

 

 

 

 

 

 

정리

 

반응형 프로그래밍 방식은 모든 데이터를 스트림으로 두고 스트림내에 존재하는 데이터가 변경되면 이를 전파해 해당 데이터를 구독하는 데이터는 모두 영향을 받습니다

 

 

 

728x90
반응형

댓글