반응형과 함수형 개념을 이해하고 RxJS로 반응형 프로그래밍을 완성한다!
이 책은 RxJS와 반응형 프로그래밍을 처음 접하는 사람들에게 자바스크립트 개발자들이 직면한 대량의 비동기 데이터 처리 문제를 설명하고 RxJS로 이 문제를 해결하는 방법을 보여준다. 다양한 예제로 함수형 반응형 프로그래밍(FRP)과 RxJS의 핵심 개념과 사용 방법을 설명하며 RxJS를 리액트 및 리덕스로 만들어진 뱅킹 애플리케이션과 통합하는 방법을 소개한다.
1부 스트림 이해하기
1장
반응형으로 생각하기
1.1 동기 연산 vs 비동기
연산
_1.1.1 블로킹 코드 문제
_1.1.2 콜백 함수와 논블로킹 코드
_1.1.3 시간과 공간 이해하기
_1.1.4 반응형 사고에서 콜백을 사용하지 않아야 할까
_1.1.5 이벤트 이미터
1.2 Promise로 더 나아진 콜백
1.3 다른 패러다임의 필요성
1.4 RxJS 이해하기
_1.4.1 스트림 측면에서 생각하기: 데이터의 흐름과 전파
_1.4.2 RxJS 프로젝트
_1.4.3 모든 것이 스트림이다
_1.4.4 프로그램에서 시간 개념의 추상화
_1.4.5 Rx 스트림의 컴포넌트
1.5 반응형 프로그래밍과 다른 프로그래밍 패러다임
1.6 요약
2장 RxJS로 배우는
반응형 프로그래밍
2.1 반응형 프로그래밍의 기초인 함수형 프로그래밍
_2.1.1 함수형 프로그래밍
_2.1.2 이터레이터 패턴
2.2 스트림의 데이터 기반 접근 방법
2.3 Rx.Observable로 데이터 소스 감싸기
_2.3.1 다양한 데이터 소스 식별하기
_2.3.2 RxJS 옵저버블 생성
_2.3.3 언제 어디서 RxJS를
사용하는가
_2.3.4 전달하거나 전달하지 않거나
2.4 옵저버로 데이터 사용하기
_2.4.1 Observer API
_2.4.2 밑바닥부터 옵저버블 만들어보기
_2.4.3 옵저버블 모듈
2.5 요약
3장 핵심 연산자
3.1 스트림 평가와 취소
_3.1.1 즉시 할당의 단점
_3.1.2 지연 할당과 옵저버블 구독
_3.1.3 구독 해제: 명시적
취소
_3.1.4 RxJS와 다른 API
간의 취소 불일치
3.2 RxJS 옵저버블 연산자
_3.2.1 핵심 연산자 소개
3.3 집계 기능이 있는 연산자의 파이프라인 순서 지정
_3.3.1 독립적인 파이프라인과 참조 투명성
_3.3.2 RxJS 시퀀스의 성능 이점
3.4 요약
4장 RxJS에서의 시간
4.1 왜 시간을 신경 써야 할까
4.2 자바스크립트의 비동기 타이밍 이해하기
_4.2.1 암시적 타이밍
_4.2.2 명시적 타이밍
_4.2.3 자바스크립트의 타이밍 인터페이스
4.3 RxJS로 시간 다루기
_4.3.1 전파
_4.3.2 순차적인 시간
4.4 사용자 입력 처리하기
_4.4.1 디바운싱
_4.4.2 스로틀링
4.5 RxJS에서의 버퍼링
4.6 요약
2부
옵저버블의 활용
5장 반응형 스트림 적용하기
5.1 하나를 위한 모두, 모두를
위한 하나
_5.1.1 스트림을 병합하여 이벤트 인터리빙하기
_5.1.2 스트림을 연결하여 이벤트 순서 유지하기
_5.1.3 최신 옵저버블 데이터로 전환하기
5.2 중첩 옵저버블 처리하기
5.3 비동기 스트림 마스터하기
5.4 concatMap으로 드래그 앤 드롭하기
5.5 요약
6장 비즈니스 프로세스 조정하기
6.1 옵저버블의 수명 주기에 후킹하기
_6.1.1 웹 훅과 옵저버 패턴
_6.1.2 연결된 옵저버블
6.2 combineLatest와
forkJoin으로 병렬 스트림 결합하기
_6.2.1 Promise 사용의 한계
_6.2.2 병렬 스트림 결합
_6.2.3 forkJoin으로 조정 강화하기
6.3 반응형 데이터베이스 구축하기
_6.3.1 반응형으로 데이터베이스 채우기
_6.3.2 대량 데이터 작성하기
_6.3.3 관련된 데이터베이스 작업 조인하기
_6.3.4 반응형 데이터베이스
6.4 요약
7장 RxJS의 에러 처리
7.1 일반적인 에러 처리 기술
_7.1.1 try/catch를 이용한 에러 처리
_7.1.2 콜백에 에러 위임하기
_7.1.3 에러와 Promise
7.2 명령형 에러 처리와 함수형 및 반응형 코드 베이스 간의 비호환성
7.3 함수형 에러 처리 방식 이해하기
7.4 RxJS의 실패 처리 방식
_7.4.1 옵저버에 다운스트림으로 전파된 에러
_7.4.2 에러 포착과 반응
_7.4.3 일정 횟수 동안 실패한 스트림 재시도하기
_7.4.4 실패한 재시도에 반응하기
7.5 요약
3부 RxJS 마스터하기
8장 핫 옵저버블과 콜드 옵저버블
8.1 핫 옵저버블과 콜드 옵저버블이란
_8.1.1 콜드 옵저버블
_8.1.2 핫 옵저버블
8.2 새로운 데이터 소스 타입인 웹소켓 살펴보기
_8.2.1 웹소켓이란
_8.2.2 Node.js로 만든 간단한 웹소켓 서버
_8.2.3 웹소켓 클라이언트
8.3 부가 작용이 재구독 또는 재실행에 미치는 영향
_8.3.1 재실행 vs 재구독
_8.3.2 스트림 로직 재실행하기
_8.3.3 스트림 재구독하기
8.4 옵저버블의 온도 변경하기
_8.4.1 온도계로서의 생산자
_8.4.2 핫 옵저버블을 콜드 옵저버블로 만들기
_8.4.3 콜드 옵저버블을 핫 옵저버블로 만들기
_8.4.4 연산자에 의한 핫 옵저버블 스트림 생성하기
8.5 하나의 옵저버블을 여러 옵저버블에 연결하기
_8.5.1 publish( )
_8.5.2 publishReplay( )
_8.5.3 publishLast( )
8.6 요약
9장 테스트 가능한 반응형 프로그램 만들기
9.1 함수형 프로그램에 내장된 테스트
9.2 비동기 코드 및
Promise 테스트
_9.2.1 AJAX 요청 테스트
_9.2.2 Promise와 작업하기
9.3 반응형 스트림 테스트
9.4 스트림을 테스트 용이하게 만들기
9.5 RxJS의 값 스케줄링
9.6 가상 현실 증강
_9.6.1 마블 다이어그램 다루기
_9.6.2 만들 때까지 속이기
_9.6.3 테스트에 적합하게 검색 스트림 리팩터링하기
9.7 요약
10장 RxJS 실무 프로젝트
10.1 기본 뱅킹 애플리케이션 구축
10.2 리액트와 리덕스
_10.2.1 리액트로 UI 컴포넌트
렌더링하기
_10.2.2 리덕스로 상태 관리하기
10.3 애플리케이션 상태를 리덕싱하기
_10.3.1 액션과 리듀서
_10.3.2 리덕스 스토어
10.4 핫 RxJS와
리덕스 스토어 어댑터 구축하기
10.5 RxJS Subject가 있는 비동기 미들웨어
_10.5.1 RxJS 서브젝트
_10.5.2 반응형 미들웨어인 에픽 구축하기
10.6 한곳으로 모으기
10.7 요약
10.8 맺음말
부록 A 책에서 사용하는 라이브러리의 설치 방법
부록 B 연산자 선택
ㆍ지은이 루이스아텐시오
ㆍ지은이 폴대니얼스
ㆍ옮긴이 김건희
저작권 안내
연관 프로그램
독자의견 남기기