상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - switchMap과 mergeMap의 차이는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
switchMap과 mergeMap은 둘 다 RxJS에서 사용하는 연산자로, 모두 소스 옵저버블에서 방출된 값을 받아 내부에서 새로운 옵저버블을 만들고, 그 내부 옵저버블에서 방출되는 값을 다시 방출하는 역할을 합니다. 하지만 내부 옵저버블을 처리하는 방식에서 중요한 차이가 있으며, 이 차이가 두 연산자의 동작과 사용처를 구분짓습니다. 1. switchMap switchMap은 소스 옵저버블에서 새로운 값이 방출될 때마다 이전에 생성된 내부 옵저버블을 "취소"하거나 구독을 "해지"하고, 새로운 내부 옵저버블로 전환합니다. 즉, 이전 내부 옵저버블의 결과는 더 이상 방출되지 않으며 무시됩니다. 이 특성 때문에 switchMap은 일반적으로 "가장 최근의 요청만 처리하고 이전의 것은 무시해야 하는 상황", 예를 들어 사용자가 입력하는 실시간 검색(auto-complete) 기능에 주로 사용됩니다. 빠르게 여러 값을 방출해도 마지막에 방출된 값에 해당하는 내부 옵저버블만 처리하고, 이전에 요청한 데이터들이 도착하더라도 무시하기 때문에 불필요한 작업이나 오래된 데이터 처리를 막을 수 있습니다. 2. mergeMap 반면에 mergeMap은 소스 옵저버블에서 방출된 각 값을 모두 내부 옵저버블로 매핑하고, 이 내부 옵저버블에서 방출되는 값들을 모두 병합하여 동시에 방출합니다. 내부 옵저버블 구독을 취소하지 않고 모두 유지하며 모든 내부 옵저버블의 결과를 처리합니다. 즉, 병렬로 여러 내부 옵저버블을 실행시키고 그 결과를 하나의 스트림으로 합칠 때 사용됩니다. 예를 들어, 여러 개의 API 요청을 동시에 보내고 응답을 모두 받고자 할 때 적합합니다. 각 요청은 독립적으로 처리되고 그 결과가 늦게 도착해도 모두 방출됩니다. --- 요약 - switchMap : 이전 내부 옵저버블을 취소하고 가장 최근의 것만 구독하기 때문에, 마지막 값만 중요하거나 이전 작업을 무시해야 할 때 사용한다. (예: 실시간 검색) - mergeMap : 모든 내부 옵저버블을 유지하며 병렬로 처리하고, 모두의 결과를 방출한다. (예: 여러 API 요청 동시 처리) 따라서, 두 연산자 선택은 "이전에 수행된 비동기 작업을 무시해도 되는가?"와 "모든 비동기 작업 결과를 처리해야 하는가?"의 여부에 따라 결정됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기