생계유지형 개발자/Reactive Programming

[리액티브 프로그래밍] 리액티브 프로그래밍이란

이 가을 2021. 1. 29. 12:28

핵심 용어

  • 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 함수형 프로그래밍

명령형 프로그래밍

"데이터를 이렇게 저렇게 처리하라"는 알고리즘을 구체적으로 명시한다.

함수명을 보지 않으면 알고리즘을 이해해야만 어떤 작업을 하는 알고리즘인지 알 수 있다.

 

함수형 프로그래밍

데이터 처리 방법에 대한 알고리즘을 구체적으로 드러내기 보다는 "이 작업의 목적"이 드러날 수 있도록 가독성을 중시한다.

그래서 함수 로직을 보면 쉽게 목적을 알 수 있으며, 선언적이라고도 한다.