Reactive Programming(리엑티브 프로그래밍) 정의

Reactive Programming(리엑티브 프로그래밍) 정의

728x90

위키피디아 리엑티브 프로그래밍 정의

in computing, reactive programming is a declarative programming paradigm concernd with data streams and the propagation of change .(변화의 전파와 데이트 흐름과 관련된 선언적 프로그래밍 페러다임이다.)

라고 정의되어 있습니다.

정리하면

1. 번화의 전파와 데이터 흐름 push 방식 : 데이터가 변경될때 마다 이벤트를 발생시켜서 데이터를 계속적으로 전달한다.

2. 선언적 프로그래밍: 실행할 동작을 구체적으로 명시하는 명령형 프로그래밍과 달리 선언형 프로그래밍은 단순히 목표를 선언한다.

이라고 합니다.

push 방식 데이터 전파 vs pull 방식 데이터 전파

push 방식

: 데이터의 변화가 발생했을 때 변경이 발생한 곳에서 데이터를 보내주는 방식

RTC(Real Time Communication)

소켓 프로그래밍

DB Trigger

Spring의 Application Event

Angular의 데이터 바인딩

스마트폰의 Push메시지

pull 방식

: 변경된 데이터가 있는지 요청을 보내 질의하고 변경된 데이터를 가져오는 방식

클라이언트 요청 & 서버 응답 방식의 애플리케이션

Java와 같은 절차형 프로그래밍 언어

명령형 프로그래밍 vs 선언형 프로그래밍

명령형 프로그래밍

// List의 숫자들 중 6보다 큰 홀수들의 합을 구하라 List numbers = Arrays.asList(1, 3, 21, 10, 8, 11); int sum = 0; for(int number : numners){ if(number > 6 && (numner % 2 !=0))){ sum +=number; } } System.out.println("명령형 프로그래밍 사용 : " + sum);

선언형 프로그래밍

// List의 숫자들 중 6보다 큰 홀수들의 합을 구하라 List numbers = Arrays.asList(1, 3, 21, 10, 8, 11); int sum = number.stream() .filter(number -> number > 6&& % 2 !=0)) .mapToInt(number -> number) .sum(); System.out.println("선언형 프로그래밍 사용 : " + sum);

리엑티브 프로그래밍을 위해 알아야 될 것들

Observable : 데이터 소스

: 데이터 소스 Operators(리엑티브 연산자) : 데이터 소스를 처리하는 함수

: 데이터 소스를 처리하는 함수 Scheduler(스케줄러) : 스레드 관리자

: 스레드 관리자 Subscriber : Observable이 발행하는 데이터를 구독하는 구독자

적용 사례

Observable.just(100, 200, 300, 400, 500) // 발행 .doOnNext(data -> System.out.println(getTrheadName() + " : " + doOnNext() ":" + data)) .subscribeOn(Schedulers.io()) .observerveOn(Schedulers.computation()) .fillter(umber -> number > 300) // 가공 .subscribe(num -> System.out.println(getTrheadName() + " : " + result ":" + num)) // 구독

참고

www.youtube.com/watch?v=2McwNWO8MIw&ab;_channel=Kevin%27sITVillage

from http://jade314.tistory.com/193 by ccl(A) rewrite - 2021-04-09 23:26:25