핵심 용어
- Observer (+ Obeservable)
- Subscriber
- Scheduler (+ Schedule)
- Functional Programming
- Reactive Operators (=> Pre defined function / map, flatMap, forEach 등)
※ Declarative Programming = Functional Programming + Reactive Operators
핵심 Flow
데이터의 발행 -> 데이터의 처리, 가공 -> 데이터를 구독
비동기 작업의 차이 이해
작업 A와 B를 비동기 방식으로 순차적으로 처리할 때, 흔히 알고있는 비동기 방식은 작업 A가 완료되면 작업 B를 호출 즉, 콜백하는 것이다.
이 때, 작업 A는 메인 함수, 작업 B는 콜백 함수라고 표현한다.
리액티브 프로그래밍의 비동기 방식은 조금 다르다. 작업 A가 완료하면 B를 호출하는 것이 아니라, 알린다.
이 때, 작업 A는 Observable, 작업 B는 Observer이라고 표현한다.
- Observable: 발행자 (발행 주체)
- Observer: 구독자 (발행을 받음)
명령형 프로그래밍 vs 함수형 프로그래밍
명령형 프로그래밍
"데이터를 이렇게 저렇게 처리하라"는 알고리즘을 구체적으로 명시한다.
함수명을 보지 않으면 알고리즘을 이해해야만 어떤 작업을 하는 알고리즘인지 알 수 있다.
함수형 프로그래밍
데이터 처리 방법에 대한 알고리즘을 구체적으로 드러내기 보다는 "이 작업의 목적"이 드러날 수 있도록 가독성을 중시한다.
그래서 함수 로직을 보면 쉽게 목적을 알 수 있으며, 선언적이라고도 한다.
'생계유지형 개발자 > Reactive Programming' 카테고리의 다른 글
[리액티브 프로그래밍] About Webflux, Mono (0) | 2021.03.19 |
---|---|
[리액티브 프로그래밍] 토비의 WebFlux, Mono, Flux 강의 (0) | 2021.03.17 |
[리액티브 프로그래밍] User Thread, Daemon Thread의 차이점 (0) | 2021.03.16 |