1. 리액티브 프로그래밍 코드 구성
우리가 실제로 작성하는 리액티브 프로그래밍 코드는 크게 Publisher, Subscriber, Data Source, Operator 등으로 구성된다.
- Publisher : 발행자, 게시자, 생산자, 방출자 등 여러 가지 용어를 사용하지만 공통점은 입력으로 들어오는 데이터를 제공하는 역할을 한다는 것이다.
- Subscriber : Publisher가 제공한 데이터를 전달받아 사용하는 주체이다. 구독자라고도 불리며 생산자의 반대 의미로 데이터를 소비하는 소비자라고도 불린다.
- Data Source : Publisher의 입력으로 들어오는 데이터를 대표하는 용어이다. 리액티브 프로그래밍에서는 Data Stream이라고도 표현한다. 엄밀히 따지면 둘의 의미는 조금 다르지만 둘 다 Publisher의 입력으로 전달되는 데이터라고 알고 있어도 된다.
- Operator : Publisher로부터 전달된 데이터가 아무런 처리를 거치지 않고 그대로 Subscriber에게 전달되는 경우는 거의 없다. Publisher와 Subsciber 사이에서 적절한 가공 처리가 이루어지는데, 이 가공 처리를 담당하는 것이 Operator이다. 리액티브 프로그래밍은 Operator로 시작해서 Operator로 끝난다고 해도 과언이 아니다. 데이터를 생성하는 Operator부터 데이터 필터링, 데이터 변환 등 리액티브 프로그래밍에는 수많은 Operator가 존재하기 때문이다.
정리
리액티브 시스템의 설계
- 비동기 메시지 기반 통신으로 동작해야 한다.
- 탄력적이고 회복성을 지녀야 한다.
- 높은 응답성을 지녀야 한다.
- 유지보수와 확장이 용이해야 한다.
리액티브 프로그래밍의 특징
- 선언형 프로그래밍 방식이기 때문에 실행할 동작을 구체적으로 명시하지 않고 목표만 선언한다.
- 데이터 소스의 변경이 있을 때마다 데이터를 전파한다.
- 코드의 간결함과 가독성에 유리한 메서드 체인의 형태로 표현된다.
- 리액티브 프로그래밍 코드에서 파라미터를 가지는 메서드는 함수형 프로그래밍 방식의 코드 형태의 파라미터를 가진다.
리액티브 프로그래밍 코드의 구성 요소
- Publisher는 입력으로 들어오는 데이터를 Subscriber에 제공하는 역할
- Subscriber는 Publisher로부터 전달받은 데이터를 사용하는 역할
- Data Source는 Publisher의 입력으로 전달되는 데이터를 의미
- Operator는 Publisher와 Subscriber 중간에서 데이터를 가공하는 역할
'TIL(사전캠프)' 카테고리의 다른 글
리액티브 스트림즈(2024-06-26) (0) | 2024.06.26 |
---|---|
리액티브 스트림즈(Reactive Streams) (2024-06-25) (0) | 2024.06.25 |
리액티브 시스템 (2024-06-24) (0) | 2024.06.24 |
리버싱2. 20~22(2024-06-21) (0) | 2024.06.21 |
SQL 코드카타. 개와 고양이는 몇 마리 있을까(2024-06-20) (0) | 2024.06.20 |