고급 RxJS 패턴
고차 observable, 멀티캐스팅, share 연산자, 오류 복구, 재시도 전략, 백프레셔, 커스텀 연산자
22 면접 질문·
Senior
1동시 HTTP 요청을 처리할 때 switchMap과 mergeMap의 주요 차이점은 무엇입니까?
1
동시 HTTP 요청을 처리할 때 switchMap과 mergeMap의 주요 차이점은 무엇입니까?
답변
switchMap은 새 값이 도착하면 이전 요청을 취소하지만, mergeMap은 모든 활성 구독을 동시에 유지합니다. 검색 바에서 switchMap은 새 입력 시 진행 중인 요청을 자동으로 취소하여 오래된 결과를 방지합니다. mergeMap은 병렬 파일 업로드처럼 모두 완료되어야 하는 독립적인 작업에 적합합니다.
2사용자 작업 큐를 처리할 때 mergeMap 대신 concatMap을 사용해야 하는 경우는 언제입니까?
2
사용자 작업 큐를 처리할 때 mergeMap 대신 concatMap을 사용해야 하는 경우는 언제입니까?
답변
concatMap은 각 내부 observable이 완료되기를 기다린 후 다음을 처리하여 실행 순서를 보장하지만, mergeMap은 순서 보장 없이 모든 작업을 병렬로 처리합니다. 순차적인 은행 거래나 채팅 메시지 전송처럼 엄격한 순서가 필요한 중요한 작업에는 concatMap을 사용하세요. mergeMap은 병렬 실행 가능한 독립적인 작업에 적합합니다.
3고차 observable이란 무엇이며 왜 flattening 연산자가 필요합니까?
3
고차 observable이란 무엇이며 왜 flattening 연산자가 필요합니까?
답변
고차 observable은 다른 observable을 방출하는 observable입니다. 예를 들어 클릭마다 HTTP 요청 observable을 방출하는 클릭 observable이 있습니다. flattening 연산자(switchMap, mergeMap, concatMap)가 없으면 직접 사용할 수 없는 중첩된 Observable<Observable<T>> 구조가 생깁니다. flattening 연산자는 내부 observable을 자동으로 구독하고 그 값을 메인 스트림으로 방출합니다.
4
사용자가 새 입력을 할 때 진행 중인 검색을 자동으로 취소하려면 어떤 연산자를 사용해야 합니까?
5
중요한 요청을 처리할 때 exhaustMap은 switchMap과 어떻게 다릅니까?
+19 면접 질문
기타 Angular 면접 주제
TypeScript 기초
Junior
25개 질문TypeScript 고급
Junior
20개 질문Angular 기초
Junior
20개 질문컴포넌트와 라이프사이클
Junior
20개 질문Services & Dependency Injection
Junior
20개 질문Angular 모듈 구성
Mid-Level
22개 질문Angular CLI
Junior
18개 질문디렉티브와 Pipe
Mid-Level
22개 질문라우팅과 내비게이션
Mid-Level
24개 질문리액티브 폼
Mid-Level
26개 질문템플릿 기반 폼
Mid-Level
16개 질문RxJS 기초
Mid-Level
22개 질문RxJS 연산자
Mid-Level
24개 질문HttpClient 및 API 호출
Mid-Level
22개 질문기본 상태 관리
Mid-Level
20개 질문Change Detection
Mid-Level
20개 질문Angular Signals
Mid-Level
20개 질문Standalone Components
Mid-Level
18개 질문Angular 단위 테스트
Mid-Level
22개 질문엔드투엔드 테스팅
Mid-Level
18개 질문빌드 및 최적화
Mid-Level
20개 질문NgRx 기초
Senior
24개 질문NgRx 고급
Senior
24개 질문Angular 아키텍처
Senior
22개 질문성능 최적화
Senior
22개 질문보안 및 모범 사례
Senior
20개 질문Angular Universal 및 SSR
Senior
20개 질문Angular 마이크로 프론트엔드
Senior
20개 질문