비동기성 : 데이터는 비동기적으로 흐르며, 스트림을 통해 연속적으로 전달됩니다. 이는 멀티스레딩과 비동기 작업을 쉽게 다룰 수 있게 해줍니다.데이터 흐름 처리 : 스트림에 포함된 데이터를 순차적으로 처리하거나, 원하는 조건에 맞게 변형하거나 걸러내는 작업을 수행할 수
리액티브 프로그래밍에서는 다양한 함수와 연산자를 사용하여 데이터 스트림을 다룰 수 있습니다. 아래에는 주로 사용되는 몇 가지 RxJava의 함수와 연산자를 나열해보겠습니다. 이러한 함수와 연산자는 데이터를 변형하고 조작하거나 비동기적인 처리를 도와주는 역할을 합니다.m
리액터(Reactor)는 리액티브 스트림(Reactive Streams)의 구현체로서, 스프링 프레임워크(Spring Framework)의 일부로 개발된 리액티브 프로그래밍 라이브러리입니다. 리액터는 비동기 및 이벤트 기반 애플리케이션을 개발하기 위한 강력한 기능을 제
리액티브 프로그래밍은 데이터 스트림과 이벤트 기반 프로그래밍을 다루는 패러다임입니다. 이 패러다임에서 "Publisher"와 "Subscriber"는 중요한 개념입니다. Subscriber가 Publisher를 Subscribe 해야 할거 같지만, Publisher가
Subscriber는 리액티브 스트림즈에 포함된 인터페이스로 다음과 같이 정의되어 있다.각 메서드는 다음과 같다.onSubscribe(Subscription s) : 구독을 하면 Publisher와 연동된 Subscription을 받는다. 전달받은 Subscriptio
리액티브 프로그래밍이 선언적 프로그래밍이라고 불리는 이유는 해당 패러다임이 데이터 흐름과 변화에 중점을 두기 때문입니다. 선언적 프로그래밍은 "무엇(What)"을 달성하길 원하는지를 설명하는 것에 초점을 맞추며, "어떻게(How)" 그 목표를 달성할지에 대한 세부 사항
"Hot sequence"와 "Cold sequence"는 리액티브 프로그래밍에서 데이터 스트림의 두 가지 주요 유형을 나타내는 용어입니다. 이 두 가지 유형은 데이터의 생성 및 소비 방식에서 차이가 있습니다.Cold Sequence (Cold Publisher) Co
리액티브 프로그래밍에서 "upstream"과 "downstream"은 데이터 흐름을 설명하는 개념입니다. 이러한 개념은 주로 데이터 스트림이나 이벤트 시스템과 관련이 있습니다.Upstream"Upstream"은 데이터 흐름의 시작점을 나타냅니다. 데이터가 이벤트나 스트
명령형 코드 : sumOfSquaresImperative 메서드에서는 반복문을 사용하여 배열의 각 숫자의 제곱 값을 누적하고, total 변수를 사용하여 상태를 변경합니다.선언적 코드 : sumOfSquaresDeclarative 메서드에서는 배열을 스트림으로 변환하고
리액티브 프로그래밍은 비동기 및 이벤트 기반 애플리케이션을 개발하기 위한 패러다임으로, 데이터 스트림과 변경 사항의 흐름을 처리하는 방식을 강조합니다. Java에서 리액티브 프로그래밍을 구현하기 위해 주로 사용되는 것은 Project Reactor와 RxJava 같은
interval()은 대부분의 리액티브 프레임워크나 라이브러리에서 제공되는 기능 중 하나로, 주어진 시간 간격마다 값을 생성하거나 이벤트를 발생시킵니다. 주로 타이머나 주기적인 작업을 구현할 때 사용됩니다.이 예제에서 interval(1000)은 1초마다 값을 생성하는
Spring WebFlux를 사용하여 리액티브한 마이크로서비스를 만드는 방법을 보여줍니다. 이 예제에서는 간단한 "인증 서비스"를 구현합니다. 의존성 설정 : 먼저 build.gradle 파일에 Spring WebFlux와 관련된 의존성을 추가합니다.리액티브 서비스
리액티브 프로그래밍에서 "subscription"은 옵저버블(Observable)과 옵저버(Observer) 간의 연결을 나타내는 개념입니다. 옵저버블은 데이터 스트림이나 이벤트 스트림을 나타내며, 옵저버는 해당 스트림에서 발생하는 이벤트나 데이터를 처리하는 객체입니다
뮤텍스는 상호 배제(mutual exclusion)를 위한 동기화 기법 중 하나로, 공유 리소스에 대한 접근을 제어하는데 사용됩니다.오직 하나의 쓰레드만 뮤텍스를 소유하고 공유 리소스에 접근할 수 있으며, 다른 쓰레드들은 뮤텍스를 획득하기 위해 대기해야 합니다.세마포어
자바의 "Evaluation"은 일반적으로 프로그래밍 언어 자체의 개념보다는 프로그램 실행 중에 코드 및 표현식을 계산하고 결과를 얻는 프로세스를 나타냅니다. 이것은 자바 언어에서 변수에 값을 할당하고, 수식을 평가하며, 조건문 및 반복문을 통해 로직을 제어하는 등의
Spring WebFlux는 스프링 프레임워크의 일부로서, 비동기 및 반응형 프로그래밍을 지원하는 웹 애플리케이션 개발을 위한 모듈 중 하나입니다. Spring WebFlux를 사용하면 높은 처리량과 확장성을 갖는 웹 애플리케이션을 구축할 수 있습니다. 아래는 Spri
Spring WebFlux의 주요 특징 중 하나는 Non-Blocking 프로세스를 지원한다는 점입니다. Non-Blocking 프로세스는 웹 애플리케이션에서 요청을 처리할 때 I/O 작업이나 긴 지연 시간 작업이 발생할 때도 대기하지 않고 다른 작업을 계속 수행할 수
큐(Queue)는 컴퓨터 과학과 데이터 구조에서 사용되는 중요한 추상 자료 구조입니다. 큐는 데이터를 저장하는 컨테이너로, 일반적으로 "선입선출" (First-In-First-Out, FIFO) 원칙에 따라 데이터를 처리합니다. 즉, 가장 먼저 들어온 데이터가 가장 먼