Angular

고급 RxJS 패턴

고차 observable, 멀티캐스팅, share 연산자, 오류 복구, 재시도 전략, 백프레셔, 커스텀 연산자

22 면접 질문·
Senior
1

동시 HTTP 요청을 처리할 때 switchMap과 mergeMap의 주요 차이점은 무엇입니까?

답변

switchMap은 새 값이 도착하면 이전 요청을 취소하지만, mergeMap은 모든 활성 구독을 동시에 유지합니다. 검색 바에서 switchMap은 새 입력 시 진행 중인 요청을 자동으로 취소하여 오래된 결과를 방지합니다. mergeMap은 병렬 파일 업로드처럼 모두 완료되어야 하는 독립적인 작업에 적합합니다.

2

사용자 작업 큐를 처리할 때 mergeMap 대신 concatMap을 사용해야 하는 경우는 언제입니까?

답변

concatMap은 각 내부 observable이 완료되기를 기다린 후 다음을 처리하여 실행 순서를 보장하지만, mergeMap은 순서 보장 없이 모든 작업을 병렬로 처리합니다. 순차적인 은행 거래나 채팅 메시지 전송처럼 엄격한 순서가 필요한 중요한 작업에는 concatMap을 사용하세요. mergeMap은 병렬 실행 가능한 독립적인 작업에 적합합니다.

3

고차 observable이란 무엇이며 왜 flattening 연산자가 필요합니까?

답변

고차 observable은 다른 observable을 방출하는 observable입니다. 예를 들어 클릭마다 HTTP 요청 observable을 방출하는 클릭 observable이 있습니다. flattening 연산자(switchMap, mergeMap, concatMap)가 없으면 직접 사용할 수 없는 중첩된 Observable<Observable<T>> 구조가 생깁니다. flattening 연산자는 내부 observable을 자동으로 구독하고 그 값을 메인 스트림으로 방출합니다.

4

사용자가 새 입력을 할 때 진행 중인 검색을 자동으로 취소하려면 어떤 연산자를 사용해야 합니까?

5

중요한 요청을 처리할 때 exhaustMap은 switchMap과 어떻게 다릅니까?

+19 면접 질문

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

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

무료로 시작하기