.NET

리액티브 프로그래밍

Reactive Extensions (Rx), IObservable, operators, schedulers, backpressure (선택 사항이며 최신 web API에서는 덜 흔합니다)

24 면접 질문·
Senior
1

Reactive Extensions (Rx.NET)에서 IObservable<T> 인터페이스란 무엇인가요?

답변

IObservable<T>는 push 기반 데이터 소스를 나타내는 Rx.NET의 기본 인터페이스입니다. observer가 비동기 알림을 받기 위해 구독할 수 있는 Subscribe 메서드를 제공합니다. 이는 IEnumerable<T>의 리액티브 대응물입니다. IEnumerable이 데이터를 동기적으로 pull하는 반면, IObservable은 데이터를 비동기적으로 subscriber에게 push합니다.

2

Rx.NET에서 IObserver<T> 인터페이스의 세 가지 메서드는 무엇인가요?

답변

IObserver<T>는 세 가지 메서드를 정의합니다. 시퀀스의 각 요소를 받는 OnNext(T value), 오류를 처리하고 실패 시 시퀀스 종료를 알리는 OnError(Exception error), 그리고 시퀀스가 성공적으로 완료되었음을 나타내는 OnCompleted()입니다. 이 세 메서드는 observer 계약을 구성하며, OnError 또는 OnCompleted 이후에는 더 이상 OnNext가 호출되지 않음을 보장합니다.

3

IEnumerable<T>와 IObservable<T>의 주요 차이점은 무엇인가요?

답변

IEnumerable<T>는 pull 모델로, 소비자가 GetEnumerator()와 MoveNext()를 사용해 데이터를 동기적으로 요청합니다. IObservable<T>는 push 모델로, 소스가 Subscribe()를 통해 데이터를 비동기적으로 subscriber에게 push합니다. IEnumerable은 반복 중에 호출 스레드를 차단하는 반면, IObservable은 논블로킹 작업과 LINQ operators를 통한 비동기 이벤트 합성을 가능하게 합니다.

4

Rx.NET에서 Select operator의 역할은 무엇인가요?

5

Rx.NET에서 Where operator는 어떻게 작동하나요?

+21 면접 질문

다음 면접을 위해 .NET을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기