pile·
프론트엔드·테이블링테이블링·

반응형 프로그래밍 with RxJS

비동기 작업의 복잡도 문제를 해결하기 위해 RxJS의 반응형 프로그래밍 패러다임을 학습하고 적용한 경험을 공유한다. Promise의 한계를 설명하면서 Observable·Observer·Operator·Subscription의 4가지 핵심 개념과 실제 코드 예제(주식 가격 스트림)를 통해 RxJS 사용법을 소개한다. 선언적 코드, 재사용성 향상, 일관적 비동기 처리, 에러 핸들링 간소화 등 도입 후 이점도 다룬다.

핵심 포인트
  • Promise는 반복 이벤트·대량 데이터 스트림 처리에 제약이 많음
  • Observable: 시간에 따라 변화하는 값의 컬렉션, Lazy execution으로 선언적 코드 가능
  • Operator: 데이터 필터링·변환·병합·그룹화 등 다양한 연산 지원
  • Subscription으로 Observable-Observer 간 구독 관계를 명시적으로 관리
  • `from().mergeMap().filter().take()` 체이닝으로 복잡한 비동기 로직을 선언적으로 표현
  • catchError, retry 등 에러 처리 연산자로 예외 상황 처리 간소화
상세 정리
  • 반응형 프로그래밍: 데이터 흐름과 변경 사항 전파에 초점을 둔 패러다임
  • Promise 한계: 반복 키 입력·마우스 이벤트 같은 스트림 처리에 부적합
  • Observable: 구독/취소/완료 자유, Lazy execution으로 필요 시에만 실행
  • Observer: Observable에서 발생한 이벤트를 처리하는 핸들러 객체
  • Operator: map, filter, mergeMap, take, catchError, retry 등 풍부한 연산자 제공
  • Subscription: Observable과 Observer 간 구독 객체로 생명주기 관리
  • 코드 예시: from(['AAPL','GOOGL','MSFT','TSLA']) → mergeMap(가격스트림) → filter(>50) → take(5) → subscribe
  • 도입 후: 선언적 프로그래밍, 재사용성 향상, 일관적 비동기 처리 달성
  • Side effect를 올바르게 다루는 것이 핵심이라는 반성적 결론
왜 읽나비동기 코드의 복잡도에 지친 개발자가 RxJS의 Observable 모델로 전환하면 어떤 이점이 생기는지 개념과 예제로 확인할 수 있는 입문 글.
테이블링
테이블링 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·여기어때 (GC컴퍼니)여기어때 (GC컴퍼니)·

    항공 프론트엔드 구축기 (7/10): 창구를 하나만 두었습니다

    여기어때 항공 서비스 프론트엔드가 웹과 앱 웹뷰 두 환경에서 동일한 함수 호출로 동작하는 앱 브릿지 추상화 레이어를 설계한 과정을 다룬다. iOS·안드로이드 규약 차이와 "웹에 존재하지 않는 브릿지를 어떻게 호출하나"라는 문제를 단일 추상화 층으로 해결한 구현 사례다.

    요약 이어보기
    #react#typescript#webview+2