Observable 4 Hot vs Cold Reactive Programming에서는 Data Stream을 "Hot" 또는 "Cold"로 분류할 수 있습니다. 여기서 사용하는 Library에 따라 Observable(ReactiveX의 관점)과 Sequence(Reactor의 관점)로 용어가 나뉠 수 있습니다. 따라서 아래의 내용에서 Stream이라는 내용이 나온다면 Observable 또는 Sequence라고 이해하시면 될 것 같습니다. Cold Observable/Sequence 발행자(Publisher)가 구독자(Subscriber)가 등록될 때마다 데이터 스트림을 처음부터 다시 시작하는 방식으로 동작합니다. 이 스트림은 데이터를 새롭게 다시 발행할 수 있으며, 새로운 구독자가 등록될 때마다 데이터의 처음부터 끝까지 모든 항목을 발행합니다.. Domain/Reactive Programming 2023. 5. 12. 관찰자패턴 (Observer Pattern) 옵저버 패턴은 객체의 상태 변화를 관찰하는 옵저버를 객체에 등록하여 상태 변화가 있을때마다 notify를 통해 객체가 관찰자들에게 알림을 보내는 패턴을 말합니다. 쉽게 말해서 어떤 이벤트가 일어나는 것을 감시하는 패턴입니다. 옵저버 패턴을 활용하면 다른 객체의 상태 변화를 별도의 함수 호출 없이 즉각적으로 알 수 있습니다. 따라서 이벤트에 대한 처리를 자주 해야하는 프로그램이라면 매우 효율적일 수 있습니다. public class AppMain { /* * 예제의 설정 * 가장 보편적인 설정이라고 볼 수 있는 Youtuber와 Subscriber들의 관계로 예제를 설정하였습니다. * Youtuber가 새로운 영상을 올리거나, 공지를 등록하는 것을 모두 notify 함수로 개념을 통일하여서 작성하였습니다... Computer Science/Design Pattern 2023. 1. 29. [ReactiveX] Cold Observable Vs Hot Observable Cold Observable Observable을 선언하고 just(), fromlterable() 함수를 호출해도 옵저버가 subscribe() 함수를 호출하여 구독하거나 Hot Observable로 변환되지 않으면 데이터를 발행하지 않습니다. 다른 말로 게으른 접근법이라고도 합니다. 즉, 차가운 Observable은 구독자가 구독하면(Subscribe) 준비된 데이터를 처음부터 발행합니다. Observable, Single, Maybe는 Cold Observable이라고 할 수 있습니다. Subject 객체를 만들거나 ComiectableObservable 클래스를 활용하는 것으로 Hot Observable 객체로 변환이 가능합니다. 자발적으로 아무것도 하지 않는 수동적인 Observable Obse.. Domain/ReactiveX 2021. 4. 29. [ReactiveX] Observable Observable 클래스는 데이터의 변화가 발생하는 데이터 소스입니다. Observable은 옵저버 패턴을 구현합니다. 옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자(옵저버) 목록을 객체에 등록합니다. 그리고 상태 변화가 있을 때마다 메서드를 호출하여 객체가 직접 목록의 각 옵저버에게 변화를 알려줍니다. 라이프 사이클은 존재하지 않으며 보통 단일 함수를 통해 변화만 알립니다. Observable의 콜백 onNext() Observable이 데이터의 발행을 알립니다. 기존의 옵저버 패턴과 같습니다. onComplete() 모든 데이터의 발행을 완료 했음을 알립니다. onComplete 이벤트는 단 한번만 발생하며. 발생한 후에는 더 이상 onNext 이벤트가 발생해선 안 됩니다. onError() O.. Domain/ReactiveX 2021. 4. 29. 이전 1 다음