Mono와 Flux의 기본 개념을 다뤘으니, 이제 고급 연산자와 조합에 대해서도 자세히 설명드릴게요.이러한 연산자는 비동기 흐름을 변환, 결합, 필터링하는 데 매우 유용합니다.📚 주요 연산자1. map vs flatMapmapmap은 데이터를 변환할 때 사용합니다.단일 값을 변환하는 데 적합합니다.비동기 처리가 필요 없다면 map을 사용합니다.예시: mapMono getUserById(String id) { return Mono.just(new User(id, "Alice")) .map(user -> user.getName().toUpperCase()); // 이름을 대문자로 변환}flatMapflatMap은 비동기 작업을 처리할 때 사용합니다.Mono 또는 Flux를 반..

Mono ? Flux ? Spring WebFlux는 Reactive 스타일의 어플리케이션을 개발 할 수 있게 도와주는 프레임워크이며, Reatvice Stream 을 지원하다고 하였습니다. Spring WebFlux 는 이러한 것을 지원하기 위해서 Reactive F/W로 Reactor 와 RxJava 중 Reactor 프로젝트를 사용하여 Reative 스타일의 어플리케이션을 개발을 도와줍니다. 이러한 스타일로 개발을 하다보면 항상 마주치는 것이 Mono 와 Flux 이며 도대체 이게 무엇인지 이해가 되지 않을 겁니다.Mono 공식 문서를 참고 하면 Mono 는 아래와 같이 설명하고 있습니다. Reative Stream Publisher 인데, 0 ~ 1 개의 데이터를 전달한다 이렇게 이해하고 넘..

출처 : https://summsu84.tistory.com/29 개요 Spring Framework, Spring MVC 는 Servlet API 및 Servlet Container 에서 동작 하도록 만들어졌으나, Reactive 웹 프레임워크인 Spring WebFlux 는 비동기/논블럭킹 방식으로 웹 애플리케이션 개발 할 수 있게 해주는 모듈입니다. Spring WebFlux 는 Spring 5.0 이후에 추가 되었으며, Reactive 프로그래밍 패러다임에 기반하며, Netty, Undertow, 그리고 Tocmat 서블릿 컨테이너위에서 동작 합니다. 기존 Spring MVC 와 다르게 Spring WebFlux 적은 리소스로 더 많은 요청을 제공 합니다.동작 원리Spring MVC 일반적으로..
@EnableWebFluxSecurity는 Spring Security에서 제공하는 애노테이션으로, Spring WebFlux 애플리케이션에 보안 기능을 활성화할 때 사용됩니다.✅ @EnableWebFluxSecurity란?@EnableWebFluxSecurity는 리액티브(비동기) 웹 프레임워크인 Spring WebFlux에서 Spring Security를 활성화하는 역할을 합니다.Web MVC (@EnableWebSecurity)와는 다르게, WebFlux는 비동기/논블로킹 구조에 맞춰 별도로 구성됩니다.이 애노테이션은 WebFlux 환경 전용 보안 설정을 가능하게 해줍니다.📌 사용 예제import org.springframework.context.annotation.Bean;import org.s..
Spring과 함께 자주 사용되는 **Lombok의 @Builder**는 Builder 패턴을 적용하기 위한 애노테이션입니다. 이를 통해 객체를 생성할 때 가독성이 좋고 안정적인 방식으로 생성자 대신 값을 설정할 수 있게 해줍니다.✅ @Builder란?@Builder는 Lombok이 제공하는 애노테이션으로, 복잡한 생성자 대신 빌더 메서드를 통해 객체를 생성할 수 있게 해줍니다. 특히 필드가 많거나, 선택적으로 값을 설정해야 할 때 유용합니다.📌 사용 예제1. 기본 클래스import lombok.Builder;import lombok.ToString;@Builder@ToStringpublic class User { private String name; private String email; ..
프로젝트를 진행하며 미디어 파일을 게시판에 등록해야 상황이 발생했습니다. 기존에는 @RequestBody, @RequestParam 을 통해 간단하게 클라이언트로부터 데이터를 받아왔습니다.하지만 @RequestBody 는 데이터 형식을 JSON 형태로 전달받기 때문에 만약 파일을 Body로 받게 된다면 원하는 결과를 얻을 수 없습니다. @RequestParam 또한, 기본적으로 문자열 데이터를 처리하는데 사용되므로 미디어 파일과 같은 바이너리 데이터를 @RequestParam 을 통해 받아오는 것은 적절하지 않습니다.이를 해결하기 위해서는 @RequestPart 를 활용해 온전한 미디어 파일을 받아오도록 해야합니다.📌 @RequestPart란?@RequestPart는 HTTP request body에 ..
🚀 Spring Cloud OpenFeign과 @EnableFeignClients마이크로서비스 아키텍처에서 서비스 간의 HTTP 통신은 필수적입니다.Spring Boot에서는 여러 HTTP 클라이언트를 지원하지만, Spring Cloud OpenFeign은 가장 직관적인 선언적 방식으로 REST API 호출을 단순화합니다.이번 글에서는 @EnableFeignClients의 역할과 내부 동작 원리, Feign의 역사, application.yml 설정 방법까지심층적으로 다루며, OpenFeign을 보다 효과적으로 활용할 수 있도록 가이드하겠습니다.📜 Feign의 역사와 개요Feign은 넷플릭스(Netflix)에서 개발한 선언적 HTTP 클라이언트 라이브러리입니다.대규모 마이크로서비스 환경에서 API 호..
- Total
- Today
- Yesterday
- QueryDSL
- setter
- excel
- springboot
- Javascript
- spring
- $.extend
- DatePicker
- 여러 컬럼 update
- element위치
- 정규식
- getter
- lombok
- @ExceptionHandler
- CSS
- devtools
- object key
- border-collapse
- $.each
- PostgreSQL
- oracle
- caniuse
- Keycode
- sumifs
- draw.io
- 프로젝트명변경
- JQuery
- 전후방탐색
- ul li로 테이블
- 진열사랑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |