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