성장, 그리고 노력

부족하더라도 어제보다 더 잘해지자. 노력은 절대 배신하지 않는다.

RxJS 5

다시 보는 RxJS - 기본편 + Observable 만들기

이전 회사에서 RxJS를 직접 사용하여 프로젝트를 진행했었다. 하지만, 그때는 경험이 적어 솔직히 많은 이해를 하지 못했던 거 같다. 다음 회사에서는 또 RxJS를 사용하지 않아 그나마 알던 사실도 까먹었다. 몇일 전 우연히 사내 발표를 하게 되었다. 주제를 고민하던 중 RxJS가 눈에 들어왔다. 다시 RxJS를 보니 새로웠다. 이해가 예전보다 많이 된다고 해야하나... 처음 봤을 때는 어렵다고만 느꼈고, 외우기 급급했지만, 지금 보니 정말 멋진 컨셉과 매력이 넘치는 기술이었다. 그리고 npm에서 다운로드 횟수를 보니, 작년에 내가 사용할 때보다 더 많은 사람이 다운로드 받고 사용하고 있었다. 발표 주제는 바로 이거다. 다시 한번 RxJS를 공부해 보자. 먼저 RxJS에 대한 이야기를 하기전에 promi..

RxJS 2020.08.10

RxJS 기초 - 스트림(Stream)

RxJS는 파일 읽기, HTTP 호출, 키 입력 또는 마우스 움직임 등의 이벤트 데이터 소스를 처리하는 단일 프로그래밍을 사용하여 콜백 또는 Promise 기반 라이브러리를 정확히 같은 방식으로 대체한다. 그리고 RxJS를 사용하면 시간 경과에 따라 분리된 대용량 데이터를 보다 간결하고 선언적으로 처리할 수 있다. 파이프라인은 데이터를 사용할 수 있을 대 순서대로 실행되는 일련의 로직 영역(비즈니스 로직 영역)이다. 그리고 왼쪽에 있는 웹은 이벤트 생성자이며, 애플리케이션에서 소비될 다양한 형태의 데이터를 생산하는 데이터 소스가 있는 곳이다. 소바자는 받은 데이터로 무엇인가를 하거나 이벤트들을 구독하는 개체이다. 마지막으로 파이프라인에 스트림을 변환한다고 써있는데, 스트림은 시간에 따라 발생하는 일련의 ..

RxJS 2020.02.01

왜 RxJS를 사용해야 하는가?

2020/01/27 - [Javascript] - 1부 - 자바스크립트 함수 표현식, IIFE 그리고 비동기 2020/01/28 - [Javascript] - 2부 - 자바스크립트 비동기적 프로그래밍(콜백, 프라미스) 이미 앞에서 콜백(callback)과 프라미스(promise)라는 멋진 개념들을 살펴봤다(asnyc await는 나중에 살펴볼 것이다). 그런데 궁금해 진다. 웹이 커지며 여러 요구 사항이 등장하여 여러 콜백을 중첩시켜 연속 전달 스타일(CPS, Continuation-Passing Style)을 사용했다. 그리고 가독성부터 코드 추측이 어렵기 때문에 ES6에서는 FP(Functional Programing) 패턴을 따른 Promise을 대안으로 제시했다. 그런데 왜 RxJS를 공부해야 할..

RxJS 2020.02.01

[RxJS] Redux-observable - Epic (에픽) + 배경지식

RxJS를 사용한 Redux-observable을 알기 전에 중요한 패턴 하나만 먼저 알고 지나가려고 한다. Saga Pattern (사가 패턴) RxJS에서 나온 개념은 아니다. 1987년 논문에서 처음 알려졌다(https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf, 영어를 좋아하고 잘한다면 읽어봐도 좋을거 같다. 물론 난 아쉽게 아직 그러지 못한다). 분산 트랜잭션의 가장 알려진 패턴이며 분산 시스템의 데이터 일관성을 유지하는 방법이다. 간단히 말하면 이러하다. 아래와 같은 일련의 로직이 있다고 해보자. 물건을 주문한다. 카드사에 결제정보를 넘긴다. 카드사에 결제를 한다. 카드사로부터 결제 정보를 받는다. 물건 주문처리를 완료한다. 각 단계..

RxJS 2019.12.09

[RxJS] Subjects

A Subject is like an Observable, but can multicast to many Observers. Subjects are like EventEmitters: they maintain a registry of many listeners. subject는 대표적인 Hot Observable이다. 또한 모든 Subject는 옵저버(Observer)이며, 구독(subscribe)하면 등록된 모든 옵저버에게 멀티 캐스팅된다. RxJS에서 제공하는 공식 예제를 봐도 잘 나와있다. import { Subject } from 'rxjs'; const subject = new Subject(); subject.subscribe({ next: (v) => console.log(`observerA..

RxJS 2019.12.08
반응형