상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
가습기를 사용하면 성인의 피부 건강이 좋아지는 이유는 무엇인가요?
가습기를 사용하면 불면증 예방이 쉬워지는 이유는 무엇인가요?
변호사 비용을 절약할 수 있는 방법이 있나요?
이달고의 출생지는 현재 어떤 모습인가요?
멕시코 시티의 주요 환경 보호 단체는 어떤 것이 있나요?
멕시코의 전통 문화는 어떤 것들이 있나요?
멕시코에서의 여행 중 현지인과 소통하는 방법은 무엇인가요?
멕시코의 전통 의상 중 가장 유명한 것은 무엇인가요?
카놀라유의 사용이 심장병 예방에 도움이 되나요?
카놀라유의 사용이 비만에 미치는 영향은 무엇인가요?
옥수수는 어떤 기후에서 잘 자라나요?
옥수수의 재배에 적합한 농법은 무엇인가요?
Previous
Next
수정하기 - switchMap으로 처리한 데이터의 변환 예시는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
switchMap 연산자는 RxJS에서 주로 사용되며, 내부적으로 한 옵저버블이 방출한 값을 기반으로 또 다른 옵저버블을 생성하고, 이전에 생성된 옵저버블 구독을 취소하며 새로운 옵저버블의 값을 방출하는 역할을 합니다. 따라서 switchMap을 사용하면 데이터 스트림을 변환하거나 비동기 호출 결과를 연쇄적으로 처리할 때 매우 유용합니다. switchMap으로 처리한 데이터의 변환 예시를 자세히 설명해보겠습니다. 예를 들어, 사용자가 입력한 검색어를 받아서 서버에서 검색 결과를 가져오는 상황을 가정해봅니다. 사용자가 입력할 때마다 그 입력값을 기반으로 서버 API를 호출하고, 이전에 호출된 API 응답은 무시하고 최신 호출 결과만 화면에 반영하고자 합니다. 1. 입력값 스트림을 받는다. 2. 입력값을 서버 API 호출 함수에 매핑한다. 3. 서버 API 호출 결과를 다시 스트림으로 받고 처리한다. ```typescript import { fromEvent } from 'rxjs'; import { debounceTime, map, switchMap } from 'rxjs/operators'; import { ajax } from 'rxjs/ajax'; const searchInput = document.getElementById('searchBox'); const search$ = fromEvent(searchInput, 'input').pipe( // 입력 지연 시간을 300ms로 설정해 잦은 호출 방지 debounceTime(300), // 이벤트 객체에서 값을 추출 map(event => event.target.value), // 검색어를 매개변수로 하는 API 호출 옵저버블로 변환 switchMap(searchTerm => ajax.getJSON(`https://api.example.com/search?q=${searchTerm}`) ) ); search$.subscribe(results => { console.log('검색 결과:', results); // 이 결과를 화면에 렌더링하는 로직 작성 }); ``` 위 예시에서 switchMap은 사용자가 입력한 검색어를 기반으로 서버 호출 Observable로 변환합니다. 만약 사용자가 빠르게 여러 번 입력하면 이전에 발생한 API 호출 결과는 무시되고, 가장 최근 입력에 대해 발생한 요청만 처리합니다. 이는 switchMap이 이전 내부 Observable을 취소(cancellation)하고 새로운 내부 Observable로 전환하기 때문입니다. 즉, switchMap 안에서의 데이터 변환은, 입력값(string) → API 호출 Observable → API 응답(JSON 데이터) 흐름으로 이루어집니다. 이를 통해 데이터를 비동기적으로 변환하고 업데이트할 수 있는 구조를 만들 수 있습니다. 요약하자면, switchMap으로 처리한 데이터 변환 예시는: - 외부 입력값이나 이벤트를 받아서 - 내부에 새로운 Observable(예시에서는 API 호출)을 동적으로 생성하고 전환하며 - 최신 Observable의 결과 데이터를 최종 스트림으로 방출하는 것 이렇게 데이터를 변환하고 연쇄 처리하는 데 있어 매우 강력한 도구입니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기