๐ WebFluxPlayGround
์ด ์ ์ฅ์๋ Reactive Programming, Reactor ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ Spring WebFlux์ ๋ํด ํ์ตํ๊ณ ์คํํ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
Spring ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ํ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋๋ฐ ํ์ํ ๊ธฐ๋ณธ ๊ฐ๋
, ๊ธฐ์ , ์์น ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํดํ๊ณ ์ต๋ํ๋ ๊ฒ์ด ๋ชฉํ์
๋๋ค.
๐ฏ Learning Goals
- Reactive Programming์ ๊ฐ๋ ๊ณผ ์์น์ ๋ํ ๊น์ ์ดํด
- Reactor ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ์ฌ Reactive ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ์์ฑ ๋ฐฉ๋ฒ ์ต๋
- Spring Boot์ WebFlux๋ฅผ ํ์ฉํ Reactive ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ ๋ฅ๋ ฅ ํฅ์
- R2DBC์ Spring Data JPA๋ฅผ ์ด์ฉํ Reactive ๋ฐ์ดํฐ ์ก์ธ์ค ํตํฉ ๋ฐฉ๋ฒ ์ตํ๊ธฐ
- ์บ์ฑ ๋ฐ ๋ฐ์ดํฐ ์ ์ฅ์ ์ํ Reactive Redis ํ์ฉ ๋ฐฉ์ ํ๊ตฌ
- Reactive ์ ํ๋ฆฌ์ผ์ด์ ์์ Spring Security๋ฅผ ์ด์ฉํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๊ตฌํ ๋ฐฉ๋ฒ ์ต๋
- Actuator๋ฅผ ํ์ฉํ์ฌ Reactive ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง ๋ฐ ๊ด๋ฆฌ ๋ฅ๋ ฅ ๊ฐ๋ฐ
๐ Features for Learning
- Reactive RESTful API: Spring WebFlux์ Reactor๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ์์ฒญ/์๋ต ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๋ RESTful API ๊ตฌ์ถ
- Reactive ๋ฐ์ดํฐ ์ก์ธ์ค: R2DBC์ Spring Data JPA๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋กํน๋์ง ์์ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฟผ๋ฆฌํ๊ณ ์กฐ์ํ๋ Reactive ๋ฐ์ดํฐ ์ก์ธ์ค ๋ฐฉ๋ฒ ์ตํ๊ธฐ
- Reactive Redis: ๋ถ์ฐ ์์คํ ์์ Reactive ํ๋ก๊ทธ๋๋ฐ ํ์ฉ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ผ๋ก Reactive Redis ํตํฉ
- Reactive Spring Security: Reactive ํจ๋ฌ๋ค์์ ์ ํฉํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๊ตฌํ์ ์ํด Spring Security ์ ์ฉ ๋ฐฉ๋ฒ ํ๊ตฌ
- Actuator: Reactive ์์คํ ์ ํน๋ณํ ์๊ตฌ์ฌํญ๊ณผ ๊ณผ์ ์ ์ด์ ์ ๋ง์ถฐ Spring Boot Actuator๋ฅผ ํ์ฉํ์ฌ Reactive ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง ๋ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ์ฐ๊ตฌ