X

반응형 프로그래밍 (Reactive Programming)

I. 비동기 데이터 처리, 반응형 프로그래밍

가. 반응형 프로그래밍 (Reactive Programming)의 개념

이벤트나 변화에 반응하기위해 비동기적 데이터 처리 및 흐름 기반 프로그래밍 패러다임

나. 반응형 프로그래밍 특징

Responsive (응답성)
– 사용자 요청에 응답
Resilient (탄력성)
– 장애허용성, 고장감지/수정
Elastic (유연성)
– 작업량변화에도 응답성유지
Message Driven (메시지중심)
– 비동기 메시지 전달

II. 반응형 프로그래밍의 실행 방식 및 구성 요소

가. 반응형 프로그래밍의 실행 방식

– 동기식 비효율적 처리로 인한 병목현상 해결, 생산성 증대

나. 반응형 프로그래밍의 구성요소

구성요소 세부 요소 설명
Observable
(관찰 대상)
Hot observable – 생성직후 전달, 보장불가
Cold observable – 옵저버 구독 시까지 미전달
Operator
(연산자)
Create 연산자 – 데이터 흐름 생성 함수
– create(), just(), framArray()
Map 연산자 – 입력에 대한 출력결과함수
– map(), flatMap()
Filter 연산자 – 원하는 데이터 필터링
– filter(), first(), take()
Combine 연산자 – 여러 Observable 조합 역할
Subscribe
(구독)
OnNext – 원하는 값 통지 시 발생
OnError – 에러 발생 시 발생 이벤트
OnCompleted – 스트림 종료 시 통지

– 비동기 데이터 흐름을 각 목적에 맞도록 연산자 기반 처리, 제어하여 반응형 프로그래밍 수행

III. 반응형 프로그래밍 코드 사례

명령형 프로그래밍 반응형 프로그래밍
b = 10, c = 20, a = b + c
print(a); → a = 30 출력
c = 30
print(a) ; → a = 30 출력
b = 10, c = 20, a = b + c
print(a); → a = 30 출력
c = 30
print(a); → a = 40 출력

– 명령형 프로그래밍은 a값 계산 시 메모리에 결과가 저장되지만, 반응형 프로그래밍은 계산식이 저장
– 대표적 프로그램은 Microsoft Excel 소프트웨어
 

도리: