Spring WebFlux ๊ธฐ๋ฐ์ ๋ฆฌ์กํฐ๋ธํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด `Kevin์ ์๊ธฐ ์ฌ์ด Spring Reactive WebApplications` ๊ฐ์๋ฅผ ์๊ฐํ์ธ์. ๋ฆฌ์กํฐ๋ธ ์ธ์์ผ๋ก ์ฌ๋ฌ๋ถ๋ค์ ์น์ ํ๊ฒ ์๋ดํฉ๋๋ค. ^^
๋ฆฌ์กํฐ๋ธ ์์คํ ๊ณผ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋
Blocking I/O์ Non-Blocking I/O์ ๊ฐ๋
Project Reactor
๋ง๋ธ ๋ค์ด์ด๊ทธ๋จ ๋ณด๋ ๋ฒ
Cold Sequenc์ Hot Sequence์ ๊ฐ๋
Reactor Sequence๋ฅผ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ
Reactor Sequence๋ฅผ ํ ์คํธ ํ๋ ๋ฐฉ๋ฒ
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋
๋ถํฐ ์ฑ ๊ตฌํ๊น์ง
์ด ๊ฐ์์ ํจ๊ปํ์ธ์! ๐ฑ
Spring MVC์ ๋ํ ๋์์ ๊ฐ์๋ ๊ตญ๋ด์ ๋ง๊ณ ๋ ๋ง์ต๋๋ค. ํ์ง๋ง Spring WebFlux ๊ธฐ๋ฐ์ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์์ ์์ ๊ตญ๋ด ๋์๋ ํํ์ง ์์ต๋๋ค.
๊ฐ์ฌ์ ์ ์ ์ ์ฅ์์๋ Spring WebFlux๋ผ๋ ๋์ด๋ ์๋ ๊ธฐ์ ์ ์ฝ๊ฒ ์ค๋ช ํ๋ ๊ฒ์ด ๋ น๋ก์ง ์๊ณ , Spring WebFlux๋ผ๋ ๊ธฐ์ ์ด Spring MVC๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๊ธฐ์ ์ด๋ ์ฌ์ค์ ์์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.
Kevin์ ์๊ธฐ ์ฌ์ด RxJava ๊ฐ์๋ฅผ ์คํํ๋ Kevin์ด 3๋ ๋ง์ ๋ค๊ณ ์จ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ์๋ฆฌ์ฆ๋ฅผ ์ธํ๋ฐ ๊ฐ์์ ๋์๋ก ๋ง๋๋ณด์ธ์!
๐ก ์๊ฐ ์ ์ฐธ๊ณ ์ฌํญ
Kevin์ ์๊ธฐ ์ฌ์ด Spring Reactive Web Applications๋ ์ด 3๋ถ๋ก ๊ตฌ์ฑ๋ ์์ ์ ๋๋ค.
Q. ๊ฐ์์ ๋์ด๋๋ ์ด๋ ์ ๋ ๋๋์?
Java ํ๋ก๊ทธ๋๋ฐ๊ณผ Spring MVC๋ฅผ ์ด์ฉํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ณธ ๊ฒฝํ์ด ์๋ค๋ฉด ๋ฌด๋ํ๊ฒ ์ดํดํ ์ ์๋ ์์ค์ ๋๋ค. ๋ฌผ๋ก ๊ฐ์๋ฅผ ํ๋ฒ ๋ณด๊ณ ์ดํด๋์ง ์๋ ๋ถ๋ถ์ ์๋ ๋ฒ ์ ๋ ๋ฐ๋ณตํด์ ๋ฃ๊ณ , ์ฝ๋๋ฅผ ํ์ดํํด ๋ณธ๋ค๋ฉด ์ดํดํ ์ ์๋ ์์ค์ ๊ฐ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Q. ๊ฐ์ ์งํ ๋ฐฉ์์ ์ด๋ป๊ฒ ๋๋์?
๋ชจ๋ ์์ ์ด ๊ฐ์ ์๋ฃ๋ฅผ ํตํด ํต์ฌ ๊ฐ๋ ์ ์ดํดํ ํ์ ์์ ์ฝ๋๋ก ํด๋น ๊ฐ๋ ์ ํ์คํ๊ฒ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค ์ ์๋๋ก ๊ตฌ์ฑํ์ต๋๋ค.
Q. Spring ๊ธฐ๋ฐ์ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ฉด ๋ฌด์์ด ์ข์๊ฐ์?
Spring MVC ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๋ฆฌ์กํฐ๋ธํ Non-Blocking ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋์ฑ ๊ฒฝ์๋ ฅ ์๋ ๊ฐ๋ฐ์๋ก์ ํ ๋จ๊ณ ์ฑ์ฅํ ์ ์์ต๋๋ค.
Q. `์คํ๋ง์ผ๋ก ์์ํ๋ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ` ๋์ ์์ ์๋ ๋ด์ฉ๊ณผ ๊ฐ์ ๋ด์ฉ์ด ๋์ผํ๊ฐ์?
๋์์ ๋ง์ ๋ถ๋ถ์ ๋ด์ฉ์ด ๋์ผํ์ง๋ง ์ถ๊ฐ ๋ง๊ฐ์ผ์ด ์ ํด์ ธ ์๋ ๋์์์ ํํํ์ง ๋ชปํ ๋ด์ฉ ๋ฐ ์์ ์ฝ๋๋ค์ด ์ ์ฒด์ ์ผ๋ก ์ถ๊ฐ๋์ด ์์ต๋๋ค.
Q. ๊ฐ์์์ ์ฌ์ฉ๋ ์๋ณธ ์์ ์ฝ๋๋ ์ด๋์์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋์?
์์ ์์ ์ค๋ช ํ๋ ์์ ์ฝ๋๋ ๋ชจ๋ github์ ์ฌ๋ผ๊ฐ ์์ผ๋ฉฐ ์๋ ์ฃผ์์์ ๋ค์ด๋ก๋ ๋ฐ์ผ์ค ์ ์์ต๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๊ณ ์ ํ๋ ์ฃผ๋์ด ๊ฐ๋ฐ์
Project Reactor์ ๊ธฐ๋ณธ์ ์ตํ๊ณ ์ถ์ ๊ฐ๋ฐ์
Spring ๋ฒ ์ด์ค์ ๋ฆฌ์กํฐ๋ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ์ฌ๋
Spring MVC๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํด ๋ณด๊ณ ์ถ์ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
Java
Spring MVC ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌํ ๊ฒฝํ
6,065
๋ช
์๊ฐ์
220
๊ฐ
์๊ฐํ
104
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
6
๊ฐ
๊ฐ์
- ์ฃผ๋ ฅ ์ธ์ด ๋๋ ๊ธฐ์ : Java, Spring Framework, RxJava, Reactor, Spring WebFlux
- (์ฃผ)์ฝ๋์คํ
์ด์ธ (https://www.codestates.com)์์ Senior Educational Software Engineer(Backend)๋ก ํ๋
(From 2022.03 To 2024.01.31)
- ํ๋ฆฌ๋์ ๊ฐ๋ฐ์ ๋ฐ ๊ฐ์ฌ๋ก ํ๋(From 2024.02)
- ์ ์
์๋ ํ์ธ์? Kevin์ด๋ผ๊ณ ํฉ๋๋ค. ^^
์ธํ๋ฐ์์ ์ด๋ ๊ฒ ๊ฐ์ฌ๋ก์ ์ฌ๋ฌ๋ถ๋ค์ ๋ง๋๊ฒ ๋์ด์ ๋๋ฌด ๋ฐ๊ฐ์ต๋๋ค.
์ด๋ค ๋ถ์ผ๋ ๋ง์ฐฌ๊ฐ์ง๊ฒ ์ง๋ง ํนํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ๋์์์ด ๋ณํํ๋ ํธ๋ ๋์ ๋ค์ฒ์ง์ง ์๋๋ก ํญ์ ์๊ธฐ ์์ ์ ๊ฐ๊ณ ๋ฆ๋๊ฒ์ด ๊ฐ๋ฐ์๋ก์จ ์ด์๋จ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉฐ ํญ์ ๋ฐฐ์ฐ๋ ์์ธ๋ก ์ฆ๊ฒ๊ฒ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ๊ณ ์๋ ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ ๋๋ค.
์ ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ง์๊ณผ ๊ฒฝํ์ด ๋ค๋ฅธ ๋ถ๋ค์๊ฒ ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด์ ์ธํ๋ฐ์์ ๊ฐ์ข๋ฅผ ์์ํ์์ต๋๋ค.
์์ผ๋ก ์๊ฐ์๋ถ๋ค์๊ฒ ํ์ค์ ์ผ๋ก ๋์์ด ๋๋ ๋ค์ํ ๊ฐ์ข๋ก ๊พธ์คํ ์ฐพ์๋ต๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ด๋ ์๊ฒฌ์ ์ธ์ ๋ ์ง ํ์ํ๋, ์ด๋ฉ์ผ(it.village.host@gmail.com)๋ก ํธํ๊ฒ ์๊ธฐํด์ฃผ์ธ์.
์ ์ฒด
28๊ฐ โ (5์๊ฐ 57๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต: