4.1 함수형 인터페이스(Functional Interface) 단 하나의 추상 메서드만 정의된 인터페이스 함수를 일급시민(값)으로 취급 함수 자체를 파라미터로 전달 가능 @FunctionalInterface public interface Comparator { int compare(T o1, T o2); // 단 하나의 추상 메서드 ... default Comparator reversed() { return Collections.reverseOrder(this); } default Comparator thenComparing(Comparator
I/O : 컴퓨터 시스템이 외부의 입출력 장치들과 데이터를 주고 받는 것 파일 I/O, DB I/O, 네트워크 I/O 등 3.1 Blocking I/O 하나의 스레드가 I/O에 의해서 차단되어 대기하는 것 멀티스레딩 기법으로 보완 가능하나 아래와 같은 문제점 존재 컨텍스트 스위칭으로 인한 스레드 전환 비용 과다한 메모리 사용으로 오버헤드 발생할 수 있음 스레드 풀에서 응답 지연 발생할 수 있음 3.2 Non-Blocking I/O 작업 스레드의 종료 여부와 관계없이 요청한 스레드는 차단되지 않음 스레드 내부에 CPU를 많이 사용하는 작업이 포함된 경우에는 성능에 악영향을 줄 수 있음 사용자의 요청에서 응답까지의 전체 과정에서 Blocking I/O 요소가 포함된 경우에는 Non-Blocking의 이점을 ..
2.1 리액티브 스트림즈(Reactive Streams)란? 데이터 스트림을 Non-Blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리 표준 사양 구현체 예시 : Reactor, RxJava, Akka Streams, Java 9 Flow API 등 2.2 리액티브 스트림즈 구성요소 Publisher : 데이터 생성 및 통지 Subscriber : 구독한 Publisher로부터 통지된 데이터를 전달 받아 처리 Subscription : Publisher 구독, 요청할 데이터의 개수 지정, 구독 취소 Processor : Publisher와 Subscriber 기능 모두 2.3 코드로 보는 리액티브 스트림즈 컴포넌트 Publisher package org.reactivestreams..
1.1 리액티브 시스템(Reactive System)이란? Reactive : 반응을 하는 Reactive System : (어떤 이벤트나 상황에) 반응을 잘하는 시스템 클라이언트의 요청에 즉각 응답함으로써 지연 시간을 최소화 1.2 리액티브 선언문으로 리액티브 시스템 이해하기 MEANS (수단) : 메시지 기반 통신 FORM (형태) : 탄력성과 회복성 탄력성 : 시스템의 작업량이 변화하더라도 일정한 응답 유지 회복성 : 시스템에 장애가 발생하더라도 응답성 유지 VALUE (가치) : 빠른 응답성을 바탕으로 유지보수와 확장이 용이한 시스템 구축 1.3 리액티브 프로그래밍(Reactive Programming)이란? 리액티브 시스템을 구축하는 데 필요한 프로그래밍 모델 리액티브 시스템의 설계 원칙에 부합..
회사에서 Reactive Programming, Project Reactor 세미나 준비하면서 참고한 책 https://product.kyobobook.co.kr/detail/S000201399476 샘플 코드 : https://github.com/bjpublic/Spring-Reactive 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Part 01 | 리액티브 프로그래밍(Reactive Programming) Part 02 | Project Reactor
- Total
- Today
- Yesterday