TIL(사전캠프)

1. 리액티브 시스템과 리액티브 프로그래밍 (2024-06-25)

note994 2024. 6. 25. 14:16

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 중간에서 데이터를 가공하는 역할