본문 바로가기
IT/Knowledge

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

by 성준하이 2024. 10. 17.
반응형

Reactive Programming 이란우선 설명하기 전에 위키에서 어떻게 설명을 하고 있는지 확인을 해보면,

 

컴퓨팅 에서 반응형 프로그래밍은 데이터 스트림 과 변경 사항의 전파 와 관련된 선언적 프로그래밍 패러다임 입니다 .

이라고 설명을 한다.

https://en.wikipedia.org/wiki/Reactive_programming

 

Reactive programming - Wikipedia

From Wikipedia, the free encyclopedia Programming paradigm based on asynchronous data streams In computing, reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change. With this paradigm, it is poss

en.wikipedia.org

 

내용이 좀 이해가 안가서 쉽게 풀어서 설명을 다시 하면,

데이터 흐름과 전달에 관한 프로그래밍 패러다임 이다.

 

일반적인 프로그래밍이나 알고리즘 등 코딩을 짜면 순서의 흐름대로 imperative Programming(명령형 프로그래밍) 을 하게 된다.

하지만 Reactive Programming 은 데이터 흐름을 먼저 정의하고 데이터에 변경이 있을시 관련된 작업들을 실행한다.

쉽게 풀면 어떤 수동적인/ 누군가에 의한 이벤트에 의해 실행하는것이 아닌, 시스템에 이벤트가 발생하면 알아서 처리가 되는것이다.

 

명령형 프로그래밍은 pull 방식, Reactive Programming 은 push 방식이라고 한다.

 

Pull 방식은 데이터를 사용하는 곳(Consumer)에서 데이터를 직접 가져와서 사용한다면,
Push 방식은 데이터의 변화가 발생한 곳에서 새로운 데이터를 Consumer에게 전달한다.
예시
A B C SUM
1 2 3 6

 

위와 같은 표가 있고 이 표에서 A를 1에서 10으로 변경을 한다고 하면 

명령형 프로그래밍은 10+2+3을 다시 계산해서 SUM 에 값을 수정하지만

Reactive Programming은 A의 값이 9 증가하였으니 즉각적으로 SUM 의 값을 9 증가 시킨다.

변화가 일어나지 않은 B와 C 를 굳이 다시 더할 필요가 없기에 그렇다.

 

즉 사람이 행하는것이 아닌 프로그램이나 시스템이 자동적으로 환경이 변하면 이벤트를 받아서 동작함으로 상호작용 하는 방식이다.

반응형

'IT > Knowledge' 카테고리의 다른 글

zustand 란?(React 에서)  (13) 2024.10.23
RxJava 란?  (11) 2024.10.18
키네시스 스프링(Kinesis Spring) 이란  (12) 2024.10.15
Race condition이란  (15) 2024.10.07
웹 GL(WebGL)  (21) 2024.10.03

댓글