# spring webflux
Publisher, Subscriber, Subscription
리액티브 프로그래밍에서 Publisher, Subscriber, 그리고 Subscription은 데이터 스트림을 처리하는 중요한 구성 요소입니다. 이들은 Java의 java.util.concurrent.Flow API에 정의되어 있으며, 리액티브 스트림(Reactive

JWT Authentication With Spring WebFlux And Spring Security
Spring WebFlux을 사용한 Spring Security로 JWT Authentication을 구현하는 과정을 정리해보았다.클래스의 보안을 사용하여 유효성을 검사하는 데 필요한 모든 것을 제공하는 jwt 라이브러리를 사용한다. SpringSecuirty 메인 클

WebClient 사용방법
RestTemplate의 javadoc을 보면 맨 아래 글에 RestTemplate 대신에 Webclient를 사용하도록 권장하고 있습니다. RestTemplate 그래서 이번기회에 WebClient에 대해서 기본적인 사용방법에 대해서만 알아보기로 했습니다. M

[spring webflux] bean 이름 생성과정
최근 팀원분 중 한명이 class를 새로 만들었었는데 예시는 아래와 같았습니다.그리고 문제 없이 작동하고 있었습니다. 하지만 의문이 있었습니다. 왜냐하면 이미 다른 모듈에 똑같은 클래스가 있었기 때문입니다.그동안의 제 상식으로는 이해가 가지 않았습니다. spring은
Spring WebFlux와 반응형 데이터베이스: 왜 필요하고 어떻게 작동하는가?
Spring WebFlux는 비동기적인 처리 모델을 사용하는 웹 프레임워크입니다. 이러한 비동기 처리는 높은 트래픽과 대량의 데이터를 효율적으로 처리할 수 있게 해주지만, 동시에 기존의 차단 방식(blocking)의 데이터베이스 연결과는 잘 호환되지 않습니다.왜냐하면,
Spring WebFlux: 탄생 배경, MVC와의 비교, 그리고 장단점
Spring WebFlux는 Spring 5에서 도입된 비동기적인 웹 프레임워크입니다.이전 버전의 Spring은 Servlet API를 기반으로 한 동기적인 처리 모델을 사용하였습니다.그러나 최근에는 높은 트래픽과 데이터량을 효율적으로 처리하기 위한 방법이 필요해졌습니
transactional operator 커스텀해서 사용하기
개발을 하다보면 여러가지 문제를 마주칠 때가 많다. 그리고 내가 겪는 대부분의 문제들은 누군가 이미 겪었을 확률이 99% 이기에 검색만 해봐도 대부분의 문제를 금방 해결할 수 있다. 예를 들어 티켓팅, 좌석예매, 선착순 이벤트 등 굉장히 유명한 문제에 대해서는 다양한
리액티브, 리액티브 시스템, 리액티브 프로그래밍, 리액티브 스트림즈......?! #1
Spring Webflux를 이해하기 위한 Reactive 편
Spring Web vs Spring Webflux
Spring Web : Servlet API 위에 만들어진 웹 프레임워크 blocking I/O synchronous communication 낮은 동시성을 요구하는 소규모 어플리케이션 응답을 받을 때까지 스레드가 막혀, CPU/메모리 사용량이 높다. Spring Webflux : Reactive Streams 위에 만들어진 반응형 웹 프레임워크 no...

Webflux+Spring Security+JWT Simple하게 구현하기
Servlet기반의 Spring에서 Spring Security와 JWT을 연동하여 설정하여 사용했었다. Webflux에서도 동일하게 구현가능할까 알아보았고 메소드는 조금 달랐지만 기존에 구현하였던 기능들을 구현할 수 있었다.아래와 같이 Spring Security 라

블로킹과 논블로킹, 동기와 비동기 - 2
블로킹과 논블로킹, 동기와 비동기 - 1에서 이어진다.Blocking/Sync로 동작하는 Spring MVC와 Non-Blocking/Async로 동작하는 Spring WebFlux를 다루기 전에 Spring에 대해 간단히 알아보자.전 포스트에서 프레임워크와 라이브러리

[spring webflux] 이벤트 버스 활용하기
회사에서 진행하고 있던 프로젝트의 기능 중 하나가 유저의 추천인 코드를 업데이트 하는 것이었고 이 로직을 구현하면서 eventBus를 활용해보았습니다. 이 글은 eventBus를 만들고 활용한 예시에 대한 글이고 느낀점을 담았습니다.https://kwonnam

[Section 4] Project Reactor
사진은 첫 런던 여행 첫날 첫 여행지 내셔널 갤러리 시작은 순조로웠지만... 가면갈수록 Publisher와 Subscriber가 주객전도되는 것 마냥 헷갈렸다... operator 종류가 너무 많아서 힘들다ㅠㅠ

Spring WebFlux (2)
WebFlux라는 용어는 Reactor의 타입인 Flux가 Web에서 사용된다라고 말할 수 있다.더 넓게 생각해 보면 WebFlux는 리액티브 한 웹 애플리케이션을 구현하기 위한 기술 자체를 상징하고 있다고 보는게 적절할 것이다.Spring 5부터 지원하는 리액티브 웹

[Section 4] 리액티브 프로그래밍
시내 Hanley 구경 나갔다가 장보러가는 길에 노을이 너무 예뻐서 찍은 사진 리액티브 시작했다... 용어랑 개념만 가볍게만 배웠는데도 벌써 생소하다...

Spring WebFlux
반응을 잘하는 시스템을 의미합니다.리액티브 시스템을 이용하는 클라이언트의 요청에 반응을 잘하는 시스템.리액티브 시스템 관점에서 반응은 스레드의 Non-Blocking과 관련있습니다.리액티브 시스템은 클라이언트의 요청에 대한 응답 대기 시간을 최소화할 수 있도록 요청 스

Webflux에서 Mongo Aggregation 사용하기
MongoDB에서 RDB에서 사용하는 것처럼 collection을 join 할 수 있도록 지원하는 aggregation 기능을 제공한다.기존 JPA에서는 native Query를 spring에서 사용할 수 있도록 @Query annotation을 지원하고, QueryD

코드스테이츠 백엔드 부트캠프 71일차 - Spring WebFlux
WebFluxReactor의 타입인 Flux가 Web에서 사용되는 것Non-BlockingSpring WebFlux의 경우 Non-Blocking 통신을 지원Spring MVC의 경우 Non-Blocking이 아닌 Blocking 통신 방식을 사용유연함Spring We

코드스테이츠 백엔드 부트캠프 70일차 - [Spring WebFlux] Project Reactor
Reactor리액티브 스트림즈(Reactive Streams)를 구현한 구현체 중 하나리액티브한 애플리케이션으로 동작하는데 있어 핵심적인 역할을 담당하는 리액티브 프로그래밍을 위한 라이브러리요청 쓰레드가 차단이 되지 않는다.Non-Blocking 통신을 완벽하게 지원하