본문 바로가기

빗썸 테크코스 아카데미/1주차(Event Driven)

(5)
5일차 WebFlux Webflux springWebFlux란? Spring5에서 reactive stack을 지원하는 web container freamework Netty등 비동기 Non blocking 컨테이너 사용 springWebFlux특징 Non bolcking IO 최소한의 리소스로 효율적인 운영 Singler worker thread가 Event loop 처리 Functional Endpoints Lambda 기반 functonal programming model Reqeuest Router가 handler로 request routing Handler method에 @RequestMapping선언부 없이 request/reponse를 App에서 전부 제어 spring MVC와 WebFlux spring MVC와..
4일차 과제 실습 Operation 실습 시간에는 실습을 하면서, 내가 궁금했던 혹은 의아했던 것들에 대해서 블로그에 정리해보기로 정하였다. expectSubscription() 위 두가지 테스트는 둘다 성공적으로 돌아간다. 그렇다면 .expectSubscription()을 사용하지 않아도 될까? Reacive Streams의 흐름을 보면, Subscriber에 의해, Publisher의 subscribe Method가 실행되면, Subscription이 생성된다. 이후 Subscription에 Publisher는 data를 전달하며, subscriber는 onNext를 통해 data를 전달받기도, 이후 onComplete와 onError로 흐름을 마루리 짓기도 한다. 이 때, 이 Subscription이 생겼는가를 확인..
3일차 리액티브 프로그래밍 오퍼레이션 Sequence 생성 Just 시퀀스를 생성하는 가장 쉬운 방법은 Flux.just()를 사용하는 것이다. just() 메서드는 시퀀스로 사용할 데이터가 이미 존재할 때 사용한다. 다음은 사용 예이다. 내부 구조를 살펴보면 다음과 같다. 전달받은 값이 빈값이라면 빈플럭스를 반환하고 그게 아니라면 FluxArray를 반환한다. 위에도 확인할수 있는 사실은 3가지가 존재한다. 1. Flux, Mono는 Publisher를 구현한 클래스들이고 Sequence(데이터 흐름)를 생성한다. 2. Publisher와 Subscriber구조에서 볼수 있듯이, Sequence는 subscriber에 의해 subscribe되어 데이터가 처리 된다. 3. 이후 subscriber은 request를 통해 전달받은 데이터의 수..
2일 리액티브 프로그래밍 리액티브 프로그래밍이란? 요구사항의 변화 한 개의 거대한 앱에서 도메인별로 나뉘어진 여러개의 Micro App으로 변화함에 따라 응답이 잘되고, 탄력적이며 유연하고 메시지 기반으로 동작하는 시스템의 필요성이 대두되었고 이에 따라 등장한 프로그래밍 방식이다. 리액티브 프로그래밍은 데이터 스트림과 변경 사항 전파를 중심으로하는 비동기 프로그래밍 패러다임이다. 이것은 프로그래밍 언어로 정적 또는 동적인 데이터 흐름을 쉽게 표현할 수 있어야하며, 데이터 흐름을 통해 하부 실행 모델이 자동으로 변화를 전파할 수 있는 것을 의미한다. 리액티브 프로그래밍은 위의 그림처럼 비동기 & 논블록킹 방식을 취하고 있다. funB가 funcA를 호출하며 callbackUrl을 주고 funA는 callBackUrl을 통해 실행 ..
1일차 이벤트 드리븐 아키텍쳐 & 프로그래밍 동기 (Synchronous)와 비동기(Asynchronous) 1. 동기 말그대로 동시에 일어난다는 의미입니다. 예를 들어 커피를 시켰을때, 커피가 만들어질때까지 옆에서 기다린다면 동기적 프로그래밍이라고 할수 있습니다. 결과가 발생할때까지 결과값을 기다리는것을 의미합니다 2. 비동기 동시에 일어나지 않는것을 의미합니다. 예를 들어 커피를 시켰을때, 진동벨을 통해 커피가 만들어질때까지 기다리지 않는다면 비동기적 프로그래밍이라고 할 수 있습니다. 결과가 발생할때까지 결과값을 기다리지 않고 다른 할일을 처리하다가 결과값을 받는것을 의미합니다. 블록킹(Blocking)과 논 블록킹(Non - Blocking) 1. 블록킹 호출한 함수의 상태와 연관이 있다. A가 B를 호출하고 B를 계속 기다린다면, 그 방식을..