본문 바로가기

Reactive Programming/Reactive Programming with Spring Boot6

[WebFlux] 5. Spring Reactive Data로 Reactive Repository 구성하기 이 글에서는 reactive 데이터 저장소(MongoDB)에서 어떻게 데이터를 지속하는지, 어떻게 상호작용하는지에 대해 알아보겠습니다. 1. Getting Started. Reactive 데이터 저장소를 구성하는 데 있어 MongoDB에 대한 아래 두 가지 사항을 보고 넘어가도록 하겠습니다. (1) MongoDB Dependency MongoDB 코드를 작성하기 위해서, 우리는 1장에서 프로젝트 생성 시에 아래 dependency를 build.gradle 파일에 추가하였습니다. compile('org.springframework.boot:spring-boot-starter-data-mongodb-reactive') spring-boot-starter-data-mongodb-reactive는 문서 지향 데.. 2020. 8. 3.
[WebFlux] 4. WebFlux로 Reactive Controller Bean 작성하기 이 글에서는 이전 글에서 작성한 ImageService와 연결될 ImageController를 작성하고, 또한 웹 상에서 보일 index.html 파일을 thymeleaf를 이용하여 작성하여 보도록 하겠습니다. 우리는 리액티브 프로그래밍에 대하여 공부하고 있으므로, thymeleaf는 화면을 그리기 위한 수단일 뿐, 내용을 다루지 않고 코드만 삽입하도록 하겠습니다. 1. ImageController 생성하기 ImageController에는 다음과 같은 필드와 생성자가 필요합니다. @Controller public class ImageController { private static final String BASE_PATH = "/images"; private static final String FILEN.. 2020. 8. 3.
[WebFlux] 3. WebFlux로 Reactive Service Bean 구성하기 먼저 WebFlux에 대한 전반적인 설명과 ImageService를 구성하는 과정에 대하여 다루도록 하겠습니다. 이전 글 2장과 현재 글 3장에서는 파일 기반으로 웹서비스를 만들고, 다음 글 4장. Reactive Spring Data에서 mongoDB를 사용하는 방식으로 수정하도록 하겠습니다. 1. Reactive Spring WebFlux? 무엇이 Spring MVC와 다를까요? 여러분은 Spring MVC라는 말에 익숙하실 것입니다. Spring MVC는 자바 커뮤니티에서 제공하는 웹 프레임워크 중 가장 유명한 것 중 하나이기 때문입니다. 하지만 이 글에서 사용하게 될 WebFlux는 생소하실 수도 있습니다. Spring MVC는 Java EE의 Servlet spec에 기반하여 만들어져 있고, 이.. 2020. 8. 3.
[WebFlux] 2. Project setting (Eclipse, Gradle based) 1. Spring initializr를 이용한 프로젝트 생성 이 장에서는 spring initializr를 통해 프로젝트 zip 파일을 만들고, eclipse에서 import 하는 방식으로 프로젝트를 생성하여 보도록 하겠습니다. https://start.spring.io/ 에 접속하여 아래와 같이 dependency를 추가하여 줍니다. 이 프로젝트는 Gradle을 사용하여 Spring boot 2로 개발을 진행할 것입니다. (Spring boot 1에서는 Reactive가 지원되지 않습니다.) Project Metadata group : build.gradle 파일의 group 정보로 들어갈 내용. Java의 root package명. artifact : 프로젝트명. Dependencies Reactiv.. 2020. 8. 3.
[WebFlux] 1. Reactive Programming 개요 이 글에서는 예제를 통해서 Spring Boot에서의 Reactive Programming에 대해 알아보기 이전에, Reactive Programming에 대한 전반적인 개요를 다루도록 하겠습니다. 1. Reactive Programming? "programming with asynchronous data streams" wikipedia(https://en.wikipedia.org/wiki/Reactive_programming)에 따르면, Reactive Programming(RP)은 데이터 스트림과 변화의 전파에 대해 고려하는 선언적인 프로그래밍 패러다임이라고 나와 있습니다. 이 패러다임은 array와 같은 static 또는 event emitter와 같은 dynamic 데이터 스트림을 쉽게 표현할 .. 2020. 8. 3.
[WebFlux] 0. 이 카테고리에서는.. 이 장에서는 Spring Boot 2.0을 이용하여 Reactive Programming 예제를 작성해 보도록 하겠습니다. 이 장은 Learning Spring Boot 2.0 - Second Edition (by Greg L. Turnquist) 책을 읽고 학습한 내용을 바탕으로 예제를 만들어보는 과정에 대한 내용이며, Chapter 1. Quick Start with Java부터 Chapter 3. Reactive Data Access with Spring Boot까지의 학습내용을 다룹니다. 여기서 다룰 예제 코드는 Github(Reactive-Programming-with-Spring-Boot-Sys4u)에서 다운로드하실 수 있으며, Learning Spring Boot 2.0의 예제 코드와는 차이.. 2020. 8. 3.