ReactiveStreams(rxjava2, Reactor, MP ReactiveStreams ๋ฑ) ๋ฐ Java 9 Flow API ์ง์์ ์ถ๊ฐํ์ธ์.
JAXRS ํด๋ผ์ด์ธํธ์ .rx()
๋ฉ์๋์ฒ๋ผ ์ค๊ณํ ์ ์์ผ๋ฉฐ openRxSession(<accept a impl type>)
์ ๋ณํ์ ์ ๊ณตํฉ๋๋ค.
@hantsy ์ฐ๋ฆฌ๋ CompletionStage
์ด์ธ์ ๋ค๋ฅธ ์ต์
์ ํ์คํ ์ง์ํ๊ณ ์ถ์ง๋ง @cescoffier ๋ฐ @FroMage ๋ฐ @emmanuelbernard์ ๊ฐ์ ์ฌ๋๋ค์๊ฒ ์ฐ๋ฆฌ๊ฐ ์ง์ํ๋ ์ต์
์ ๋ํ ์ ํํ ์๊ฐ์ ์์ํ ๊ฒ์
๋๋ค.
๋ด ์ ์ผํ ์ ์์ ์๋ก ๋ค๋ฅธ ํจํค์ง์ ์ฌ๋ฌ RxSession
์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ์ ์๊ณ unwrap()
์ค ํ๋๋ฅผ ์ ํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
(๋น์ฐํ ๋ฌธ์ ๋ Vert.x๊ฐ ์ ๊ณตํ๋ ๊ฒ ์ด์ธ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ๋ ์ง์ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.)
๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํด์ผ ํ ๋ฌธ์ ์ ๋๋ค. CompletionStage ๋์ Mutiny CC @cescoffier ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Mutiny๋ ๋ค๋ฅธ ์ ํ๊ณผ ์ฐ๊ฒฐ๋๋ฉฐ ReactiveStreams์ ๊ตฌํ์ ๋๋ค(์ ์ด๋ ๊ฒ์์์ฉ).
์ด๊ฒ์ ์ด์ ์ฌ์ฉ์๊ฐ ๊ธฐ์ฌํ ์ ์๋ ๋งค์ฐ ์ฌ์ด ์ผ์ด๋ผ๋ ์ ์ ์ ์ํ์ญ์์ค.
๋๋ @emmanuelbernard ์ ๋์ํฉ๋๋ค :-)
@cescoffier ์ด๋ฏธ Mutiny ๊ธฐ๋ฐ API๋ฅผ ๊ตฌํํ์ต๋๋ค. readme์ ์์ ํ๋ก๊ทธ๋จ์ ๋ฌธ์ํ๋์ด ์์ต๋๋ค.
๋ฉ์๋! ๋ด๊ฐ ๋ด์ค๊ฒ!
Mutiny ...๋ ReactiveStreams์ ๊ตฌํ์ ๋๋ค.
์ข์, ์ฌ๊ธฐ์์ ๋ด๊ฐ ๋ณผ ์ ์๋ ๊ฒ:
https://smallrye.io/smallrye-mutiny/
Mutiny
API๋ ์ด๋ฏธ ์ฌ๋๋ค์ด ๋ค๋ฅธ ๋ฐ์ ์คํธ๋ฆผ ๊ตฌํ๊ณผ ํจ๊ป Hibernate Reactive๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
์๋ฐ 9 ํ๋ฆ API ์ง์
๋๋ ์ด๊ฒ์ ๋ํด ์ ํ ์์ง ๋ชปํ์ง๋ง ReactiveStreams๋ ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์๋ง๋ ๊ทธ๊ฒ๋ ๋ค๋ค์ ๊ฒ์ ๋๋ค. ์ด์จ๋ , ์ฐ๋ฆฌ๋ ํฉ๋นํ ์ด์ ๋ก Java 8์ ๋์์ผ๋ก ํ๊ณ ์์ผ๋ฏ๋ก ์ง๊ธ ๋น์ฅ์ ์ด API๋ก ํน์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋ง์น๊ฒ ์ต๋๋ค. ๋๋ฌด ์ด๋ฆฐ ๊ฒฐ๋ง์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค์ ๋ก ๊ตฌ์ฒด์ ์ธ ์ฌ์ฉ ์ฌ๋ก ์ค์ฌ ๊ฒฝํ์ด ์๋ ์ฌ๋์ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ด์ด ํน์ ์ API๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
์ง๊ธ ๋น์ฅ์ ์ด ๋ฌธ์ ๋ฅผ "์๋ฃ"๋ก ํ์ํ ์ ์๋ ์ด๋ค ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋์ง ์ ์ ์์ต๋๋ค. (์๋๋ฉด Mutiny
๋ฅผ ์ถ๊ฐํ์ ๋ ์ด๋ฏธ ์ฝ๋๋ฅผ ์์ฑํ์ ๊ฒ์
๋๋ค.)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํด์ผ ํ ๋ฌธ์ ์ ๋๋ค. CompletionStage ๋์ Mutiny CC @cescoffier ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Mutiny๋ ๋ค๋ฅธ ์ ํ๊ณผ ์ฐ๊ฒฐ๋๋ฉฐ ReactiveStreams์ ๊ตฌํ์ ๋๋ค(์ ์ด๋ ๊ฒ์์์ฉ).