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

swifter·2022년 9월 2일
0

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

반응형 프로그래밍이란 데이터의 흐름과 변경사항의 전파에 중점을 둔 선언적 프로그래밍 패러다임이다.
-위키피디아-

  1. 패러다임
    패러다임이란 사람들의 견해나 사고를 근본적으로 규정하고 있는 틀이나 체계를 말한다.
    프로그래밍 패러다임의 종류로는
  • 객체지향 프로그래밍
  • 함수형 프로그래밍
  • 반으형 프로그래밍
    등이 있다.

프로그래밍에서 패러다임이란 내가 프로그램을 어떤 관점으로 바라보고 설계하느냐에 따라 여러가지 형태로 나뉘어 질 수 있다.

요즘에는 하나의 프로그램을 하나의 패러다임만이 아니라 여러 패러다임을 함께 섞어서 사용하려는 시도가 늘고 있다.

  1. 선언형 프로그래밍
    명령형 프로그래밍이 어떻게 동작 하는지 묘사한 알고리즘을 시간 순서대로 작성한 것이라면,
    선언형 프로그래밍은 무엇을 해야하는지 묘사하고 언제 어떻게 실행되는지는 내부에서 결정하게 된다.

선언형 프로그래밍의 장점

  • 다른 해석이나 계산 없이 읽기만 해도 의미가 해석되는 편이라 가독성이 좋다
  • 재사용성이 높다
  • 작동 순서를 구체적으로 작성하지 않아 오류가 적다
  • 프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있다
  • 문제가 발생해도 다른 것에 영향을 주지 않는다

따라서 일반적으로 명령형 프로그맹에 비해 선언형 프로그래밍이 가독성, 재사용성, 독립성, 유지보수성면에서 좋다.

  1. Rx (ReactiveX) 란?

관측 가능한 스트림을 통해 비동기 프로그래밍을 하기 위한 API

비동기 프로그래밍은 실행 순서와 데이터를 제어하기 어렵다. 하지만 프론트엔드는 비동기로 동작하는 부분이 많다. 그렇기 때문에 반응형 프로그래밍이 필요하다.

반응형 프로그래밍은 변경사항의 전파와 데이터의 흐름을 중심으로 선언형으로 작성하여 어려움을 해결한다. 여기서 변경사항의 전파와 데이터의 흐름을 이벤트(Event)로 표현할 수 있다.

Event + 선언형 = 반응형 프로그래밍
반응형 프로그래밍이란 이벤트를 선언형으로 작성하는 프로그래밍 패러다임

Rx에서는 이벤트의 종류를 Next, Error, Complete 3가지 type으로 정의해 상황을 처리할 수 있도록 정의했다.

이렇게 모든 상황을 커버할 수 있도록 이벤트를 General하게 만든 것을 Stream이라고 부른다.

따라서 위 인용에서 조금 수정하여 반응형 프로그래밍이란 스트림을 선언형으로 작성하는 프로그래밍 패러다임이라고 할 수 있다.

참고:
https://dongminyoon.tistory.com/45
https://kevinkim95-dev.tistory.com/10

0개의 댓글