앱은 상태 머신이다
- 데이터를 입력 받고
- 데이터를 상태로 저장하고
- 저장된 상태를 가공해서 원하는 결과를 출력
상태 머신 내 변수, 반복문, 분기문은 오류를 생산하는 주요 원인들
오류를 줄이기 위해선 이 변수, 반복문, 분기문을 상태머신에서 제거해야 한다. 어떻게 제거할 수 있을까?
RxJS를 사용해 오류를 줄일 수 있다.
입력데이터 오류
rxjs는 동기, 비동기 데이터 입력을 시간축을 가진 하나의 Observable 단일 방식으로 입력 데이터 처리 한다.
-> 입력되는 데이터를 시간 순으로 관리한다
상태 전파 오류
상태 전파를 기존 옵저버 패턴을 개선해 오류를 줄인다
RxJS Observer는 next, error, complete 세 가지 패턴을 가진다
RxJS Observable은 읽기 전용이며 단 방향 객체이다. (operator > 항상 새로운 객체 반환)
로직 오류 - 함수형 프로그래밍을 도입해 해결
반복문, 분기분, 변수 제거
RxJS에서 사용하는 operator를 사용해 로직 처리 단계에서 오류 확률을 줄인다.
내부에 영향을 주지 않는다)
Javascript 함수는 일급 객체이다.
- 일급 객체란?
- 변수에 할당 가능
- 인자로 전달 가능
- return 가능
이러한 함수가 일급 객체인 특성을 이용해 함수형 프로그래밍을 할 수 있다.
함수형 프로그래밍에서 사용하는 함수는 순수 함수이다.
- 순수 함수란?
- 동일 인풋 동일 아웃풋
- Side Effect 부수효과가 없는 함수 (내부에서 외부에 영향을 주지 않고, 외부에서
RxJS에서 사용하는 operator는 함수형 프로그래밍에서 사용하는 순수 함수이다.
- 외부에 영향을 주지 않고, 새로운 객체를 반환하며 (immutable), 이로 인해 예측 가능하게 변수에 할당된 (상태) 값을 사용할 수 있다.
RxJS에서는 opertator 함수들이 순수함수로 이루어져 있고 이를 활용해 상태를 가공해 원하는 결과를 부수 효과(side effect)없이 도출해 낼 수 있다.
'✘✘✘ 끄적끄적' 카테고리의 다른 글
[Web] HTML content, text blurry: transform + border-radius, zoom in and out (0) | 2023.08.02 |
---|---|
"People don't buy what you do, They buy why you do it." (0) | 2023.04.16 |
[Math] trunc, parseInt vs floor? 음수일 경우 값이 다르다 조심!! (0) | 2023.04.15 |
RxJS 한 없이 좋다 좋은데 가끔 디버깅이 어렵다 (0) | 2023.03.31 |
댓글