Develog
코드스테이츠 75일차 본문
학습 목표
- 리액티브 프로그래밍이 무엇인지 이해할 수 있다.
- 리액티브 프로그래밍의 특징을 이해할 수 있다.
- 리액티브 스트림즈가 무엇인지 이해할 수 있다.
- 명령형 프로그래밍과 선언형 프로그래밍이 무엇인지 이해할 수 있다.
- 리액티브 프로그래밍을 학습하기 위한 사전 지식이 무엇인지 이해할 수 있다.
- Sprinv MVC 기반의 애플리케이션과 Spring Reactive 기반의 애플리케이션의 차이점을 이해할 수 있다.
우리가 지금껏 학습하면서 만들어 본 애플리케이션은 명령형 프로그래밍 방식을 이용한 전통적인 개발 방식이다.
반면에 리액티브 프로그래밍은 전통적인 명령형 프로그래밍 방식과 달리 선언형 프로그래밍 방식을 사용한다.
- 리액티브 시스템은 클라이언트의 요청에 반응을 잘하는 시스템을 의미한다.
- 리액티브 프로그래밍은 리액티브 시스템에서 사용되는 프로그래밍 모델이다.
- 리액티브 스트림즈(Reactive Streams)는 리액티브 프로그래밍을 위한 표준 사양(또는 명세, Specification)이다.
- 리액티브 스트림즈는 아래의 네 개 컴포넌트로 구성된다. (Publisher, Subscriber, Subscription, Processor)
- 다음과 같은 리액티브 스트림즈의 구현체가 사용된다. (Project Reactor, RxJava, Java Flow API, 기타 리액티브 확장(Reactive Extension)
선언형 프로그래밍 방식은 실행할 코드를 선언만 하며, 순차적으로 실행되지 않는다.
실행 로직을 작성한 코드대로 실행이 되는 명령형 프로그래밍 방식과 달리 선언형 프로그래밍 방식은 실행 로직의 일부만 람다 표현식으로 전달하며 전달 받은 람다 표현식을 기반으로 Operation 메서드 내부에서 전체 로직을 실행한다.
리액티브 프로그래밍에서 사용되는 용어 정의
- Publisher
- Publisher는 데이터를 내보내는 주체를 의미한다.
- Emit
- Publisher가 데이터를 내보내는 것을 Emit 이라고 한다.
- Subscriber
- Subscriber는 Publisher가 emit한 데이터를 전달 받아서 소비하는 주체를 의미한다.
- Subscribe
- Subscribe는 구독을 의미한다.
- Signal
- Signal은 Publisher가 발생시키는 이벤트를 의미한다.
- Operator
- Operator는 리액티브 프로그래밍에서 어떤 동작을 수행하는 메서드를 의미한다.
- Sequence
- Sequence는 Operator 체인으로 표현되는 데이터의 흐름을 의미한다.
- Upstream / Downstream
- Sequence 상의 특정 Operator를 기준으로 위쪽의 Sequence 일부를 Upstream이라고 하며, 아래 쪽 Sequence 일부를 Downstream이라고 표현한다.
'코드스테이츠' 카테고리의 다른 글
코드스테이츠 84일차 (0) | 2022.08.23 |
---|---|
코드스테이츠 76-77일차 (0) | 2022.08.11 |
코드스테이츠 74일차 (0) | 2022.08.10 |
코드스테이츠 72-73일차 (0) | 2022.08.08 |
코드스테이츠 71일차 (0) | 2022.08.04 |