반응형 프로그래밍 (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 소프트웨어
 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^