본문 바로가기
✘✘✘ 끄적끄적

앱은 상태 머신 그리고 함수형 프로그래밍과 RxJS는 상태를 어떻게 관리해 개발을 할 수 있을까?

by PrettyLog 2023. 3. 31.

앱은 상태 머신이다

  • 데이터를 입력 받고
  • 데이터를 상태로 저장하고
  • 저장된 상태를 가공해서 원하는 결과를 출력

상태 머신 내 변수, 반복문, 분기문은 오류를 생산하는 주요 원인들

오류를 줄이기 위해선 이 변수, 반복문, 분기문을 상태머신에서 제거해야 한다. 어떻게 제거할 수 있을까?

RxJS를 사용해 오류를 줄일 수 있다.

입력데이터 오류

rxjs는 동기, 비동기 데이터 입력을 시간축을 가진 하나의 Observable 단일 방식으로 입력 데이터 처리 한다.
-> 입력되는 데이터를 시간 순으로 관리한다

상태 전파 오류

상태 전파를 기존 옵저버 패턴을 개선해 오류를 줄인다

RxJS Observer는 next, error, complete 세 가지 패턴을 가진다
RxJS Observable은 읽기 전용이며 단 방향 객체이다. (operator > 항상 새로운 객체 반환)

로직 오류 - 함수형 프로그래밍을 도입해 해결

  • 반복문, 분기분, 변수 제거

  • RxJS에서 사용하는 operator를 사용해 로직 처리 단계에서 오류 확률을 줄인다.

    내부에 영향을 주지 않는다)

Javascript 함수는 일급 객체이다.

  • 일급 객체란?
  1. 변수에 할당 가능
  2. 인자로 전달 가능
  3. return 가능
    이러한 함수가 일급 객체인 특성을 이용해 함수형 프로그래밍을 할 수 있다.
    함수형 프로그래밍에서 사용하는 함수는 순수 함수이다.
  • 순수 함수란?
  1. 동일 인풋 동일 아웃풋
  2. Side Effect 부수효과가 없는 함수 (내부에서 외부에 영향을 주지 않고, 외부에서

RxJS에서 사용하는 operator는 함수형 프로그래밍에서 사용하는 순수 함수이다.

  • 외부에 영향을 주지 않고, 새로운 객체를 반환하며 (immutable), 이로 인해 예측 가능하게 변수에 할당된 (상태) 값을 사용할 수 있다.

RxJS에서는 opertator 함수들이 순수함수로 이루어져 있고 이를 활용해 상태를 가공해 원하는 결과를 부수 효과(side effect)없이 도출해 낼 수 있다.

댓글