리액티브 프로그래밍

log.yunsik·2022년 4월 20일
0

리액티브 프로그래밍이란?

데이터나 이벤트 변화의 반응에 초점을 맞춘 프로그래밍이다.

리액티브 함수형 프로그래밍이 생긴 이유

사람은 비동기 방식 또는 이벤트 기반 시스템을 다룰때 컴퓨터처럼 생각하기 어렵다. 리액티브 프로그래밍을 사용하면 비동기 방식 혹은 이벤트 기반 시스템을 다룰 때 컴퓨터처럼 생각하지 않아도 된다. 리액티브 함수형 프로그래밍이란 동시성과 병렬성의 해결이다. 즉 비동기 요구사항을 구현했을 때 콜백 지옥 문제를 해결하는 것이다. RxJava는 명령형 방식의 위험을 회피하기 위해 선언적 접근을 사용한다.

리액티브 프로그래밍이 필요한 경우

  • 동시에 많은 이벤트를 처리해야할 때
  • 비동기성을 띠는 디스크나 네트워크 등 지연 바인딩 I/O 이벤트 응답
  • 통제 불가능한 애플리케이션에서 발생하는 이벤트나 데이터를 다룰 때

리액티브 명령형 프로그래밍 vs 리액티브 함수형 프로그래밍

단 하나의 이벤트 스트림만 처리하는 경우나 수많은 이벤트 스트림이 독립적인 경우에도 명령형 프로그래밍의 구현이 복잡하지 않기 때문에 괜찮다. 하지만 여러 이벤트들을 묶어 처리하는 것 처럼 복잡한 경우 명령형 접근 방식을 사용하면 동시성 문제 등 복잡함이 극도로 증가한다 반면 리액티브 함수형 프로그래밍은 복잡도가 명령형에 비해 현저히 낮다.

명령형 프로그래밍 vs 함수형 프로그래밍

명령형 프로그래밍과 함수형 프로그래밍은 서로 대척 개념으로 사용되는데 리액티브 함수형 프로그래밍은 궁극적으로 명령형 프로그래밍을 함수형 프로그래밍으로 추상화한 것이다. 즉 하나의 접근 방식 명령형 시스템상의 추상화이다.

0개의 댓글