-
Reactive Programming, 반응형 프로그래밍개발 관련 2021. 8. 4. 17:13
반응형 프로그래밍은 비동기, 함수형 프로그래밍의 이해가 먼저 필요하다.
반응형 프로그래밍은 비동기 처리에 관련해 나온 아이디어다.
- 비동기 동시 처리 (async concurrent) 처리 시, 데이터의 처리와 Thread-safe 때문에 고안
- 데이터 처리 방식은, 데이터를 관찰하며 데이터의 변화에 따른 처리를 함 ( 변화에 따라 반응해서 반응형 )
- 선언적 프로그래밍 개념
함수형 프로그래밍과 궁합이 좋다.
- 둘 다 선언적 프로그래밍이고
- thread-safe를 위해 side-effect를 제거해야 하기 때문에
- Functional Reactive Programming, 함수형 반응형 프로그래밍 개념도 있다.
쉽게 생각하면 함수형 프로그래밍에 따라 비동기 처리 코드를 작성하고,
데이터에 반응해서 처리를 하는 프로그래밍
이라고 생각한다.
이 아이디어를 라이브러리화 한 것들은 많은데, 대표적으로 ReactiveX가 있으며,
iOS 개발 환경에선 RxSwift를 많이 사용한다.
데이터 처리 방식의 이해
- 데이터를 만드는 함수 ( generator )
- 데이터를 받아 사용하는 함수 ( consumer )
두 함수가 있을 때, 둘 사이엔 데이터의 전달, 흐름이 있다. ( stream )
generator는 결과로 단순 값이 아닌, 데이터를 관측할 수 있는 stream을 생성 및 반환한다. * Rx에선 observable
consumer는 이 stream을 관측하며, 처리한다. * Rx에선 subscriber
데이터가 stream을 타고 가며, map, filter 등 메소드 등에 의해 가공될 수 있다.
* 이러한 메소드를 Rx에선 operator라 한다.
'개발 관련' 카테고리의 다른 글
DI (Dependency Injection 의존성 주입), DIP ( Dependency Inversion Principle 의존 관계 역전 원칙) (0) 2022.03.23 비동기 async 개념, 키워드 정리 (0) 2021.08.04 Functional Programming, 함수형 프로그래밍 (0) 2021.07.30 애자일, 익스트림 프로그래밍, 테스트 주도 개발 (0) 2020.10.26