전체 글

전체 글

    [리액티브 프로그래밍] Scheduler

    [리액티브 프로그래밍] Scheduler

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr 스레드(Thread)의 개념 이해 Reactor에서 사용되는 Scheduler는 Reactor Sequence에서 사용되는 스레드를 관리해 주는 관리자 역할을 한다. -> 그럼 먼저 스레드에 대해 알아보자. ✅ 물리적인 스레드 실제 하드웨어와 관련된 스레드. 그림을 보면 하나의 코어는 두 개의 스레드를 포함하고 있다. -> 물리적인 스레드는 논리적인 코어라고도 부른다. ✅ 논..

    [리액티브 프로그래밍] Sinks

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Sinks란? ✅ Processor 리액티브 스트림즈의 구성요소 중 하나인, Publisher와 Subscriber의 기능을 모두 지닌 Processor는 Reactor 3.5.0부터 제거되었다. 대신 Processor의 기능을 개선한 Sinks가 3.4.0부터 지원되기 시작했다. Sinks는 Signal을 프로그래밍 방식으로 전송할 수 있는 구조이다. -> Reactor에서..

    [리액티브 프로그래밍] Backpressure

    [리액티브 프로그래밍] Backpressure

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Backpressure란? ✅ Backpressure의 역할 Publisher가 데이터를 emit하는 속도에 비해, Downstream Publisher(Downstream Consumer) 혹은 Subscriber가 데이터를 처리하는 속도가 느리다면 오버플로가 발생하거나 최악의 경우에는 시스템이 다운되는 문제가 발생한다. -> Backpressure는 Publisher가 끊..

    [리액티브 프로그래밍] Cold Sequence와 Hot Sequence

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Cold와 Hot의 의미 ✅ 컴퓨터 시스템에서 Cold와 Hot Cold: 어떤 작업을 위해 다시 시작하고, 같은 작업을 매번 반복함. Hot: 어떤 작업에 대해 다시 시작하지 않고, 같은 작업이 반복되지 않음. Cold Sequence Subscriber의 구독 시점이 달라도, 구독할 대마다 Publisher가 데이터를 emit하는 과정을 처음부터 다시 시작하는 데이터의 흐..

    [리액티브 프로그래밍] 마블 다이어그램(Marble Diagram)

    [리액티브 프로그래밍] 마블 다이어그램(Marble Diagram)

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr 마블 다이어그램(Marble Diagram)이란? ✅ 마블 다이어그램 비동기적인 데이터 흐름을 시간의 흐름에 따라 시작적으로 표시한 다이어그램. 그림에 나와있는 번호 순서대로 설명하자면, Publisher가 데이터를 emit하는 타임라인. 가운데 Operator를 기준으로 Upstream의 Publisher라고 볼 수 있다. (Source Flux) Publisher가 emi..

    [리액티브 프로그래밍] Reactor 개요

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Reactor란? ✅ Reactor Spring Framework 팀 주도하에 개발된 리액티브 스트림즈의 구현체. Spring Framework 5 버전부터 Spring WebFlux 기반의 리액티브 애플리케이션을 제작하기 위한 핵심 역할을 한다. -> Reactor Core 라이브러리가 Spring WebFlux 라이브러리에 포함되어 있다. Hello Reactor 코드로 ..

    [Java] Comparator와 @FunctionalInterface

    함수형 인터페이스 공부하다가, Comparator 인터페이스 @FunctionalInterface 애노테이션이 붙은 것을 확인했다. @FunctionalInterface public interface Comparator { int compare(T o1, T o2); boolean equals(Object obj); ... } 해당 애노테이션은 Comparator가 함수형 인터페이스라고 명시하는 것이다. 그러나 함수형 인터페이스는 추상 메서드가 한 개여야 한다. 근데 Comparator는 위와 같이 추상 메서드가 두개다. -> 왜 Comparator를 함수형 인터페이스로 명시한걸까하는 의문이 들었다. 찾아보니, 모든 클래스는 Object 클래스를 상속받데, 만약 아무 것도 상속받지 않은 클래스가 있으면 ..

    [리액티브 프로그래밍] 리액티브 프로그래밍을 위한 사전 지식

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr 함수형 인터페이스(Functional Interface) 리액티브 프로그래밍을 잘 사용하기 위해서 기본적으로 함수형 프로그래밍 기법을 알아야 한다. ✅ 함수형 인터페이스 단 하나의 추상 메서드만 정의되어 있는 인터페이스. 함수를 일급 시민으로 취급하여, 함수 자체를 파라미터로 전달할 수 있다. ex) Comparator public class Example4_1 { publi..