Development/RxSwift

Reactive Programming 란?

Tunko 2022. 5. 30. 04:26

기존 방식인 명령형 코드와 Rx방식인 반응형 코드 비교

var a = 1
var b = 2
var c = a + b 
print(c) // 결과 3
a = 12
print(c) // 결과 3

이곳 마지막에 a = 12 를 넣었다. 하지만 c에 대한 값은 3으로 고정되어있다. 당연하다. 하지만 변수의 값의 변경에 따라 자동으로 결과를 바꾸고 싶다. 이때 사용하는것이 Rx다.

Reactive Programming 반응형 프로그래밍 방식이 필요하다.

let a = BehaviorSubject(value: 1)
let b = BehaviorSubject(value: 2)
Observable.combineLatest(a, b) { $0 + $1 }
    .subscribe(onNext: {print($0)})
    .disposed(by: disposeBag)
a.onNext(12)

// 결과
// 3
// 14

분명 위 코드보다 복잡해 보인다. 어떤것을 어떻게 사용하는지 보단 결과에 집중하자

결과는 자동으로 14로 출력되는것을 확인 할 수 있다.

a.onNext(12) 를 통해서 a에 1로 할당되있던 값을 12로 변경한것이다.

변경과 동시에 다시 재연산을하여 결과가 14로 바뀐것이다.

 

위에서 말한것중 자동으로 라는 설명에 집중하자. 알아서 바뀐다는거다. 얼마나 좋은가 ㅎㅎ

 

이것이 Reactive Programming 방식이다.

반응형