book

    [리액티브 프로그래밍] 마블 다이어그램(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 코드로 ..

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

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

    [리액티브 프로그래밍] Blocking I/O와 Non-Blocking I/O

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Blocking I/O 하나의 스레드가 I/O에 의해서 차단되어 대기하는 것. -> 멀티스레딩 기법으로 차단된 시간을 효율적으로 사용할 수는 있으나, 이 방식도 몇 가지 문제점이 있다. ✅ 컨텍스트 스위칭으로 인한 스레드 전환 비용 프로세스 정보를 PCB에 저장, reload 하는 시간 동안에는 CPU가 다른 작업을 하지 못하고 대기한다. -> 컨텍스트 스위칭이 많으면 CPU..

    [리액티브 프로그래밍] 리액티브 스트림즈(Reactive Streams)

    [리액티브 프로그래밍] 리액티브 스트림즈(Reactive Streams)

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr 리액티브 스트림즈(Reactive Streams)란? ✅ 리액티브 스트림즈 리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 표준 사양. -> 데이터 스트림을 Non-Blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리의 표준 사양 리액티브 스트림즈 구성요소 ✅ 리액티브 스트림즈 컴포넌트 컴포넌트 설명 Publisher 데이터를 생성하고 통지하는 역할. ..

    [리액티브 프로그래밍] 리액티브 시스템과 리액티브 프로그래밍

    [리액티브 프로그래밍] 리액티브 시스템과 리액티브 프로그래밍

    스프링으로 시작하는 리액티브 프로그래밍 책 정리 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr 리액티브 시스템(Reactive System)이란? ✅ 리액티브 시스템 반응을 잘하는 시스템. -> 클라이언트의 요청에 즉각적으로 응답함으로써 지연 시간을 최소화. 리액티브 선언문으로 리액티브 시스템 이해하기 ✅ 리액티브 선언문 리액티브 시스템 구축을 위한 일종의 설계 원칙이자 리액티브 시스템의 특징. ✅ 리액티브 설계 원칙 MEANS(수단) 리액티브 시스템은 비동기 메시지 ..

    [자바 최적화] 자바 언어의 성능 향상 기법

    [자바 최적화] 자바 언어의 성능 향상 기법

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 컬렉션 최적화 ✅ 자바 최적화의 한계 자바는 객체를 생성하면 객체를 가리키는 레퍼런스와(스택), 객체 자체(힙)를 따로 저장한다. -> 이렇게 레이아웃을 나누는 방식은 C/C++ 형식의 배열이나 벡터를 사용하는 것만큼 성능을 얻을 수 없게 한다. ✅ 자바 컬렉션 컬렉션이 애플리케이션 성능에 전체적인 영향을 끼칠 수 있다는 사실을 인식해야 한다. List 최적..

    [자바 최적화] JIT 컴파일의 세계로

    [자바 최적화] JIT 컴파일의 세계로

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr JITWatch란? ✅ JITWatch 이 책의 필자 중 한 사람인 크리스 뉴랜드가 개인 프로젝트로 구축한 오픈 소스 자바FX 툴. -> 실행 중인 자바 애플리케이션이 생성한 핫스팟 컴파일 상세 로그를 파싱/분석하여 그 결과를 자바FX GUI 형태로 보여준다. -> 애플리케이션을 실행할 때 다음 플래그를 추가해야 JVM이 JITWatch에 입력할 로그를 생성..