๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๋ ์ง์ ์ฅ๋ฒฝ์ ๋๊ณ ์ถ์ผ์ ๊ฐ์? Kevin์ ์๊ธฐ ์ฌ์ด RxJava๊ฐ ๊ทธ ๋ฒฝ์ ๋์ ์ ์๋ ํ์ ํค์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ํ์คํ ๊ธฐ๋ณธ๊ธฐ
์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ ์ดํด
RxJava๋ฅผ ์ฌ์ฉํ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ
Java ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค ํํ์
๋ง๋ธ ๋ค์ด์ด๊ทธ๋จ์ ํตํ ๋ฆฌ์กํฐ๋ธ ์ฐ์ฐ์ ์ดํดํ๊ธฐ
ํด์ฆ๋ฅผ ํตํ ๋ฆฌ์กํฐ๋ธ ์ฐ์ฐ์ ์ฌํ ํ์ต
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ, ์๊ธฐ ์ฝ๊ณ ํ์คํ๊ฒ ๋ฐฐ์๋ณด์ธ์!
[๋ง๋ธ ๋ค์ด์ด๊ทธ๋จ ๋ณด๋ ๋ฒ ๊ฐ์ ์๋ฃ ์บก์ณ]
[Publisher์ Subscriber๊ฐ์ ๋์ ํ๋ฆ ๊ฐ์ ์๋ฃ ์บก์ณ]
[๋ฐฐ์์ ๊ฐ๋ ์ ๋ํ ๊ฐ์ ์๋ฃ ์บก์ณ]
์ฌ๋ฌ๋ถ๋ค์ ์์ง์ ๋๊ธฐ๋ฅผ ์ ์๊ฒ ๋ณด์ฌ์ฃผ์ธ์. ์ฌ๋ฌ๋ถ๋ค์ด RxJava์ ์ง์ ์ฅ๋ฒฝ ์์ ์ฌ๋ผ์ค ์ ์๋๋ก ์ ๋ ์ต์ ์ ๋คํด์ ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
Q. ๋น์ ๊ณต์๋ ๋ค์ ์ ์๋์?
A. ์ ๊ณต/๋น์ ๊ณต๊ณผ๋ ๋ฌด๊ดํฉ๋๋ค. Java์ ๋ํ ๊ธฐ๋ณธ ์ง์์ด ์๋ค๋ฉด ๋๊ตฌ๋ ์๊ฐ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐธ๊ณ ๋ก ์ ๋ ์ฒ์ ์์์ ๋น์ ๊ณต์์์ต๋๋ค. ^^
Q. RxJava๋ฅผ ๋ฐฐ์ฐ๋ฉด ๋ฌด์์ด ์ข์๊ฐ์?
A. ์์ ์๊ฐ๊ธ์์๋ ๋ง์๋๋ ธ์ง๋ง RxJava๋ฅผ ๋ฐฐ์ฐ๋ฉด ๋ณต์กํ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๋จ์ํํ ์ ์์ผ๋ฉฐ, ๋ง๋ถ์ฌ์ ๋ช
๋ นํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด ์๋ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ ํตํด ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ฌ๊ณ ์ ์ ํ์ ํ ์ ์์ต๋๋ค. ๋ ๋์ ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ๋๊ฒ์ ๋ค์ด๊ฒ ์ฃ ?^^ RxJava๋ฅผ ํ์ตํ๊ณ ๋๋ฉด ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ์คํ ๋ค์ง ์ ์๊ธฐ ๋๋ฌธ์ RxJs, RxAndroid, Spring Reactor ๋ฑ์ ํ์ตํ๊ธฐ๊ฐ ํจ์ฌ ์์ํด์ง๋๋ค.
Q. ๊ฐ์๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ์งํ์ด ๋๋์?
A. ๋๋ถ๋ถ์ ์์
์ด ๊ฐ์ ์๋ฃ๋ฅผ ํตํ ๊ฐ๋
์ดํด โ ์์ ์ฝ๋๋ฅผ ํตํด ๊ฐ๋
์ ๋์ผ๋ก ์ง์ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์งํ์ด ๋๊ณ , ํด์ฆ๊ฐ ํ์ํ ์์
์๋ ์๊ฐ์๋ค์ด ์ง์ ํด์ฆ๋ฅผ ํ์ด์ ํด๋น ์์
์ ๋ด์ฉ์ ์์ ์ ๊ฒ์ผ๋ก ๋ง๋ค ์ ์๋๋ก ์์
์ด ๋๋๊ธฐ ์ ์ ํด์ฆ๋ฅผ ์ ์ํ์ต๋๋ค.
Q. ๊ฐ์์์ ์ฌ์ฉ๋ ์๋ณธ ์์ ์ฝ๋๋ ์ด๋์์ ๋ค์ด๋ก๋๋ฐ์ ์ ์๋์?
A. ์์
์์ ์ค๋ช
ํ๋ ์์ ์ฝ๋๋ ๋ชจ๋ github์ ์ฌ๋ผ๊ฐ์์ผ๋ฉฐ ์๋ ์ฃผ์์์ ๋ค์ด๋ก๋ ๋ฐ์ผ์ค ์ ์์ต๋๋ค.
โข ์์ ์๋ณธ ์์ค ์ฝ๋: https://github.com/ITVillage-Kevin/rxjava
์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ ์์ ์ฝ๋๋ฅผ ์ง์ ํ์ดํ ํด๋ณด์๋ ๋ถ๋ค์ github ์์ ์ฝ๋์์ common ํจํค์ง์ utils ํจํค์ง๋ฅผ ๊ผญ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ํ์ ํ, ์ฝ๋๋ฅผ ์์ฑ ํ์๊ธธ ๋ถํ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
Q. ๊ฐ์ ์๋ฃ๋ ์ด๋์์ ๋ค์ด๋ก๋๋ฐ์ ์ ์๋์?
A. ๊ฐ ์น์
์ ์์
๋ง๋ค ์์
์ ์ฌ์ฉํ ๊ฐ์ ์๋ฃ๋ฅผ ์ฒจ๋ถ ํ์ผ๋ก ๋ฑ๋กํด ๋์์ผ๋ ํ์ํ์ ๋ถ์ ๋ค์ด๋ก๋ ๋ฐ์์ ์ฐธ๊ณ ํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
Q. ๊ฐ์ ์๋ฃ ์ด์ธ์ ์ถ์ฒํด์ฃผ์ค ๋งํ ์ฐธ๊ณ ์๋ฃ๊ฐ ์์๊น์?
A. ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ํ์ตํ๋ ๋ฐ ์์ด ๋์์ด ๋ ๋งํ ์ฌ์ดํธ๋ ์๋์์ ํ์ธํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
โข http://reactivex.io/
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ณต์ ์ฌ์ดํธ๋ก ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค์ง๊ณ ๋ ํ์ ์ฐธ๊ณ ํ๊ธฐ ์ ๋ง ์ข์ ์ฌ์ดํธ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
โข https://github.com/reactive-streams/reactive-streams-jvm
RxJava๋ Reactive Streams๋ฅผ ๊ตฌํํ ๊ตฌํ์ฒด๋ผ๊ณ ํ ์ ์๋๋ฐ์. ์ด Reactive Streams์ ์คํ์ ์ ์ํด ๋ github ๊ณต์ ์๋ฃ์
๋๋ค.
โข https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด์ ํ๊ตญ์ด๋ก ์ ๋ฒ์ญ๋ github ์๋ฃ์ธ๋ฐ์. ํ๊ตญ์ด๋ก ๋ฒ์ญํด์ฃผ์
์ ๋๋ฌด ๊ฐ์ฌํ๋ค๋ ๋ง์ ์ ํ๊ณ ์ถ๋ค์.
โข https://rxmarbles.com/
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ์ค์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์๋ ์ฐ์ฐ์(Operator)๋ค์ ๋ง๋ธ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์ ์ ๋ฆฌํด ๋์ ์๋ฃ์
๋๋ค.
โข http://reactivex.io/RxJava/2.x/javadoc/
๋ง์ง๋ง์ผ๋ก RxJava์ ๊ณต์ javadoc ๋ฌธ์์
๋๋ค. 2020๋
ํ์ฌ RxJava 3.0์ด ๋ฆด๋ฆฌ์ฆ๋์๊ธฐ๋ ํ๋ 3.0์์๋ ์๋ก์ด ์ฐ์ฐ์ ํจ์๋ค์ด ๋ง์ด ์ถ๊ฐ๋์๋ค๊ณ ๋จ์ํ๊ฒ ์๊ฐํ์๊ณ 2.x ๋ฒ์ ์ผ๋ก ๊ฐ๋
์ ํ์คํ ์ก์ ๋ค์์ 3.0์ผ๋ก ๋์ด๊ฐ๋ ๊ฒ ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
Java์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฝ๊ฒ ๊ตฌํํ๊ณ ์ถ์ ๋ถ๋ค
์ ์ธํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ฝ๊ฒ ์ดํดํ๊ณ ์ถ์ ๋ถ๋ค
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๋ ์ง์ ์ฅ๋ฒฝ์ ๋์ด๋ณด๊ณ ์ถ์ ๋ถ๋ค
Spring Boot์์ Reactor, WebFlux๋ฅผ ๋ ์ ํ์ฉํ๊ธฐ ์ํด ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ์คํ ๋ค์ง๊ณ ์ถ์ ๋ถ๋ค
[Kevin์ ์๊ธฐ ์ฌ์ด Java ๊ฐ๋ฐ์ ๋ก๋๋งต ์ด์ผ๊ธฐ] ๊ฐ์๋ฅผ ๊ธฐ์ตํด์ฃผ์๋ ๋ถ๋ค
์ ์ ์ง์,
ํ์ํ ๊น์?
Java
๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฐจ์ด
5,968
๋ช
์๊ฐ์
212
๊ฐ
์๊ฐํ
103
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
5
๊ฐ
๊ฐ์
- ์ฃผ๋ ฅ ์ธ์ด ๋๋ ๊ธฐ์ : 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)๋ก ํธํ๊ฒ ์๊ธฐํด์ฃผ์ธ์.
์ ์ฒด
18๊ฐ โ (7์๊ฐ 30๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต: