상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
인터넷에서의 데이터 마이닝이란 무엇인가요?
사직서에 감사의 말을 포함해야 하나요?
사직서를 제출한 후 재직증명서를 요청할 수 있나요?
데이터 전송에서의 라우팅이란 무엇인가요?
사표를 제출한 후 이직할 때의 경력 관리 방법은 무엇인가요?
충칭의 유명한 강은 무엇인가요?
충칭의 유명한 축구팀은?
충칭의 유명한 관광지에서의 사진 촬영 팁은?
디디추싱의 요금 체계는 어떻게 되나요?
충칭의 음식에서 가장 많이 사용되는 조리법은 무엇인가요?
차등 백업의 데이터 복구를 위한 인프라 점검은 어떻게 하나요?
커널의 프로세스 생성 과정은 어떻게 되나요?
Previous
Next
수정하기 - switchMap을 이용한 상태 변화 예시는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
switchMap은 RxJS에서 매우 유용한 연산자로, 이전 Observable이 방출한 값을 기준으로 새로운 Observable을 생성할 때 사용됩니다. 특히 비동기 작업이 중첩되거나 연속적으로 발생할 때, 이전 작업을 취소하고 최신 작업만 결과를 반영하고 싶을 때 자주 사용됩니다. 상태 변화 관점에서 switchMap을 사용한 예시를 자세히 설명해 드리겠습니다. 예를 들어, 사용자가 검색어를 입력할 때마다 서버에 API 요청을 보내서 결과를 가져오는 상황을 생각해 보죠. 사용자가 입력하는 텍스트에 따라 상태가 변화하며, 이전의 API 호출 결과는 무시하고 최신 검색어에 대한 결과만 보여줘야 할 때 switchMap이 유용합니다. --- 상황 설정 - 사용자가 검색어를 입력한다. - 입력 값이 바뀔 때마다 API 서버에 새 검색 요청을 보낸다. - 기존 검색 요청이 완료되기 전에 새로운 검색어가 입력되면, 이전 요청은 취소하고 가장 최신 요청 결과만 보여줘야 한다. - 이렇게 해야 리소스 낭비를 줄이고 UI도 최신 상태를 보장할 수 있다. --- 코드 예시 ```typescript import { fromEvent } from 'rxjs'; import { debounceTime, map, switchMap } from 'rxjs/operators'; import { ajax } from 'rxjs/ajax'; const searchInput = document.getElementById('search'); const search$ = fromEvent(searchInput, 'input').pipe( map(event => event.target.value), // 입력값 추출 debounceTime(300), // 사용자가 타이핑 멈출 때까지 300ms 기다림 switchMap(searchTerm => ajax.getJSON(`https://api.example.com/search?q=${searchTerm}`) ) ); search$.subscribe(results => { // 여기서 'results'는 최신 검색어에 대한 API 응답 상태임 // 상태 변화를 UI에 반영 console.log('검색 결과:', results); }); ``` --- 상태 변화 과정 설명 1. 사용자가 입력 을 시작한다. 2. `fromEvent`가 키 입력 이벤트를 감지하고, 입력값을 추출한다. 3. `debounceTime`이 300ms 동안 추가 입력이 없으면 다음 연산 단계로 넘긴다. 이는 잦은 API 호출 방지용. 4. `switchMap`은 입력값을 받아서 실제 API 호출 Observable로 전환한다. 5. 만약 사용자가 새로운 텍스트를 입력하면, 아직 완료되지 않은 이전 API 호출 Observable은 자동으로 취소되고, 최신 입력값 기반으로 다시 API 호출 Observable이 만들어진다. 6. 마지막으로 완료된 API 호출 결과가 구독자에게 전달되고, UI 상태가 변경된다. 이 과정 덕분에 상태 변화는 '입력값' → 'API 요청' → '응답 결과' 순서로 자연스럽게 연결되고, 이전 요청 결과에 의해 상태가 오염되는 것을 방지할 수 있습니다. --- 요약 - switchMap은 이전 Observable 취소 + 최신 Observable 구독 이라는 특징 때문에 상태 변화에서 '최신성' 보장이 필요한 연속적인 비동기 처리에 아주 적합합니다. - 상태가 입력 변화 → 비동기 <a href='https://sangseek.com/sangseeks/결과 변화/ko'>결과 변화</a>로 이어질 때, 불필요한 리소스 낭비와 UI의 모호한 상태를 예방해 줍니다. - 따라서 사용자 입력, 검색, 자동완성, API 요청 상태 관리 등 다양한 상태 변화 시나리오에서 switchMap이 핵심 역할을 합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기