BehaviorSubject는 주로 상태 관리 및 이벤트 통지를 위해 사용됩니다. 이를 통해 애플리케이션의 상태를 추적하고 구성 요소 간에 상태를 공유하며, 데이터 스트림의 변경 사항을 관찰자에게 알릴 수 있습니다. 이제 코드 예시를 통해 BehaviorSubject의 사용을 분석해보겠습니다.
import { BehaviorSubject } from 'rxjs';
// BehaviorSubject 생성
const subject = new BehaviorSubject('initial value');
// 구독자 1
subject.subscribe((value) => {
console.log('Subscriber 1:', value);
});
// 현재 값 출력
console.log('Current value:', subject.getValue());
// BehaviorSubject 업데이트
subject.next('updated value');
// 구독자 2
subject.subscribe((value) => {
console.log('Subscriber 2:', value);
});
// BehaviorSubject 업데이트
subject.next('new value');
위 코드는 JavaScript에서 BehaviorSubject를 사용하는 간단한 예시입니다.
먼저, BehaviorSubject를 생성하고 초기값으로 'initial value'를 설정합니다. 그런 다음 첫 번째 구독자(subscriber)를 생성하여 해당 값이 변경될 때마다 로그를 출력하도록 합니다.
이어서 subject.getValue()
를 사용하여 현재 값에 접근하여 출력합니다. 현재 값은 'initial value'이므로 이를 출력합니다.
다음으로 subject.next('updated value')
를 호출하여 BehaviorSubject를 업데이트합니다. 이는 현재 값을 'updated value'로 변경하고, 모든 구독자에게 변경 사항을 알립니다. 첫 번째 구독자는 'updated value'를 수신하고 로그를 출력합니다.
그 후 두 번째 구독자를 생성하고, 이제부터는 두 구독자가 동일한 값을 받게 됩니다. 이후 subject.next('new value')
를 호출하여 BehaviorSubject를 다시 업데이트하고, 두 구독자 모두 'new value'를 수신하여 로그를 출력합니다.
이 코드의 목적은 다음과 같습니다:
1. BehaviorSubject를 사용하여 상태를 관리하고 초기값을 설정합니다.
2. 구독자 1과 구독자 2가 BehaviorSubject를 구독하여 현재 값과 변경 사항을 받아옵니다.
3. BehaviorSubject를 업데이트하여 변경 사항을 알립니다.
이 예시는 단순화된 형태로 BehaviorSubject를 사용한 것입니다. 실제 애플리케이션에서는 BehaviorSubject를 활용하여 복잡한 데이터 스트림을 관리하고 구독자 간에 데이터를 공유하는 데 사용될 수 있습니다.