본문 바로가기

분류 전체보기11

WebFlux 1. WebFlux란 - Spring5에서 reactive stack을 지원하는 web container framework - Netty, Jetty 등 비동기 논블로킹 컨테이너 사용 2. WebFlux의 특징 - Non-blocking IO - 최소한의 리소스로 효율적인 운영 - Singler worker thread가 Eventloop 처리 - Functional Endpoints - Lambda 기반 functional programming model - Request Router가 Handler로 request routing - Handler method에 @RequestMapping 선언부 없이 request/reponse를 어플리케이션에서 전부 제어 3. WebFlux와 MVC 비교 - 성능 .. 2022. 4. 19.
Reactive Programming 1. Reactive System - 요구사항의 변화 - 한 개의 거대한 앱에서 -> 도메인 별로 나뉘어진 여러개의 마이크로 앱으로 - 응답이 잘 되고 탄력적이며, 유연하고 메시지 기반으로 동작하는 시스템이 필요해짐 - 리액티브 선언문(https://www.reactivemanifesto.org/ko) - 응답성(Responsive) - 탄력성(Resilient) - 유연성(Elastic) - 메시지기반(Message Driven) 2. Reactive Programming - 데이터 흐름과 변화 전파에 중점을 둔 프로그래밍 패러다임 - 프로그램 안에서 정적이거나 동적인 데이터 흐름이 표현되어야 함 - 데이터 흐름에 따라 하위 로직에 자동으로 변화를 전파할 수 있어야 함 -> 그래서 필수적 요소로 함수.. 2022. 4. 12.
Event-driven Architecture & Programming 1. 동기와 비동기 - 동기(Synchronous) : 요청자가 처리자의 종료시점을 확인 - 비동기( Asynchronous) : 요청자가 처리자의 종료시점에 신경쓰지 않는 방식 - 작업 처리 시간 : 작업A - 1s, 작업B - 2s, 작업C - 2s - 동기: 1 + 2 + 2 = 5s - 비동기: 2s, 동시에 처리되기 때문에 작업 중 가장 긴 시간. 2. Event - 외부에서 들어오는 요청 - Consumer module이 소비하여 비즈니스 로직을 처리하기 위한 데이터 조각 - 관찰의 대상이 되는 사건 정보를 담고 있다. 3. Event Driven의 주요 요소 (4가지) - Event : 관찰하기로 약속한 사건 : message, notification - Producer : 이벤트 감지와 생.. 2022. 4. 11.
반응형