Spark - Kafka - Akka 는 ReactiveStrem을 준수하는 오픈스택이며 상호연결이 기본적으로 가능합니다. 끝말잇기가 가능한것은 ReactiveStream의 기원과는 무관합니다.

기원을 찾다보면은 다양한 유용한 Stacks들을 알게되며 ReactiveStream이 자바진영에 먼저 크게 성공하고 닷넷진영에도 영향을 준것으로  오해할수도 있으며 그 기원을 찾아가 보겠습니다.


Rx.NET, RxJavaReactive Streams는 모두 반응형 프로그래밍의 영역에서 중요한 역할을 하는 프로젝트들입니다. 각각의 탄생 배경과 역사에 대해 간략히 설명하겠습니다.

  1. Rx.NET (Reactive Extensions for .NET):

    • Rx.NET은 Microsoft의 Erik Meijer에 의해 개발되었습니다.
    • 처음에는 Microsoft의 .NET 플랫폼을 위한 라이브러리로서, 이벤트 기반 프로그래밍을 더 쉽게 만드는 것을 목표로 했습니다.
    • 이 라이브러리를 사용하면 이벤트나 비동기 데이터 스트림을 마치 일반적인 컬렉션처럼 취급하고 처리할 수 있습니다.
  2. RxJava (Reactive Extensions for Java):

    • RxJava는 Rx.NET의 아이디어를 Java 플랫폼으로 옮긴 것입니다.
    • 2012년 Netflix의 Ben Christensen과 Jafar Husain에 의해 개발되었습니다.
    • Netflix는 수많은 비동기 작업과 분산 시스템을 관리해야 했기 때문에, 반응형 프로그래밍 패러다임은 이러한 문제들을 효과적으로 처리하기 위한 좋은 해법인 것으로 판단되었습니다.
  3. Reactive Streams:

    • Reactive Streams는 JVM에서 비동기 스트림 처리를 위한 표준을 제공하기 위해 2013년에 시작되었습니다.
    • 이 초기화는 다양한 라이브러리와 프레임워크 개발자들 간의 협력으로 이루어졌습니다. (예: Netflix, Pivotal, Lightbend, Red Hat 등)
    • Reactive Streams의 주요 목표는 데이터 스트림과 그에 따른 백 프레셔(Back Pressure) 관리에 대한 표준을 제공하는 것이었습니다.
    • 2015년, 이 스펙은 자바 9의 java.util.concurrent.Flow 패키지의 일부로 통합되었습니다.

이러한 프로젝트들은 비동기 및 이벤트 기반 시스템에서 복잡성을 줄이고 코드의 가독성과 재사용성을 향상시키기 위해 개발되었습니다. 그 결과, 오늘날 많은 소프트웨어 개발 프로젝트와 애플리케이션에서 이러한 라이브러리와 패러다임이 널리 사용되고 있습니다.


Reactive Streams는 비동기 스트림 처리에 대한 표준을 제공하려는 여러 기업과 개발자의 협력을 통해 탄생했습니다. 이에 주도적인 역할을 한 기업과 그들의 기술에 대해 설명하겠습니다.

  1. Lightbend (이전 이름: Typesafe)

    • 기술: Akka Streams
    • Lightbend는 Akka라는 반응형 애플리케이션 개발을 위한 툴킷과 런타임을 제공합니다. Akka Streams는 이 플랫폼의 일부로, Reactive Streams의 백 프레셔 모델을 구현합니다.
  2. Pivotal (현재: VMware)

    • 기술: Project Reactor
    • Pivotal은 Spring 프레임워크를 주도하고 있습니다. Project Reactor는 Spring WebFlux와 함께 사용되며, 반응형 프로그래밍 모델을 Java 개발자들에게 제공합니다. 이는 Reactive Streams API를 기반으로 합니다.
  3. Netflix

    • 기술: RxJava
    • Netflix는 RxJava의 초기 버전을 개발했으며, 이는 JVM 위에서 반응형 프로그래밍을 지원합니다. RxJava 2부터는 Reactive Streams 스펙을 준수합니다.
  4. Red Hat

    • 기술: Vert.x, SmallRye Mutiny
    • Vert.x는 JVM 위에서 이벤트 기반, 비동기, 분산 애플리케이션을 개발하기 위한 툴킷입니다. SmallRye Mutiny는 반응형 프로그래밍을 위한 라이브러리로, Quarkus와 함께 사용됩니다. 이들 모두 Reactive Streams 표준을 지원합니다.
  5. Oracle

    • Oracle은 Java 9에서 java.util.concurrent.Flow 패키지를 통해 Reactive Streams의 표준 인터페이스를 제공했습니다. 이로써 Java의 공식 라이브러리에서도 비동기 스트림 처리와 백 프레셔를 지원하게 되었습니다.

이외에도 여러 회사와 오픈 소스 프로젝트들이 Reactive Streams와 반응형 프로그래밍에 기여하고 있습니다. 이러한 기술들은 고성능, 확장성 있는 애플리케이션을 구축하는 데 도움을 줍니다.


Spring WebFlux는 Spring Framework의 일부로서, 비동기 및 반응형 웹 애플리케이션을 개발하기 위한 프레임워크입니다. Spring WebFlux는 전통적인 서블릿 기반의 Spring MVC와는 다르게, 반응형 프로그래밍 모델을 채택하고 있습니다.

Spring WebFlux의 주요 특징과 개요는 다음과 같습니다:

  1. 비동기 & 반응형: WebFlux는 비동기 및 반응형 프로그래밍을 위한 라이브러리인 Project Reactor를 기반으로 합니다. 이를 통해, WebFlux는 대량의 동시 요청을 효율적으로 처리할 수 있습니다.

  2. 서버와 클라이언트 모드 지원: WebFlux는 서버 사이드 애플리케이션 개발뿐만 아니라, Reactive WebClient를 통해 비동기 클라이언트 개발도 지원합니다.

  3. 다양한 런타임 지원: WebFlux는 전통적인 서블릿 컨테이너가 아닌, Netty와 같은 비동기 런타임 환경에서도 동작할 수 있습니다. 그러나 필요에 따라 서블릿 3.1+ 환경에서도 동작할 수 있습니다.

  4. 어노테이션 기반 및 함수형 API: Spring WebFlux는 전통적인 Spring MVC와 유사한 어노테이션 기반의 프로그래밍 모델을 제공하며, 더 선언적인 함수형 스타일의 API도 제공합니다.

  5. 백 프레셔 지원: WebFlux는 Reactive Streams의 백 프레셔 개념을 지원합니다. 이는 데이터의 생산자와 소비자 간의 데이터 흐름을 조절하여, 리소스 과부하를 방지하는데 도움을 줍니다.

  6. 다양한 데이터 접근 방식: WebFlux는 전통적인 RDBMS 뿐만 아니라, 반응형 NoSQL 데이터베이스와의 통합도 지원합니다.

Spring WebFlux를 사용하면, 대량의 동시 사용자와 트래픽을 효율적으로 처리할 수 있는 확장 가능한 웹 애플리케이션을 구축할 수 있습니다. 그러나 모든 웹 애플리케이션에 WebFlux를 사용하는 것이 최선의 선택은 아니며, 애플리케이션의 요구 사항과 특성에 따라 적절한 프레임워크를 선택해야 합니다.


  1. CQRS (Command Query Responsibility Segregation)

    • CQRS는 애플리케이션의 상태 변경 명령(Command)과 상태 조회 쿼리(Query)를 명확히 분리하는 패턴입니다.
    • 전통적인 CRUD 모델에서는 명령과 쿼리가 동일한 데이터 모델을 사용하는데 비해, CQRS에서는 종종 다른 데이터 모델과 스토리지를 사용합니다.
    • 이로 인해 시스템의 확장성이 향상되며, 복잡한 도메인 로직과 쿼리 최적화 간의 트레이드오프를 관리하기 쉬워집니다.
    • CQRS는 종종 이벤트 소싱(Event Sourcing)과 함께 사용되어, 상태 변경에 대한 모든 이벤트를 순차적으로 저장하고, 필요할 때 이를 재생하여 시스템 상태를 재구성합니다.
  2. DDD (Domain-Driven Design, 도메인 주도 개발)

    • DDD는 복잡한 소프트웨어 시스템 개발에 중점을 둔 설계 방법론입니다.

    • 도메인 주도 개발의 핵심은 비즈니스 요구 사항과 복잡성을 반영하는 '도메인 모델'을 중심으로 소프트웨어를 설계하는 것입니다.

    • DDD의 주요 개념에는 다음과 같은 것들이 있습니다:

      • 엔터티 (Entity): 식별 가능하고 변경 가능한 도메인 객체.
      • 값 객체 (Value Object): 불변의 도메인 객체.
      • 집합 (Aggregate): 일관성 경계를 가진 도메인 객체의 클러스터. 각 집합에는 집합 루트(Aggregate Root)가 있습니다.
      • 서비스 (Service): 도메인 로직을 수행하지만, 엔터티나 값 객체로 모델링되지 않는 도메인 연산.
      • 도메인 이벤트 (Domain Event): 도메인 내의 중요한 비즈니스 사건.
      • 리포지토리 (Repository): 집합 객체의 컬렉션에 접근하는 메커니즘.
    • DDD는 도메인 전문가와 개발자 사이의 효과적인 커뮤니케이션을 촉진하고, 핵심 비즈니스 로직을 중심으로 소프트웨어를 설계하는 데 초점을 맞춥니다.

  3. 반버논 - DDD의 3인방중 한분
    • 베터랑 소프트웨어 장인이자 소프트웨어 설계와 구현을 단순하게 만드는 분야의 선구자이다. '도메인 주도 설계 구현' 과 'Reactive Messaging Patterns with Actor Model'의 저자이고
      전 세계 수백 명의 소프트웨어 개발자들에게 IDDD WorkShop을 가르쳐왔다. 업계 컨퍼런스에 자주 등장하는 연사로, 분산 컴퓨팅, 메시징, 특히 액터 모델에 관심이 많고, 도메인 주도 설계와
      아카와 함께 액터 모델을 사용하는 DDD컨설팅 전문가이다. 


CQRS와 DDD는 서로 다른 개념이지만, 둘 다 복잡한 비즈니스 로직과 요구 사항을 효과적으로 모델링하고 구현하기 위한 도구로 사용될 수 있습니다. 실제로, 많은 프로젝트에서 CQRS와 DDD는 함께 사용되어, 강력한 아키텍처 및 설계 기반을 제공합니다.


Reactive Strem의 기원과 DDD는 큰 연관성이 없어보이지만 반버논으로 인해 두개의 연결성이 생겼으며 보너스로 DDD의 기원을 조사해보겠습니다.

반버논의 DDD 구현체가 인기있는 국내출판 서적중하나이며~ 자바버전으로 작성한 이유가 흥미롭습니다.

닷넷진영은 이미 DDD를 다루는 자료가 많고 이때 자바진영은 좋은설계나 개발 사례를 무시하는 풍조때문에

자바버전으로 작성했다라는 풍문 - DDD 구현체 기원역시 자바버전이 인기가 있어 자바버전으로 오해할수 있으며 과거를 거슬러 구현체의 기원은 닷넷으로 추정해봅니다.

  • DDD의 기원 추정과 상호연관성
    • DDD의 창시자 에릭에반스를 통해 CQRS-Aggregate 컨셉이 처음 소개되었다.
    • 이벤트 소싱은 CQRS확장판으로 그렉 영(greg young)에의해 처음 소개되었다.
    • DDD 3인방은 에릭에반스(개념부) / 그 렉영(확장부) / 반버논(구현부) 으로 이어집니다.
    • 반 버논은 Reactive Stream 액터모델 방식을 채택해 이용해 DDD를 구현 ( 여기서 DDD와 ReactiveStream 상호연결성이 발생 )
    • 마틴 파울러는 그렉영으로부터 영향받은 DDD 지지자로  Aggreate을 이용한 아키텍처를 견고하게 만들었다.
    • 마틴파울러의 클린 아키텍처의 영항도가 현재도 높기때문에 CQRS의 기원이 이곳인것으로 오해할수 있습니다.
    • CQRS = DDD 는 아니지만 DDD에서 개념이 처음 소개되고 확장되다보니 DDD와 CQRS는 항상 붙어있습니다.
    • MSA에서는 팀과 경계를 구분하는 방법이 중요하며  DDD는 MSA가 아니지만 MSA에서 경계구분할때 DDD에 소개된 바운디드켄텍스트 기법이 이용되고 있습니다. MSA는 배포단위까지 구분을 신경쓰지만 DDD에서는 코드구현 경계구분을 중요하게 생각하며 배포단위에 대한 세부적인 부분은 다루지 않습니다.


Erlang (언랭)은 실시간, 동시성, 분산 시스템 개발에 특화된 함수형 프로그래밍 언어입니다. Erlang의 주요 특징 및 배경에 대해 알아보겠습니다.

  1. 배경:

    • Erlang은 1980년대에 스웨덴의 텔레콤 회사 Ericsson에서 전화 교환 시스템 개발을 위해 만들어졌습니다.
    • 이는 고장 없이 계속 작동하는 (높은 가용성) 시스템을 만들기 위한 목적이었기 때문에, Erlang은 처음부터 고장 허용, 빠른 복구, 실시간 응답, 분산 처리 등의 기능을 강조하여 설계되었습니다.
  2. 프로세스 & 동시성:

    • Erlang은 경량 프로세스를 통한 동시성에 중점을 둡니다. 이러한 프로세스는 OS 스레드보다 훨씬 가볍습니다.
    • 프로세스 간의 통신은 메시지 패싱을 통해 이루어지며, 프로세스는 서로의 상태를 공유하지 않습니다.
  3. 불변성:

    • Erlang은 함수형 프로그래밍 언어로서 데이터의 불변성을 중요시합니다. 이는 병렬 처리 및 동시성에서의 오류 발생 확률을 줄이는 데 기여합니다.
  4. 분산 처리:

    • Erlang 시스템은 여러 노드에서 실행될 수 있으며, 이러한 노드들은 네트워크를 통해 통신합니다. 이를 통해 분산 시스템 구축이 간편합니다.
  5. 고장 허용:

    • Erlang은 "Let it crash"라는 철학을 가지고 있습니다. 이는 시스템의 일부가 실패하더라도 전체 시스템이 계속 작동할 수 있도록 설계되었음을 의미합니다.
  6. OTP (Open Telecom Platform):

    • OTP는 Erlang에서 제공하는 미들웨어입니다. OTP는 설계 원칙, 구조, 및 패턴을 제공하여 개발자들이 Robust, Scalable, Distributed 애플리케이션을 효과적으로 구축할 수 있도록 돕습니다.
  7. 사용 사례:

    • Erlang은 WhatsApp, Facebook's Messenger infrastructure, RabbitMQ, CouchDB 등 다양한 큰 규모의 분산 시스템에서 사용되었거나 영향을 받았습니다.

Erlang은 주어진 문제 영역에 따라 최적의 선택일 수도, 아닐 수도 있지만, 고가용성, 분산, 동시성을 필요로 하는 시스템에서는 그 장점을 최대한 발휘할 수 있습니다.



스칼라와 Erlang (언랭)은 둘 다 강력한 프로그래밍 언어이지만, 서로 다른 철학, 특징, 및 사용 사례를 가지고 있습니다. 이 두 언어를 비교해보겠습니다:

  1. 타입 시스템:

    • 스칼라: 스칼라는 강력한 정적 타입 시스템을 가진 객체-함수형 프로그래밍 언어입니다. 이 타입 시스템은 코드의 안정성을 증진하며, 복잡한 타입 추론 및 타입-레벨 프로그래밍을 가능하게 합니다.
    • Erlang: Erlang은 동적 타입 시스템을 사용합니다. 이는 빠른 프로토타이핑과 유연성에 장점이 있지만, 컴파일 시점에서의 타입 안정성은 보장되지 않습니다.
  2. 동시성:

    • 스칼라: 스칼라는 JVM 위에서 동작하며, Java 스레드를 이용한 동시성을 지원합니다. 또한, Akka와 같은 프레임워크를 통해 액터 기반의 동시성 모델을 제공합니다.
    • Erlang: Erlang은 액터 모델을 기반으로 한 내장된 동시성 기능을 가집니다. 경량 프로세스와 메시지 패싱을 사용하여 높은 동시성을 지원합니다.
  3. 분산 및 복구:

    • 스칼라: 스칼라 자체에는 분산 기능이 포함되어 있지 않지만, Akka와 같은 라이브러리를 사용하여 분산 애플리케이션을 구축할 수 있습니다.
    • Erlang: 분산 및 고장 허용 기능이 언어 수준에서 지원됩니다. Erlang 시스템은 여러 노드에서 자연스럽게 실행될 수 있으며, 시스템의 일부가 실패해도 전체 시스템이 계속 작동할 수 있도록 설계되었습니다.
  4. 성능 및 플랫폼:

    • 스칼라: 스칼라는 JVM 위에서 실행되므로 Java와 비슷한 성능 특성을 가집니다. JVM의 강력한 최적화와 광범위한 라이브러리 생태계의 이점을 활용할 수 있습니다.
    • Erlang: Erlang은 BEAM 가상 머신 위에서 실행됩니다. 이는 실시간, 분산, 고가용성 시스템을 위해 최적화되어 있습니다.
  5. 사용 사례:

    • 스칼라: 웹 서비스, 빅 데이터 처리 (예: Apache Spark), 및 일반적인 애플리케이션 개발에 주로 사용됩니다.
    • Erlang: 통신 시스템, 메시징 시스템 (예: RabbitMQ), 및 고가용성을 필요로 하는 시스템에 주로 사용됩니다.

결론적으로, 스칼라와 Erlang은 각자의 독특한 장점과 사용 사례를 가지고 있습니다. 선택은 개발하려는 시스템의 특정 요구 사항과 개발자의 선호에 따라 달라질 수 있습니다.


"MS의 액터 모델"이라고 하면, Microsoft의 액터 모델 구현인 "Orleans"를 지칭하는 것으로 생각됩니다. Orleans는 클라우드 환경에서 분산 시스템을 구축하기 위한 프레임워크로, 액터 모델을 기반으로 합니다. Orleans의 주요 특징 및 컨셉트에 대해 살펴보겠습니다:

  1. 가상 액터 (Virtual Actor):

    • Orleans는 "가상 액터" 개념을 도입합니다. 이는 액터가 필요할 때만 메모리에 로드되며, 일정 시간 동안 활동이 없으면 자동으로 언로드됩니다.
    • 액터 인스턴스는 명시적으로 생성되거나 제거될 필요가 없습니다. 액터의 ID만 알면 해당 액터에 메시지를 전송할 수 있습니다.
  2. 단일 스레드 실행:

    • 각 액터는 동시에 한 스레드에서만 실행됩니다. 이는 액터 내부의 상태에 대한 동시 접근을 방지하고, 상태 변경을 안전하게 관리할 수 있게 합니다.
  3. 분산 및 확장성:

    • Orleans는 클라우드 환경에서의 분산 애플리케이션을 목표로 설계되었습니다. 따라서 액터들은 여러 서버 노드에 걸쳐 분산될 수 있습니다.
    • 시스템 로드에 따라 새로운 노드를 추가하거나 제거함으로써 애플리케이션의 확장성을 유연하게 관리할 수 있습니다.
  4. 내구성 및 지속성:

    • Orleans는 액터의 상태를 외부 스토리지에 지속적으로 저장할 수 있는 메커니즘을 제공합니다. 이를 통해 액터가 실패하거나 재시작될 경우에도 상태를 복원할 수 있습니다.
  5. 스트림:

    • Orleans는 액터 간의 비동기 스트림 통신을 지원합니다. 액터는 스트림을 구독하거나, 스트림에 이벤트를 게시할 수 있습니다.
  6. 사용 사례:

    • Orleans는 Microsoft의 클라우드 게임 서비스인 "Halo 4"의 온라인 백엔드 개발에 사용되었습니다. 이는 Orleans의 대규모 동시 사용자와 고가용성 요구 사항을 충족하는 능력을 보여줍니다.

Orleans는 .NET 환경에서 액터 모델 기반의 분산 시스템을 구축하고자 하는 개발자들에게 강력한 도구를 제공합니다.



리액티브 스트림(Reactive Streams)은 비동기 데이터 스트림 처리를 위한 표준입니다. 리액티브 스트림 서밋이나 관련 행사에서는 이 표준과 연관된 다양한 기술 및 도구, 그리고 이를 활용한 개발 방법론에 대해 다루게 됩니다.

다음은 리액티브 스트림과 관련된 핵심 기술 및 개념들입니다:

  1. Backpressure:

    • 백프레셔는 생산자와 소비자 사이의 데이터 흐름 속도 차이를 해결하기 위한 메커니즘입니다. 생산자가 데이터를 빠르게 생성할 경우, 소비자가 처리할 수 있는 속도보다 더 빨리 데이터가 도착하면, 이로 인해 시스템에 부하나 메모리 문제가 발생할 수 있습니다. 백프레셔를 통해 소비자는 자신의 처리 속도에 맞춰 데이터를 요청하게 되어 이러한 문제를 방지합니다.
  2. Publisher, Subscriber, Subscription, Processor:

    • 이들은 리액티브 스트림 API의 주요 구성 요소입니다.
      • Publisher: 데이터를 생성하고 소비자에게 전달하는 역할을 합니다.
      • Subscriber: 데이터를 받아 처리하는 역할을 합니다.
      • Subscription: Publisher와 Subscriber 사이의 연결을 관리하며 백프레셔 메커니즘을 제공합니다.
      • Processor: Publisher와 Subscriber의 역할을 동시에 수행하여 데이터의 중간 처리를 할 수 있습니다.
  3. Reactive Libraries and Frameworks:

    • 리액티브 스트림 표준을 구현하거나 지원하는 다양한 라이브러리와 프레임워크가 존재합니다. 예로는 Reactor, RxJava, Akka Streams 등이 있습니다.
  4. Integration with Existing Systems:

    • 리액티브 스트림은 다양한 시스템과 통합될 수 있습니다. 예를 들면, 데이터베이스, 메시징 시스템, 웹 서버와 같은 기존 시스템과의 통합 방법이 주제로 다루어질 수 있습니다.
  5. Best Practices & Patterns:

    • 리액티브 프로그래밍 및 스트림 처리에 대한 최적의 방법론, 디자인 패턴, 그리고 안티 패턴 등이 소개될 수 있습니다.

서밋이나 행사는 매번 내용이 변경될 수 있으므로, 구체적인 주제나 발표 내용은 해당 행사의 공식 웹사이트나 프로그램 안내서를 통해 확인하는 것이 좋습니다.



Reactive Summit 2020의 구체적인 세션 내용과 발표 주제는 제 최근 훈련 데이터에 기반하여 2022년 1월까지의 정보로만 답변할 수 있습니다. 그러나 일반적으로 Reactive Summit에서는 리액티브 프로그래밍, 리액티브 시스템 아키텍처, 관련 도구 및 라이브러리, 그리고 관련된 최신 기술 동향에 대한 주제들을 다룹니다.

구체적인 세션 내용, 발표 주제, 그리고 스피커 정보를 알기 위해서는 Reactive Summit 2020의 공식 웹사이트, YouTube 채널, 또는 관련 자료를 참조하는 것이 좋습니다. 이러한 정보 소스는 세션에 대한 상세 정보, 발표 슬라이드, 비디오 링크 등을 제공할 수 있습니다.

일반적으로 Reactive Summit는 리액티브 프로그래밍과 관련된 여러 주요 주제, 실제 사례, 그리고 새로운 도구나 프레임워크에 대한 세션들로 구성됩니다. 이러한 주제들 중 일부는 Reactive Streams, Akka, Play Framework, Lagom, Apache Kafka 등과 관련된 내용일 수 있습니다.


Reactive Summit 2019는 리액티브 프로그래밍, 리액티브 시스템, 리액티브 마이크로서비스 등의 주제에 중점을 둔 컨퍼런스였습니다. 해당 컨퍼런스에서는 다양한 세션과 발표가 진행되었을 것입니다.

다음은 Reactive Summit 2019에서 다루어진 주제와 관련 기술, 그리고 리액티브 프로그래밍 및 시스템에 대한 주요 토픽을 몇 가지 예시로 든 것입니다:

  1. 리액티브 아키텍처 및 디자인 패턴: 리액티브 시스템을 설계하고 구현하기 위한 방법론 및 패턴에 대한 세션.

  2. Akka: Lightbend의 Akka 플랫폼과 관련된 여러 기능과 사용 사례에 대한 발표.

  3. Reactive Streams: 리액티브 스트림 및 백프레셔에 대한 깊은 이해와 관련된 세션.

  4. 리액티브 마이크로서비스: 마이크로서비스 아키텍처에서의 리액티브 패러다임의 적용 및 관련 도구와 플랫폼에 대한 내용.

  5. 실제 사용 사례: 다양한 산업 분야에서 리액티브 프로그래밍 및 시스템을 적용한 사례 연구.

  6. 도구 및 라이브러리: 리액티브 프로그래밍을 지원하는 도구, 라이브러리, 프레임워크에 대한 깊은 다이빙 세션.

이 외에도 Reactive Summit 2019에서는 다양한 주제와 기술, 그리고 리액티브 프로그래밍 및 시스템에 대한 심도 있는 내용들이 다루어졌을 것입니다. 구체적인 발표 내용 및 세션에 대해서는 해당 컨퍼런스의 웹사이트나 YouTube 채널, 발표 자료를 참고하는 것이 가장 정확할 것입니다.

작성도움 gpt


Next 주제

Reactive Stream에서 다루는 빠른생산자와 느린소비자








  • No labels
Write a comment…