
Kevin์ ์๊ธฐ ์ฌ์ด Java ๊ฐ๋ฐ์ ๋ก๋๋งต ์ด์ผ๊ธฐ
Kevin
Kevin์ ์๊ธฐ ์ฌ์ด Java ๊ฐ๋ฐ์(์น ๊ฐ๋ฐ์) ๋ก๋๋งต ์ด์ผ๊ธฐ
์ ๋ฌธ
Java
Spring WebFlux ๊ธฐ๋ฐ ๋ฆฌ์กํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๊ธฐ์ ์ค ํ๋์ธ Reactor, ๊ทธ ์ค์์ Reactor์ ๋ชจ๋ ๊ฒ์ด๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋๋งํผ ์ค์ํ Reactor Operator๋ฅผ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค๊ณ ์ถ๋ค๋ฉด `Kevin์ ์๊ธฐ ์ฌ์ด Spring Reactive WebApplications: Reactor 2๋ถ` ๊ฐ์๋ฅผ ์๊ฐํ์ธ์.
์๊ฐ์ 358๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ







์์นด์ธํฐ๋ท
์์ง์๋ค๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ด์!





์์นด์ธํฐ๋ท
์์ง์๋ค๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ด์!
๋จผ์ ๊ฒฝํํ ์๊ฐ์๋ค์ ํ๊ธฐ
5.0
๋ณดํค
7์ 20์ผ๋ถํฐ WebFlux 1๋ถ ๊ฐ์ ๋ฃ๊ธฐ ์์ํด์ 9์5์ผ์ 2๋ถ๊น์ง ์๊ฐํ๋ค์! ๊ฐ์ธ์ ์ผ๋ก Java๋ฟ๋ง ์๋๋ผ, Kotlin์ผ๋ก 2๋ฒ๋ก ๋ฐ๋ผ๊ฐ๊ธฐ๋ ํ๊ณ ๋ค๋ฅธ ๊ฐ์๋ค๋ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋ฃ๋๋ผ ์ค๋ ๊ฑธ๋ ธ๋ค์ใ ใ ๊ฐ์ ์ ๋ง ์ ๋ค์์ต๋๋ค! ๋ค์์ผ๋ก Spring + WebFlux๋ฅผ ํ์ฉํ 3๋ถ ๊ฐ์๋ฅผ ๊ธฐ๋ํด๋ณด๊ฒ ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค
5.0
Matthew
์ฝ๊ฒ ์ค๋ช ํด์ฃผ์ ์ ์ข์์ต๋๋ค. :)
5.0
๊น์ธ์ง
์นํ๋ญ์ค ๊ฐ์๊ฐ ๋ง์ด ์๋๋ฐ ๊ด์ฐฎ๋ค์ !
Reactor Sequence๋ฅผ ์์ฑํ๊ธฐ ์ํ Operator ํ์ฉ ๋ฐฉ๋ฒ
Reactor Sequence์์ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ธฐ ์ํ Operator์ ํ์ฉ ๋ฐฉ๋ฒ
Reactor Sequence์์ emit๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ Operator์ ํ์ฉ ๋ฐฉ๋ฒ
Reactor Sequence์ ๋ด๋ถ ๋์ ํ์ธํ๊ธฐ ์ํ Operator์ ํ์ฉ ๋ฐฉ๋ฒ
์๊ฐ๊ณผ ๊ด๋ จ๋ Operator์ ํ์ฉ ๋ฐฉ๋ฒ
Reactor Sequence์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ Operator์ ํ์ฉ ๋ฐฉ๋ฒ
Reactor Sequence์์ emit๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๊ธฐ ์ํ Operator์ ํ์ฉ ๋ฐฉ๋ฒ
Kevin์ ์๊ธฐ ์ฌ์ด RxJava ๊ฐ์๋ฅผ ์คํํ๋ Kevin์ด 3๋ ๋ง์ ๋ค๊ณ ์จ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ์๋ฆฌ์ฆ๋ฅผ ์ธํ๋ฐ ๊ฐ์์ ๋์๋ก ๋ง๋๋ณด์ธ์!

Spring WebFlux ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ๋ถ๋ค์ด ๊ฐ์ฅ ๊ฐ๊ณผํ๊ธฐ ์ฌ์ด ๊ฒ์ด ํ๋ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ฐ๋ก ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ์ค์ ํต์ฌ์ธ Operator์ ๋ํด ์ ๋๋ก ๋ ํ์ต์ ๊ฑฐ์น์ง ์๊ณ ๊ณง๋ฐ๋ก Spring WebFlux๋ฅผ ํ์ตํ๊ณ ์ถ์ดํ๋ค๋ ๊ฒ์ ๋๋ค.
Spring WebFlux ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋นจ๋ฆฌ ๊ตฌํํด ๋ณด๊ณ ์ถ์ ๋ง์์ ๋๋ฌด๋ ์ ์๊ณ ์์ต๋๋ค.
๋ง์ ๋ถ๋ค์ด Reactor์ Operator์ ๋ํ ๊ธฐ๋ณธ๊ธฐ๊ฐ ์ ๋๋ก ๊ฐ์ถ์ด์ ธ ์์ง ์์ ์ํ์์ Spring WebFlux ๋จ๊ณ๋ก ๋์ด๊ฐ์ง๋ง ๊ฒฐ๊ตญ Operator๋ผ๋ ๋ฒฝ์ ๋ถ๋ช์ณ Operator๋ฅผ ๋ค์ ํ์ตํ๊ฒ ๋๋ ์ํฉ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํฉ๋๋ค.
์ด๋ฐ ์ํ ์ฐฉ์ค๋ฅผ ๊ฑฐ์น์ง ์๊ฒ ๋ง๋ค์ด ๋๋ฆฌ๊ณ ์ถ์ด์ 2๋ถ ๊ฐ์์์๋ โญ Reactor์ ํต์ฌ ์ค์ ํต์ฌ์ธ
Operator์ ๋ํ ํ์ฉ๋ฒ์ ์ง์ค์ ์ผ๋ก ํ์ตํ ์ ์๋๋ก Operator์ ๋ํด์๋ง ๋ค๋ฃจ๊ณ ์์ต๋๋ค.
์ด ๊ฐ์๊ฐ ์ฌ๋ฌ๋ถ๋ค์ด Reactor, ๊ทธ ์ค์์ Reactor์ ๊ฝ์ด๋ผ ๋ถ๋ฆฌ์ฐ๋ Operator๋ผ๋ ๋ฌธ์ ์ด ์ ์๋ ์ด์ ๊ฐ ๋ ์ ์์๊ฑฐ๋ผ ์์ ํฉ๋๋ค.
2๋ถ ๊ฐ์๋ Reactor์ Operator์ ๋ํด์๋ง ์ง์ค์ ์ผ๋ก ํ์ตํฉ๋๋ค.
Operator์ ๋์ ๋ฐฉ์์ ์ ๋๋ก ์ดํดํ ์ ์๋๋ก Operator์ ํด๋นํ๋ ๋ง๋ธ ๋ค์ด์ด๊ทธ๋จ์ ํ์ฉํฉ๋๋ค.
ํน์ Operator์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ดํดํ๊ธฐ ์ํ ์์ ์ฝ๋๋ก Operator์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ดํดํฉ๋๋ค.
๊ธฐ๋ณธ ๊ฐ๋ ์ ์ดํดํ ํ, ํน์ Operator๋ฅผ ํ์ฉํ ์ ์๋ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์๋๋ก ํ์ฉ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํฉ๋๋ค.
์ด 60 ์ฌ ๊ฐ์ Operator์ ๋ํด 97๊ฐ์ ์์ ์ฝ๋๋ฅผ ํตํด ๊ฐ๊ฐ์ Operator๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์น์ 1์์๋ Reactor Sequence๋ฅผ ์๋ก ์์ฑํ๋ Operator์ ๋ํด์ ํ์ตํฉ๋๋ค.

justOrEmpty: justOrEmpty Operator๋ฅผ ์ฌ์ฉํ์ฌ Reactor Sequence์ ํ๋์ ๊ฐ ๋๋ ๋น์ด ์๋(Empty) Sequence๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
fromIterable: Java์ Collection์ ํฌํจ๋ ๋ฐ์ดํฐ๋ก๋ถํฐ Sequence๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
fromStream: fromStream Operator๋ฅผ ์ฌ์ฉํ์ฌ Java Stream์์ Sequence๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
range: range Operator๋ฅผ ์ด์ฉํด ์ ํด์ง ๋ฒ์ ๋ด์ ์ ์ Sequence๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
defer: defer Operator๋ฅผ ํตํด์ Subscriber๊ฐ ๊ตฌ๋
ํ๋ ์์ ๊น์ง ๋ฐ์ดํฐ emit์ ์ง์ฐ์ํค๋ ๋ฐฉ๋ฒ ์ดํดํด ๋ด
๋๋ค.
using: using Operator๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ํ๋ํ๊ณ ํด์ ํ๋ ๊ณผ์ ํฌํจํ๋ Sequence๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
generate, create: generate, create Operator๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
์น์ 2์์๋ Reactor Sequence์์ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋ Operator ๋ค์ ํ์ตํฉ๋๋ค.

filter: filter Operator๋ฅผ ์ฌ์ฉํ์ฌ Reactor Sequence์์ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
skip: skip Operator๋ฅผ ์ฌ์ฉํ์ฌ ์ํ์ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
skip ํ์ฅ Operator: skipLast, skipUntil, skipUntilOther, skipWhile์ ์ฌ์ฉํด ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
take: take Operator๋ฅผ ์ฌ์ฉํ์ฌ Sequence์์ emit๋ ๋ฐ์ดํฐ ์ค์์ ํ์ํ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
take ํ์ฅ Operator: takeLast, takeUntil, takeUntilOther, takeWhile์ ์ฌ์ฉํด ๋ค์ํ ๋ฐฉ์์ผ๋ก emit๋ ๋ฐ์ดํฐ ์ค์์ ํ์ํ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
next: emit๋ ๋ฐ์ดํฐ ์ค์์ ์ฒซ๋ฒ์งธ ๋ฐ์ดํฐ๋ง ์ป๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ดํด๋ด ๋๋ค.
์น์ 3์์๋ Reactor Sequence์์ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ Operator์ ๋ํด์ ํ์ตํฉ๋๋ค.

map: map Operator๋ฅผ ์ฌ์ฉํ์ฌ Sequence์ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ๋ฐฉ๋ฒ ํ์ตํฉ๋๋ค.
flatMap: flatMap Operator๋ฅผ ์ฌ์ฉํ์ฌ emit๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ๋ฐฉ๋ฒ๊ณผ ํํํ์ ์๋ฏธ์ ๋ํด์ ์ดํดํ๋ ์๊ฐ์ ๊ฐ์ง๋๋ค.
flatMap ํ์ฅ Operator: FlatMapIterable, FlatMapMany, FlatMapSequential์ ์ฌ์ฉํ ๋ค์ํ ๋ฐฉ์์ ํํํ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
concat: concat Operator๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ Sequence๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
merge: merge Operator๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ Sequence๋ฅผ ๋ณํฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํด ๋ด
๋๋ค.
zip: zip Operator๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ Sequence์ ์์ค ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
and, when: and, when Operator๋ฅผ ํตํด ์กฐ๊ฑด์ ๋ฐ๋ผ Reactor Sequence์ ์ข
๋ฃ๋ฅผ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
then: ์์
์ ์์ฐจ์ ์ผ๋ก ์ํํ๊ธฐ ์ํ then Operator๋ฅผ ํ์ตํฉ๋๋ค.
collectList, collectMap: emit๋๋ ๋ฐ์ดํฐ๋ฅผ List ๋๋ Map์ ๋ด์์ ํ ๋ฒ์ Downstream์ผ๋ก emitํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
์น์ 4์์๋ Reactor Sequence์ ๋ด๋ถ๋ฅผ ๋ค์ฌ๋ค ๋ณผ ์ ์๋ Operator์ ๋ํด์ ํ์ตํฉ๋๋ค.

doOnXXXX: doOnSubscribe, doOnRequest, doOnNext, doOnComplete ๋ฑ์ ์ฌ์ฉํ์ฌ Sequence์ ๋ด๋ถ๋ฅผ ๋ค์ฌ๋ค ๋ณด๋ฉด์ Sequence์ ๋ผ์ดํ ์ฌ์ดํด์ ์ดํดํด ๋ด
๋๋ค.
์น์ 5์์๋ Reactor Sequence์์ ์ ๊ณตํ๋ Operator ์ค์์ ์๊ฐ๊ณผ ๊ด๋ จ๋ Operator๋ฅผ ํ์ตํฉ๋๋ค.
delayElements: ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ emitํ๊ฒ ํด์ฃผ๋ delayElements์ ๋ํด์ ํ์ตํฉ๋๋ค.
delaySubscription vs delaySequence: delaySubscription๊ณผ delaySequence์ ๋์ ๋ฐฉ์๊ณผ ๊ฐ๊ฐ์ ์ฐจ์ด์ ์ ์ดํดํด ๋ด ๋๋ค.
timeout: ์ฃผ์ด์ง ์๊ฐ ์์ ๋ฐ์ดํฐ๊ฐ emit๋์ง ์์ผ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ timeout Operator์ ๋ํด์ ํ์ตํฉ๋๋ค.
์น์ 6์์๋ Reactor Sequence์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ํธ๋ค๋ง ํ๋๋ฐ ์ฌ์ฉ๋๋ Operator๋ฅผ ํ์ตํฉ๋๋ค.

error: error Operator๋ฅผ ์ด์ฉํด Reactor Sequence ์์์ ์๋ฌ๋ฅผ ๋ช
์์ ์ผ๋ก throwํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
onErrorReturn, onErrorResume: onErrorReturn๊ณผ onErrorResume Operator๋ฅผ ์ด์ฉํด ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋ ๋์ฒด ๊ฐ์ emit ํ๊ฑฐ๋ ๋๋ ๋์ฒด Sequence ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
onErrorContinue: onErrorContinue Operator๋ฅผ ์ฌ์ฉํด ์๋ฌ๊ฐ ๋ฐ์ํด๋ Sequence๊ฐ ๊ณ์ ๋์ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
onErrorMap: onErrorMap Operator๋ฅผ ์ด์ฉํด Sequence ์์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ์๋ก์ด ์์ธ ํ์
์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
retry: retry Operator๋ฅผ ์ฌ์ฉํด ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ Sequence๊ฐ ๋ค์ ๋์ํ๋๋ก ์ฌ์๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
์น์ 7์์๋ Reactor Sequence์์ emit๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๋ Operator ํ์ตํฉ๋๋ค.

window: window Operator๋ฅผ ์ด์ฉํด emit๋๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ ๊ฐ์์ window๋ก ๋๋์ด emitํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
buffer, bufferTimeout: buffer ๋ฐ bufferTimeout Operator๋ฅผ ์ด์ฉํด emit๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฒํผ์ ๋ด์์ emitํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
groupBy: groupBy Operator๋ฅผ ์ด์ฉํด emit ๋๋ ๋ฐ์ดํฐ๋ฅผ ํน์ ๊ธฐ์ค์ ๋ง๊ฒ ๊ทธ๋ฃนํ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
์น์ 8์์๋ ํ๋์ Flux๋ก ๋ค์์ Subscriber์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฉํฐ์บ์คํ ํ๋ Operator๋ฅผ ํ์ตํฉ๋๋ค.

publish: publish Operator๋ฅผ ์ฌ์ฉํด Sequence ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉํฐ์บ์คํ
ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
autoConnect: autoConnect Operator๋ฅผ ์ด์ฉํด ๊ตฌ๋
์ด ๋ฐ์ํ์ ๋ Upstream ์์ค์ ์๋์ผ๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
refCount: refCount Operator๋ฅผ ์ด์ฉํด ๊ตฌ๋
์ด ๋ฐ์ํ์ ๋, Upstream ์์ค์ ์๋์ผ๋ก ์ฐ๊ฒฐํ๊ณ , ๊ตฌ๋
์ด ์ทจ์ ๋์์ ๋ Upstream ์์ค์์ ์๋์ผ๋ก ์ฐ๊ฒฐ์ด ํด์ ๋๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋๋ค.
replay: replay Operator๋ฅผ ์ฌ์ฉํด ์๋ก์ด ๊ตฌ๋
์ด ๋ฐ์ํ์ ๋ Sequence ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ emitํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํฉ๋.
1๋ถ๋ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ ๊ณผ Spring Reactive Web Application์ ํต์ฌ ์ญํ ์ ํ๋ Project Reactor์ ๋ํด์ ๋ค๋ฃน๋๋ค.
2๋ถ๋ 1๋ถ์์ ๋ค๋ฃจ์ง ์์๋ Project Reactor์ Operator์ ๋ํด์๋ง ๋ค๋ฃน๋๋ค. Operator๋ Reactor์ ์ฌ๋ฌ ํํธ ์ค์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ์ญํ ์ ๋ด๋นํ๊ณ ์์ต๋๋ค. ๋ํ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ ์ ๋ ์ต์ํ ๋ถ๋ค์ด Operator ๋ถ๋ถ๋ง ๋ณ๋๋ก ํ์ตํ ์ ์๋๋ก ๋ณ๋์ ๊ฐ์๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.
3๋ถ๋ Spring WebFlux์ ๋์ ๋ฐฉ์์ ์ดํดํ ํ์ ๋ฆฌ์กํฐ๋ธํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ณด๋ ์์ ํ๋ก์ ํธ ์์ฃผ๋ก ๊ตฌ์ฑ๋ ์์ ์ ๋๋ค. (2024๋ ๋ ์ค์ ์คํ ์์ ์ ๋๋ค.)
๋งค ์์ ๋ง๋ค ๊ฐ์์์ ์ฌ์ฉ๋๋ PPT ๊ฐ์ ์๋ฃ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ ํ์ธํ ์ ์์ต๋๋ค. PPT ๊ฐ์ ์๋ฃ๋ ์์ ์ฒญ์ทจ ์ค์ ์์ ๋ณ๋ก ๋ค์ด๋ก๋ ๋ฐ์ผ์ค ์ ์์ผ๋ ์์ ๋ณ๋ก ์ชผ๊ฐ์ด์ ธ์์ด ๋ณด๊ธฐ ๋ถํธํ์ ๋ถ๋ค์ ์๋ Github Repository์์ ์น์ ๋ณ๋ก ํตํฉ๋์ด ์๋ ๊ฐ์ ์๋ฃ๋ฅผ ํ์ฉํ์๊ธธ ๋ฐ๋๋๋ค.
์์ ์์ ์ค๋ช ํ ์์ ์ฝ๋๋ ๋ชจ๋ github์ ์ฌ๋ผ๊ฐ ์์ผ๋ฉฐ ์๋ ์ฃผ์์์ ๋ค์ด๋ก๋ ๋ฐ์ผ์ค ์ ์์ต๋๋ค.
๋ชจ๋ ์์ ์ 5๋ถ ~ 20๋ถ ์ฌ์ด์ ์์์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
1๋ถ ๊ฐ์ ์ ์ ๋จ๊ณ์ ๋ ์ฝ๋ฉ ๋ ์์์ด ์ผ์ ๋ถ๋ถ ํฌํจ๋์ด ์์ด ๋ช๋ช ์์ ์์์์๋ ํจํค์ง ๊ตฌ์กฐ๊ฐ ์๋ณธ ์์ ์์ค ์ฝ๋์ ๋ค๋ฅด๊ฒ ๋ณด์ผ ์ ์์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค.
Java ์ ์ ์ง์์ ํ์์ ๋๋ค.
Reactor์ ๋ํ ํ์ต ๊ฒฝํ์ด ์์ผ์ ๋ถ๋ค์ 1๋ถ ๊ฐ์๋ฅผ ๋ฐ๋์ ์๊ฐํ ํ์๋ ์์ต๋๋ค.
Reactor์ ๋ํ ํ์ต ๊ฒฝํ์ด ์๊ฑฐ๋ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ๊ฐ๋ ์ ์ฒ์ ์ ํ์๋ ๋ถ๋ค์ 1๋ถ ๊ฐ์๋ฅผ ํ์ตํ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ ์ฝ๋๋ฅผ ๋ธ๋ก๊ทธ ๋ฑ์์ ์ฌ์ฉํ์ค ๊ฒฝ์ฐ์๋ ์ถ์ฒ๋ฅผ ๋จ๊ฒจ์ฃผ์๊ธธ ๋ถํ๋๋ฆฝ๋๋ค.
๊ฐ์์์ ์ฌ์ฉ๋ ๋ง๋ธ ๋ค์ด์ด๊ทธ๋จ ์ด๋ฏธ์ง(Reactor ๊ณต์ ์ฌ์ดํธ ์ด๋ฏธ์ง ์ ์ธ)๋ ์ ์๊ถ์ด ์์ผ๋ฏ๋ก ๋ธ๋ก๊ทธ ๋ฑ ํ ์ฌ์ดํธ์์ ์ฌ์ฉํ์ค ์ ์์ต๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๊ณ ์ ํ๋ ์ฃผ๋์ด ๊ฐ๋ฐ์
Project Reactor์ ๊ธฐ๋ณธ์ ์ตํ๊ณ ์ถ์ ๊ฐ๋ฐ์
Project Reactor์ Opertaor๋ฅผ ์ด๋ป๊ฒ ํ์ตํด์ผ ํ ์ง ๋ฐฉํฅ์ ์ก๊ธฐ ํ๋ ๋ถ
Project Reactor์ Operator ํ์ฉ์ ์ํ ์ธ์ฌ์ดํธ๋ฅผ ์ป๊ณ ์ ํ๋ ๋ถ
Spring ๋ฒ ์ด์ค์ ๋ฆฌ์กํฐ๋ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ์ฌ๋
์ ์ ์ง์,
ํ์ํ ๊น์?
Java
Project Reactor์ ๋ํ ๊ธฐ๋ณธ ์ง์
์ปค๋ฆฌ์ด์ธ์ฆ
6,870
๋ช
์๊ฐ์
309
๊ฐ
์๊ฐํ
133
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
11
๊ฐ
๊ฐ์
์ฃผ๋ ฅ ์ธ์ด ๋๋ ๊ธฐ์ : Java, Spring Framework, RxJava, Reactor, Spring WebFlux
(์ฃผ) ํํ์ํ๋ฆฌํฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ํ๋(From 2015.07 To 2022.01)
(์ฃผ)์ฝ๋์คํ
์ด์ธ (https://www.codestates.com)์์ Senior Educational Software Engineer(Backend)๋ก ํ๋
(From 2022.03 To 2024.01.31)
- ํ๋ฆฌ๋์ ๊ฐ๋ฐ์ ๋ฐ ๊ฐ์ฌ๋ก ํ๋(Since 2024.02)
- ์ ์
์๋ ํ์ธ์? Kevin์ด๋ผ๊ณ ํฉ๋๋ค. ^^
์ธํ๋ฐ์์ ์ด๋ ๊ฒ ๊ฐ์ฌ๋ก์ ์ฌ๋ฌ๋ถ๋ค์ ๋ง๋๊ฒ ๋์ด์ ๋๋ฌด ๋ฐ๊ฐ์ต๋๋ค.
์ด๋ค ๋ถ์ผ๋ ๋ง์ฐฌ๊ฐ์ง๊ฒ ์ง๋ง ํนํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ๋์์์ด ๋ณํํ๋ ํธ๋ ๋์ ๋ค์ฒ์ง์ง ์๋๋ก ํญ์ ์๊ธฐ ์์ ์ ๊ฐ๊ณ ๋ฆ๋๊ฒ์ด ๊ฐ๋ฐ์๋ก์จ ์ด์๋จ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉฐ ํญ์ ๋ฐฐ์ฐ๋ ์์ธ๋ก ์ฆ๊ฒ๊ฒ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ๊ณ ์๋ ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ ๋๋ค.
์ ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ง์๊ณผ ๊ฒฝํ์ด ๋ค๋ฅธ ๋ถ๋ค์๊ฒ ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด์ ์ธํ๋ฐ์์ ๊ฐ์ข๋ฅผ ์์ํ์์ต๋๋ค.
์์ผ๋ก ์๊ฐ์๋ถ๋ค์๊ฒ ํ์ค์ ์ผ๋ก ๋์์ด ๋๋ ๋ค์ํ ๊ฐ์ข๋ก ๊พธ์คํ ์ฐพ์๋ต๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ด๋ ์๊ฒฌ์ ์ธ์ ๋ ์ง ํ์ํ๋, ์ด๋ฉ์ผ(it.village.host@gmail.com)๋ก ํธํ๊ฒ ์๊ธฐํด์ฃผ์ธ์.
์ ์ฒด
36๊ฐ โ (6์๊ฐ 10๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต:
์ ์ฒด
13๊ฐ
4.8
13๊ฐ์ ์๊ฐํ
์๊ฐํ 1
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 60
โ
ํ๊ท ํ์ 5.0
5
7์ 20์ผ๋ถํฐ WebFlux 1๋ถ ๊ฐ์ ๋ฃ๊ธฐ ์์ํด์ 9์5์ผ์ 2๋ถ๊น์ง ์๊ฐํ๋ค์! ๊ฐ์ธ์ ์ผ๋ก Java๋ฟ๋ง ์๋๋ผ, Kotlin์ผ๋ก 2๋ฒ๋ก ๋ฐ๋ผ๊ฐ๊ธฐ๋ ํ๊ณ ๋ค๋ฅธ ๊ฐ์๋ค๋ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋ฃ๋๋ผ ์ค๋ ๊ฑธ๋ ธ๋ค์ใ ใ ๊ฐ์ ์ ๋ง ์ ๋ค์์ต๋๋ค! ๋ค์์ผ๋ก Spring + WebFlux๋ฅผ ํ์ฉํ 3๋ถ ๊ฐ์๋ฅผ ๊ธฐ๋ํด๋ณด๊ฒ ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค
์ด์ฌํ ํ์ตํ์๋๋ผ ์ ๋ง ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค. ๋ณดํค๋, ์ค๋ ฅ์ด ์ ๊ทธ๋ ์ด๋ ๋์ จ๊ธธ ๋ฐ๋์. ๊ฐ์ฌํฉ๋๋ค!
์๊ฐํ 7
โ
ํ๊ท ํ์ 4.3
์๊ฐํ 10
โ
ํ๊ท ํ์ 4.5
์๊ฐํ 3
โ
ํ๊ท ํ์ 5.0
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!