
Spring5 리액티브 (Web flux)
1.5 Spring5 Reactive 이번챕터에서 다룰 Spring Reactive는 제가 실무에서는 다루어보지 못한 기술입니다. 하지만 Spring5가 나오면서 가장 열정적으로 소개하고있는 기술이기에 정리를 해보려고 합니다. Spring에서는 “Reactive”라는 단어를 다음과 같이 정의하고 있습니다. The term, “reactive,” refers to programming models that are built around reacting to change — network components reacting to I/O events, UI controllers reacting to mouse events, and others. In that sense, non-blocking is react..
- JAVA/Reactor,RxJava,Reactive Streams
- · 2021. 11. 12.

java, stream api에서 NPE 발생 주의
java stream api를 많이 사용하실텐데요. 예상치 못하게 NullPointerException 발생을 맞이하는 경우가 있어서 정리해보고자 합니다. 예시 SimpleEntry keyValue = new SimpleEntry("test", null); System.out.println(keyValue.getValue()); SimpleEntry는 java.util의 key - value를 담을 수 있는 클래스입니다. (HashMap에서 사용하는 그것) 위를 실행하면 어떤 결과가 나올까요? 네. 예상하신것 처럼 "null"입니다. SimpleEntry keyValue = new SimpleEntry("test", null); List list = Arrays.asList(keyValue); Objec..
- JAVA/Reactor,RxJava,Reactive Streams
- · 2021. 7. 30.

Reactive와 Spring 4 (C10K, 리액티브 선언문, 리액티브 스프링 등장 전)
Spring 프레임워크도 5.x 부터는 리액티브를 지원하기 시작했지만, 이 글에서는 그 전까지의 상황을 살펴보았다. 리액티브가 왜 필요하고, 스프링5가 나오기전까진 반응성을 어떻게 구현하였는지를 살펴본다. 1. 리액티브(반응형)이 왜 필요한가? 1-1. C10K 문제 http://www.kegel.com/c10k.html 다수의 클라이언트를 동시에 처리할 수 있는가? 서버에서 10K(1만)개의 클라이언트에 대한 연결, 응답, 부하에 관련된 이야기 스레드는 서버의 cpu core 수에 종속적, 멀티스레드로 10k 요청에 대해 처리할 수 있는 한계가 있다. 요청 스레드들이 io wait 에 전부 빠져있다면? 대안) event-driven 방식 이벤트(=요청)와 io처리(I/O 멀티플렉싱)를 분리 이벤트루프는..
- JAVA/Reactor,RxJava,Reactive Streams
- · 2021. 3. 23.

RxJava 코드로 Reactive Streams 맛보기 (코드레벨의 동작방식, map, filter, reduce 연산자 직접 구현)
1. RxJava는? https://github.com/ReactiveX/RxJava 리액티브 프레임워크 중 하나이다. 다른 구현체로는 Akka, 리액터 등 RxJava 1.3.8을 끝으로 EOL 되었지만, 개념을 익히는 용도로만 사용해보자 RxJava 2.x 나 3.x 사용 권장 아래에서 사용하는 API들은 매우 기본적인 거라, 다른 버전에서도 호환됨 2. 스트림의 생산과 소비 @Test public void 스트림의_생산과_소비() { // 스트림 생산 : 이벤트 생성기 Observable observable = Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber
- JAVA/Reactor,RxJava,Reactive Streams
- · 2021. 3. 21.