작성: 2020-07-21 수정:
2020-07-21
Reactvie Programming(1)
Reactive Programming이란?
해당 포스팅은 한상곤 개발자님의 발표를 정리한 내용입니다.
1. Reactvie Programming이란?
- Reactive Programming은 기본적으로 모든 것을 스트림(stream)으로 본다.
- 이벤트, ajax call 등 모든 데이터의 흐름을 시간순서에 의해 전달되어지는 스트림으로 처리한다.
- 스트림이란, 시간 순서에의해 전달 되어진 값들의 collection 정도로 이해해 보자.
- 각각의 스트림은 새로 만들어(branch)져서 새로운 스트림이 될 수도 있고, 여러개의 스트림이 합쳐(merge) 질수 도 있다.
- 스트림은 map, filter과 같은 함수형 메소드를 이용하여, immutable하게 처리할 수 있다.
- 스트림을 listening 함으로써 데이터의 결과값을 얻는다. 이를 subscribe라고 표현한다.
2. Observable과 Observer
- Observable은 observer의 메소드를 호출하면서 item이나 정보등을 호출(emit)하는 역할을 한다.
- Observer는 onNext, onError, onCompleted 의 메소드가 구현되어 있다.
- Observer는 observable을 subscribe한다. Observer는 Subscriber, watcher, reactor로 불려진다.
3. 왜 Reactive Programming인가?
- 함수형으로 만들기 때문에, 하나의 함수는 그 역할 자체에 집중할 수 있다.
- Promise의 장점을 극대화할 수 있다.
- Observable은 A stream에 의해 B stream이 영향을 받는 경우, A만 바꿔도 B가 자동으로 바꿀 수 있도록 구성할 수 있어서, 데이터의 동기화를 간편하게 할 수있다. 이러한 이유는 A와 B stream 사이의 관계를 선언적으로 선언했기 때문에 가능하다.