Kevin
@kevin
Students
6,416
Reviews
246
Course Rating
4.8
- ์ฃผ๋ ฅ ์ธ์ด ๋๋ ๊ธฐ์ : 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)๋ก ํธํ๊ฒ ์๊ธฐํด์ฃผ์ธ์.
Courses
Reviews
jason
ยท
[Java Practical Project for Beginners] Object-Oriented Thinking Training - 3 Mini-Project Practices[Java Practical Project for Beginners] Object-Oriented Thinking Training - 3 Mini-Project Practices- Kevin's Easy-to-Understand Java Developer Roadmap Story
- Kevin's Easy-to-Understand Spring Reactive Web Applications: Reactor Part 1
doomco07
ยท
[Java Practical Project for Beginners] Object-Oriented Thinking Training - 3 Mini-Project Practices[Java Practical Project for Beginners] Object-Oriented Thinking Training - 3 Mini-Project Practices- Kevin's Easy RxJava Part 1
Posts
Q&A
์๋ฐ 2ํ 3ํ ์ปค๋ฆฌํ๋ผ ๋ฌธ์
์๋ ํ์ธ์? ์ถ์ ์ฐํด๋ ์ ๋ณด๋ด์ จ๋์? ๋ต๋ณ์ด ์ข ๋ฆ์ด์ ์ฃ์กํ๊ณ ์ข์ ์ง๋ฌธ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ^^์ง๋ฌธ ์ฃผ์ ๋ถ๋ถ๋ค์ ๋ํด์ ์ ์๊ฒฌ์ ์ ๊น ๋ง์ ๋๋ฆด๊ฒ์. "๊ฐ์ฌ๋์ ๊ฐ์ ์ฒ ํ๊ณผ ๊ฐ์ด ์๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ๋ค์ ๋ฐฐ์ฐ๊ณ ๋ค์ํ ์์ ๋ฅผ ๋จ๊ณ๋ณ๋ก ํ์ด๋ณด๋ฉฐ ๋น๋ก์ ์ ์ด๋ ๊ฒ ๋์๊ฐ๋์ง ๋ฉ์ปค๋์ฆ์ด ๊ถ๊ธํ ๋ ์์ ๋ฅํ ๊ฐ์๋ฅผ ์ฐพ์๋ณด๋๊ฒ ๋ซ๋ค๊ณ ์๊ฐ์ด ๋ญ๋๋ค"--> ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ฐฐ์ธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ง ๋ฐฉ์์ ํ์ต ๋ฐฉ๋ฒ์ด ์๋ค๋๊ฑด ์ ์๊ณ ๊ณ์ค๊ฑฐ์์. ํ๋๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ ๋ฐ ์ฌ์ฉ๋ฒ ์์ฃผ์ ๊ฐ์๋ ์ฑ ์ ๋ชจ๋ ์๊ฐ ๋๋ ์๋ ํ๊ณ ๋ ํ์ ๋ค์ ์คํ ์ ๋ฐ๋๊ฒ. ๋ ํ๋๋ ์ผ๋จ ์์ฃผ ์ต์ํ์ ์ฌ์ฉ๋ฒ๋ง ์ตํ ๋ค ๊ฐ๋จํ๊ฑฐ๋ผ๋ ๋ง๋ค์ด ๋ณด๋ฉด์ ๋งํ๋ ๋ถ๋ถ์ด ์์ผ๋ฉด ๋ค์ ์ฑ ์ ์ฐพ์๋ณด๋ฉด์ ๋งํ๋ ๋ถ๋ถ์ ํด๊ฒฐํ๋ฉด์ ์์ผ๋ก ๋์ ๊ฐ๋ ๊ฒ.๋ ์ค์ ์ด๋ค๊ฒ ๋ ๋ซ๋ค ๊ทธ๋ ์ง ์๋ค๋ผ๊ณ ๋ง์ ๋๋ฆฌ๊ธด ์ด๋ ต๊ฒ ์ง๋ง(์ฌ๋๋ง๋ค ์์ ์๊ฒ ๋ง๋ ํ์ต ๋ฐฉ๋ฒ์ด ๋ค๋ฅผํ ๋๊น์) ์ ๊ฒฝํ์ ํ์ ์ชฝ์ด ํฅ๋ฏธ๋ฅผ ์์ง ์๊ณ ์ฑ์ฅํ๊ธฐ๊ฐ ๋ ์ฌ์ด ๊ฒ ๊ฐ์์ต๋๋ค.๊ทธ๋์ Java ๊ด๋ จ ๋ฏธ๋ ํ๋ก์ ํธ ๊ฐ์๋ฅผ ๋ง๋ค๊ณ ์๋ ์ค์ด๊ตฌ์. ์์ฆ์ ํ๊ตญ์ธ๋ค๋ ์์ด๋ก ์ ๋งํ๋ ๋ถ๋ค์ด ๋ง์ง๋ง ์ ๊ฐ ์์ด๋ฅผ ๋ฐฐ์ธ๋๋ง ํด๋ ๋ฌธ๋ฒ ์์ฃผ๋ก ์์ด๋ฅผ ๋ฐฐ์ ๋๋ฐ ๊ฒฐ๊ตญ ์ธ๊ตญ์ธ๋ค ๋ง๋์ ๋ง ํ๋ง๋ ๋ชปํ๊ณ , ์ธ๊ตญ์ธ์ด ๋งํ๋ ๋ด์ฉ์ ์์ ๋ฃ์ง๋ ๋ชปํ๋ ๊ทธ๋ฐ ์ํ๊ฐ ๋์ด๋ฒ๋ ธ๋๋ฐ์. ^^;ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ฐ๋ ์์ด๋ผ๋ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋๊ฒ๊ณผ ๊ฝค๋ ๋น์ทํ ๊ฒ ๊ฐ๋๋ผ๊ตฌ์.๊ธฐ๋ณธ ๋ฌธ๋ฒ์ด๋ ๊ณ ๊ธ ๊ธฐ๋ฒ์ ๋ฐฐ์๋ ์ด๊ฑธ ์ด์ฉํด์ ์์ฃผ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ ๋ง๋ค์ด๋ณด์ง ์์ผ๋ฉด ์ด๊ฑธ ์ ๋ฐฐ์ฐ๊ณ ์ด๋์ ์จ๋จน์ ์ ์๋์ง ๊นจ๋ซ๊ธฐ ์ด๋ ต๋ค๋ ์ฌ์ค์ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ ๋ง์ ๋ถ๋ค์ด ๋๋ผ๋ ๊ณ ๋ฏผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.์์ด๋ก ์์ ์๊ฒ ๋งํ ์ ์๋ค๋๊ฑด Java๋ก ๋ด๊ฐ ์๊ฐํ๋๋๋ก ๊ตฌํ์ ํ ์ ์๋ค๋ ๋ง๊ณผ ๊ฐ์ ๊ฒ ๊ฐ๊ณ , ์์ด๋ฅผ ์ ์์ ๋ฃ๋๋ค๋ ๊ฑด ๋ค๋ฅธ ์ฌ๋์ด ์ง ์ฝ๋(Chat GPT ๊ฐ์ AI ํฌํจ)๋ฅผ ์ ์ดํดํ ์ ์๋ค๋ ๋ง๊ณผ ๋น์ทํ๊ฒ ๊ฐ์์.์ด๋ฐ ์ด์ ๋๋ฌธ์ ์ ๊ฐ์ ์๊ฐ์ ์ธ์์ด ์ ๊ธดํ์ง๋ง ๋๋ฆ ํ์ค์ ์ผ๋ก ๋์์ด ๋ ๋งํ ๊ด์ฐฎ์ ๊ฐ์๋ผ๊ณ ์๊ฐํ๊ณ ์์ต๋๋ค. ^^; "ํน์๋ ์ด ์์ธ์ ์๊ฒฌ์ ๊ธ์ ์ ์ผ๋ก ๋ณด์๊ณ ๊ด๋ จ๋ ๋ด์ฉ์ด ๋ฐ์ ๋๋ค๋ฉด ์ ๋ฐ ์ฃผ๋์ด ์ ์ฅ์์ ์์ธํ ์ค๋ช ๊ณผ ์ฌ์ด๊ฑฐ ๋ถํฐ ๋จ๊ณ๋ณ๋ก ๋ค์ํ ๋ฌธ์ ๋ก ๋ถํ ๋๋ฆฝ๋๋ค"--> 1๋ถ ๊ฐ์์ ์ธ ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค ๋ง๋ค์ด๋ณด์ จ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง 1๋ถ ๊ฐ์์ ๋์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ง ๋ง๋ค์ด ๋ณด์ ๋ ๋์ค์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ Java์ ์ ๋งํ ๋ฌธ๋ฒ๋ค์ ์ ์ฌ์ฉ์ ํ์ค๊ฑฐ๋ผ๊ณ ์๊ฐํด์. ๊ฒฐ๋ก ์ 1๋ถ ๊ฐ์๊ฐ ์ ์ผ ์ฌ์ด ๋จ๊ณ์ ๋๋ค. ^^; ๊ทธ๊ฒ๋ณด๋ค ๋ ์ฌ์ด๊ฑด ์ค๋ฌด์ ์ผ๋ก๋ ๋์์ด ์๋ ๊ฑฐ ๊ฐ์์ ์ ์ธํ ๋ถ๋ถ๋ ์์ต๋๋ค. ^^; 2๋ถ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ด๋ฒ๋ฌ์ ์คํ ์์ ์ธ๋ฐ ๊ต์ฅํ ์ค์ํ ์ฃผ์ ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ ์์ ์ด์์. ํ๊ฒฝ๋ ์ฃผ๋ณ์ ๋์๋ณด๋ฉด '์ฃผ๋ฌธ'๊ณผ ๊ด๋ จ๋ ์๋น์ค๊ฐ ๊ต์ฅํ ๋ง๋ค๋๊ฑธ ์์ค ์ ์์ํ ๋ฐ์. ์๋ฅผ ๋ค๋ฉด ๋ฐฐ๋ฌ ์ฑ, ์ผํ๋ชฐ, ์คํ ๋ง์ผ, ํฐ์ผ ์๋งค ๋ฑ๋ฑ ๋ฌด์ํ ๋ง์ ์๋น์ค๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ฃผ๋ฌธํ๋ ์์คํ ์ด์ฃ . ๊ทธ๋์ ์ฃผ๋ฌธ์ด๋ผ๋ ๋๋ฉ์ธ์ ํ์ฉํด์ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ๋ง๋ค์ด๋ณด๋๊ฑด ๊ต์ฅํ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.์ฐธ๊ณ ๋ก 2๋ถ ๊ฐ์๋ 1๋ถ ๊ฐ์๋ณด๋ค๋ ์กฐ๊ธ ๋ ๋์ด๋๊ฐ ์๊ธฐ๋๋ฌธ์ 1๋ถ์์ ๊ตฌํ์ ๋ํ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ์์ผ์ ๋ค์์ ์๊ฐํ์๋๊ฒ ๋จธ๋ฆฌ๊ฐ ๋ ์ํ์ง ์์๊น ํ๋ ์๊ฒฌ๋๋ฆฝ๋๋ค. ^^; 3๋ถ๋ ์์์ ํ๊ฒฝ๋๊ป์ ์ ๊น ์ธ๊ธํ์ จ๋ Thread๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ์ ์ฌ์ฉํ๋์ง์ ๋ํ ๋ถ๋ถ์ด ํฌํจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๊ฐ์๋ฅผ 2๋ถ ๊ฐ์ ์คํ ํ์ ์์ฐจ์ ์ผ๋ก ์คํํ ์์ ์ด์์.JavaFX๋ฅผ ์ด์ฉํด์ UI๊ฐ ์๋ ๊ต์ฅํ ์ฌ๋ฏธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ณผ ์์ ์ ๋๋ค. "๋ง์ง๋ง์ผ๋ก ใ ..์ด๋ฌ๋ฉด ์๋์ง๋ง.. ใ ..ํน์ 2, 3ํ ใน..๋ก ์นญ ํ ์ธ ํ ์ธ ์ฟ ํฐ์ ์ ๊ณตํด์ฃผ์ค ์์ ์ด ์์ผ์ ๊ฐ์ฅ..?"--> ์ฟ ํฐ ์ ๊ณตํ๋๊ฒ ๊ทธ๋ฆฌ ์ด๋ ค์ด ์ผ์ด ์๋๋ผ์ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ใ ใ ์ฐธ๊ณ ๋ก ์คํ๋๋ ํ ์ธ๋ ๊ฐ๊ฒฉ์ผ๋ก ์คํ์ ํ ์์ ์ด๋ ๊ฐ๊ฒฉ์ ๋ํ ๋ถ๋ด์ ํฌ์ง ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋ค์.ใ ๊ทธ๋ฆฌ๊ณ 1๋ถ ๊ฐ์๋ณด๋ค 2๋ถ ๊ฐ์๋ ์คํ๋ ค ์กฐ๊ธ ๋ ๋ฎ๊ฒ ์ฑ ์ ํ ์์ ์ด์์. ๊ฐ์ ํ๋ฆฌํฐ๊ฐ ๋ฎ์์๊ฐ ์๋๋ผ Java ์ ๋ฌธํ์๋ ๋ถ๋ค ์ ์ฅ์์ 1๋ถ๋ ์ค์ํ์ง๋ง 2๋ถ๊ฐ ๋ ์ค์ํ๋ค๊ณ ํ๋จ๋์ด์ ํน์ฌ๋ ๋ถ๋ด๋๋ ๊ฐ๊ฒฉ๋๋ฌธ์ ์ ๊ฐ์๋ฅผ ์๋ฃ๋ ์ผ์ด์ค๋ฅผ ์ค์ด๊ณ ์ถ์ ๋ฐ๋จ์ด ์์ด์ ๊ทธ๋ ์ต๋๋ค.์ ๊ฐ ์ ๋ช ํ ๊ฐ์ฌ๊ฐ ์๋๋ค๋ณด๋ ๊ฐ๊ฒฉ์ด ๋๋ฌด ๋ฎ์ผ๋ฉด ์คํ๋ ค ๊ฐ์ ํ๋ฆฌํฐ ์์ฌ์ด ๋ฐ๋ฅผ์๋ ์๊ฒ ์ง๋ง ๊ทธ๊ฑด ์ด์ฉ ์ ์์ฃ . ์ ๊ฐ์ ๋ค์ผ์ ๋ถ๋ค์ด ์ ํ๋จํด ์ฃผ์ ์ ์ข์ ๊ฐ์๋ผ๊ณ ๋ง์ํด ์ฃผ์๊ธธ ๋ฐ๋ ๋ฟ์ ๋๋ค. ใ ใ ์ง๋ฌธํด ์ฃผ์ ๋ถ๋ถ์ ๋ํ ๋ต๋ณ์ด ์ ๋์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค์.๋ ๊ถ๊ธํ๊ฒ ์์ผ์๋ฉด ์ธ์ ๋ ์ง ํธํ๊ฒ ๋ง์ํด ์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค~
- 0
- 1
- 29
Q&A
๊นํ๋ธ ์ฃผ์ ์ค๋ฅ
์๋ ํ์ธ์? ๋ถํธ์ ๋๋ ค์ ์ฃ์กํฉ๋๋ค.'๊ฐ์ ์๊ฐ > ํ์ต ์๋ฃ' ์น์ ์ ์ด 4๊ฐ์ Github ๋งํฌ๊ฐ ์๊ณ , ํ์ธํด๋ณด๋ ๋ชจ๋ Public Repository๋ก ์ ์ฐ๊ฒฐ์ด ๋๋๋ฐ ํน์ ์ด๋ค ๊ฒฝ๋ก๋ก ์ ์ํด๋ณด๋ ์ ์์ด ์๋์๋์ง ์ฌ์ญค๋ด๋ ๋ ๊น์?
- 0
- 3
- 40
Q&A
window ์์ 1๋ฒ request(n) * maxSize ๋ถ๋ถ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์? ์ ๊ฐ ํด์ธ์ ์์ด์ ๋ต๋ณ์ด ์กฐ๊ธ ๋ฆ์ด์ง ์ ์ํด ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ง๊ธ์ฏค ์ฃผ๋ฌด์๊ณ ๊ณ์ค๊ฒ ๊ฐ์๋ฐ ์ฌ๊ธด ์์นจ์ด๋ผ์ ์์นจ ๋จน๊ณ ๋ฐ๋ก ๋ต๋ณ์ฐ๊ณ ์์ต๋๋ค. ^^; ๊ถ๊ธํด ํ์๋ ๋ด์ฉ์ด ์๋ง๋ window()๋ผ๋ operator๋ฅผ ์ด๋ค ์ํฉ์์ ์ ์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋์ง ๋ผ๊ณ ์๊ฐ๋์ด์ ์ด ๋ถ๋ถ์ ๋ง์๋๋ฆด๊ฒ์. ๊ณต์ ๋ฌธ์์์๋ ์ค๋ช ์ด ๋์ด ์์ง๋ง window() operator๋ upstream์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ ๊ฐ์๋งํผ ํฌํจํ flux window๋ก ์ชผ๊ฐ์ด์ downstream์์ ์ฒ๋ฆฌํ๋๋ก ํ๋ค ๋ผ๊ณ ๋์์์ต๋๋ค.flux window๋ผ๋๊ฑด ๋ง ๊ทธ๋๋ก window๋ผ๋ ๋จ์๋ก ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์๋๋ฐ ์ด ๋ฐ์ดํฐ๋ค์ ๊ฐ๊ฐ์ flux๋ฅผ ์ด์ฉํด์ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค๋ผ๋๊ฑด๋ฐ์(๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ ์๋ ์๊ณ , List๋ก ๋ณํํด์ ํ๊บผ๋ฒ์ ์ฒ๋ฆฌํ ์๋ ์์ํ ๊ตฌ์).๋ค๋ง, buffer(maxSize) ๊ฐ์ ๊ฒฝ์ฐ์๋ maxSize๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ชผ๊ฐ์ ๋ฒํผ์ ๋ด์ง๋ง Downstream์ผ๋ก ๋ด๋ ค์ค๋ flux๊ฐ ์๋ List ํํ๋ก ๋ด๋ ค์ค๋๋ค.flux๋ก ๋ด๋ ค์ฃผ๋๋ List๋ก ๋ด๋ ค์ฃผ๋๋๋ ํ์ฐํ ์ฐจ์ด์ ์ด ์์ต๋๋ค.flux๋ฅผ ์ ๋ฌ๋ฐ์ผ๋ฉด flux์์ emit๋๋ ๊ฐ๋ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ค๋ฅธ Operator ๋ค์ ์ด์ฉํด์ ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ ์์๊ณ , ๋น๋๊ธฐ์ ์ธ ์ฒ๋ฆฌ๋ ์์ฝ๊ฒ ํ ์ ์๊ธฐ ๋๋ฌธ์ buffer ๋ณด๋ค ์กฐ๊ธ ๋ ์ํฉ์ ๋ง๋ ์ ์ฐํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค๋ผ๊ณ ์๊ฐํฉ๋๋ค. buffer()๋ ์ชผ๊ฐ์ด์ List์ ๋ด๊ธด ๋ฐ์ดํฐ๋ค์ ํ ๋ฒ์ ๋ชจ์์ ์ผ๊ด ์ฒ๋ฆฌํ๋๋ฐ ์ค์ ์ ๋ operator์ด๊ธฐ ๋๋ฌธ์ window() operator๋ณด๋ค๋ ์ข ๋ ์ฒ๋ฆฌ๊ฐ ์ฌํํ ํ ๊ตฌ์. ๋ฌผ๋ก buffer๊ฐ ์๋๋ผ window operator๋ฅผ ์ด์ฉํด์ buffer์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ์ผ๊ด ์ฒ๋ฆฌํ ์๋ ์์ํ ๋ฐ ์ด ๊ฒฝ์ฐ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ ์ธก๋ฉด์์ ๋ ๋์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋ง๋๋ก buffer๋ ์ชผ๊ฐ์ด์ง ๋ฐ์ดํฐ์ ๋ํ ๋จ์ ์ผ๊ด ์ฒ๋ฆฌ, window๋ ๋จ์ ์ผ๊ด ์ฒ๋ฆฌ ์ด์์ ์์ ๋ค(๋น๋๊ธฐ ์ฒ๋ฆฌ, ๋ฐ์ดํฐ์ ๋ณต์กํ ๊ฐ๊ณต์ฒ๋ฆฌ, ์ง์ฐ ์ฒ๋ฆฌ ๋ฑ)์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค. ์ด๋ ๊ฒ ์๊ฐํ์๋ฉด ๋ ๊ฒ ๊ฐ์์. ๋ต๋ณ์ด ๋์ ๋์ จ์ผ๋ฉด ์ข๊ฒ ๋ค์.๊ฐ์ฌํฉ๋๋ค! ์ข์ ๊ฟ ๊พธ์ธ์~
- 0
- 2
- 35
Q&A
subscription signal ์ upstream ์ผ๋ก ์ด๋ํ๋ ์์
์๋ ํ์ธ์. ์ข์ ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.์๋ ๋งํฌ๋ฅผ ๋ณด์๋ฉด Reactor์์ signal์ด ์ด๋ค ํ๋ฆ์ผ๋ก ๋ฐ์ํ๋์ง ์ ๋ฆฌ๊ฐ ์ ๋์ด ์๋๋ฐ, ํ๋ฒ ์ฝ์ด๋ณด์๋ฉด ๋์์ด ๋์ค ๊ฒ ๊ฐ์์.https://itvillage.tistory.com/entry/Reactor-Sequence%EC%97%90%EC%84%9C-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-signal%EC%9D%98-%EC%A0%84%ED%8C%8C-%ED%9D%90%EB%A6%84์ผ๋จ ํต์ฌ๋ง ๊ฐ๋ตํ๊ฒ ๋ง์๋๋ฆฌ๋ฉด, Reactor์ Operator๋ ๊ธฐ๋ณธ์ ์ผ๋ก์ผ๋ก Operator ํ๋๋ฅผ Operator ์ฒด์ธ์ ์ฐ๊ฒฐํ ๋ ๋ง๋ค ๋ด๋ถ์ ์ผ๋ก subscribe()๊ฐ ํ๋ฒ์ฉ ๋ฐ์๋๋ฉด์ Upstream ์ชฝ์ผ๋ก subscription์ด ์ ํ๋๋ ์์ผ๋ก ์ ํ๊ฐ ๋๋๋ฉด ๋ฐ์ดํฐ๊ฐ Downstream ์ชฝ์ผ๋ก emit ๋๋ ํํ๋ก ๋์์ ํ๋๋ฐ์.์ด ํ๋ฆ์ ๋ง์ถฐ์ Context์ ๋์๋ ๋ฐ์ ๋ง์ถ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐ์ ํฉ๋๋ค.๊ทธ๋ฐ๋ฐ ์ด๋ค Operator ๋ค(ํนํ Thread ๊ด๋ จ๋)์ ๋ด๋ถ ๋์์ด ๊ฝค ๋ณต์กํด์ ์ ์๋๋ก ์๋ค ๊ฐ๋คํ๋ ํ๋ฆ๋ ๋ณด์ ๋๋ค.์๋ฌดํผ ๋งํฌ์ ์ ํ ๋ด์ฉ๋ค ์ฒ์ฒํ ์ฝ์ด๋ณด์๋ฉด ๋์๋์ค ๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค~
- 0
- 2
- 60
Q&A
Webflux์ Non-Blocking ํน์ฑ์ ๋ํด ๋ฌธ์ ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์. Non-Blocking์ ๊ดํด์ ์ง๋ฌธ์ ์ฃผ์ จ๋๋ฐ์.WebFlux์์ Non-Blocking์ด๋ผ๋ ๊ฐ๋ ์,Java์์ ์ฐ๋ ๋๋ฅผ ์ถ๊ฐ๋ก ํ ๋นํด์ ๋์์ฑ์ ํํ๋ก ์ฌ๋ฌ ์์ฒญ์ ๋ฒ๊ฐ์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ๋ผ๊ธฐ๋ณด๋ค๋,์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ฐ๋ ๋(์ด๋ฒคํธ ๋ฃจํ)๊ฐ ํน์ ์์ ์ ๋ฌถ์ด์ง ์๊ณ ์์ ๋กญ๊ฒ ์์ง์ผ ์ ์๋ ์ํ, ์ฆ Blocking ๋์ง ์์ ์ํ๋ฅผ ๋งํฉ๋๋ค.์ฆ, Reactor ์ฒด์ธ์์ ๋ณ๋์ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ์ง ์์๋, Reactor-Netty ์๋ฒ๋ ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํ๋ฆ์ด Blocking๋์ง ์์ผ๋ฉด ํ๋์ ์ด๋ฒคํธ ๋ฃจํ ใ ๋ ๋๋ก๋ ์ฌ๋ฌ ์์ฒญ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ๋ง์ฝ ์ด๋ค ์์ฒญ์ด ์์ฐจ์ ์ผ๋ก๋ง ์ฒ๋ฆฌ๋๊ณ , ๋ค๋ฅธ ์์ฒญ์ด ๊ธฐ๋ค๋ฆฌ๋ ํ์์ด ๋ฐ์ํ๋ค๋ฉด,๊ทธ๊ฑด ๋ณดํต ์์ฒญ ์ฒ๋ฆฌ ๋ก์ง์์ Blocking ์ฐ์ฐ์ด ์๊ฑฐ๋, CPU ์ฐ์ฐ์ด ์ค๋ ๊ฑธ๋ ค์์ด๋ฒคํธ ๋ฃจํ๊ฐ ๋ค์ ์์ฒญ์ผ๋ก ๋์ด๊ฐ์ง ๋ชปํ๊ณ ์ฐ๋ ๋๊ฐ ์ ์ ๋ ์ํ์ผ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.์ฆ, WebFlux์ Non-Blocking์ ์ฐ๋ ๋๊ฐ ์์ ๋์ค Blocking ๋์ง ์๊ฒ ๋ง๋๋ ์ฒ๋ฆฌ ๋ฐฉ์์์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.์์ง 3๋ถ๋ฅผ ์ ์ํ์ง ์์ ์ํ์ฌ์ Spring MVC์ Spring WebFlux๋ฅผ ๋น๊ตํ๋ ์ํ ํ ์คํธ์์๋ ํด๋ผ์ด์ธํธ์์ ๋จ์ for๋ฌธ์ ์ด์ฉํด์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋๋ฐ์.๋ง์ฝ์ ์ค๋ฌด์ ์ผ๋ก ์ฐ๋ ๋๊ฐ Blocking ๋์ง ์๋๋ค ๋ผ๋ ์ฌ์ค์ ํ์ธํ๋ ค๋ฉด ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๊ฐ ๋์ ๋ค๋ฐ์ ์ผ๋ก ์์ฒญ์ ๋ณด๋ด๋ ์ํฉ์ ๋ง๋ค์ด์ผ ํ๊ณ , ์๋ฒ์ธก WebFlux ์ ํ๋ฆฌ์ผ์ด์ ์์๋ DB ๋ฑ์ I/O๊น์ง Fully Non-Blockingํ๊ฒ ์ฒ๋ฆฌํ๋ ์ํฉ์ ๋ง๋ค์ด์ ํ ์คํธ ํด์ผํ๋๋ฐ, ๋ง์ํ์ ์ฝ๋๋ฅผ ์ง๊ธ ๋ค ๋ง๋ค๊ธฐ์๋ ์ฌ์ค์ ๋ฌด๋ฆฌ๊ฐ ์์ด์ 3๋ถ ๊ฐ์ ๋ ๋ง์๋๋ ค์ผ ํ ๊ฒ ๊ฐ์์.์ด์ ์ํด ๋ถํ๋๋ฆฌ๊ณ , Non-Blocking์ ์๋ฏธ๋ ์ฐ๋ ๋๊ฐ Blocking ๋์ง ์๊ฒ ํ๋๊ฒ์ด์ง ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๋ฉํฐ ์ฐ๋ ๋ ์์ ์ฒ๋ฆฌ ๋ฐฉ์์ฒ๋ผ ๋์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๊ฒ์ ์๋๋ผ๋ ์ฌ์ค์ ๊ผญ ๊ธฐ์ต์ ํด์ฃผ์๋ฉด ๊ฐ์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- 1
- 3
- 160
Q&A
Downstream Mono, Flux๊ฐ subscriber์ธ๊ฐ์?
์๋ ํ์ธ์? Downstream Flux, Mono์ ๋ํด์ ์ง๋ฌธ์ ์ฃผ์ จ๋๋ฐ์.์๋ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์๋ก ๋ค๋ฉด(Mono๋ ๊ฐ์ ์๋ฆฌ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.)Flux .just(1, 2, 4) .filter(num -> num % 2 == 0) .subscribe(result -> System.out.println(result));just()๋ ์ผ๋ฐ์ ์ผ๋ก ์ต์ด๋ก ๋ฐ์ดํฐ๋ฅผ emitํ๊ธฐ ๋๋ฌธ์ ์์ฐ์, Publisher, ๋ฐํ์๋ก ์ดํดํ๋ฉด ๋ฉ๋๋ค.๊ทธ๋ฐ๋ฐ filter() ์ ์ฅ์์๋ just()๊ฐ Upstream Flux๊ฐ ๋๊ณ , ๋ฐ๋๋ก just() ์ ์ฅ์์๋ filter()๊ฐ Downstream Flux๊ฐ ๋ฉ๋๋ค.์ด๋ ๊ฒ ๋ถ๋ฅด๋ ์ด์ ๋ just()์ filter() ๊ฐ์ Operator๋ค์ด ๋ฆฌํดํ๋ ๋ฆฌํด ํ์ ์ด Mono ๋๋ Flux์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.์ฆ, filter() ์ ์ฅ์์๋ ์์ชฝ์ ์๋ just()๊ฐ ๋ฆฌํดํ๋ Flux๋ฅผ ์ด์ฉํด์ ๋ค์ ํ๋ฆ์ ์ด์ด๊ฐ๊ธฐ ๋๋ฌธ์ just()๊ฐ Upstream Flux๊ฐ ๋๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ Subscriber๋ ๋ด๋ถ์ ์ผ๋ก ์ข ๋ณต์กํ ๊ณผ์ ์ ๊ฑฐ์น๋๋ฐ ๋ค ์ดํดํ์ค ํ์๋ ์๊ณ , ์ผ๋ฐ์ ์ผ๋ก .subscribe(...) ์ฌ๊ธฐ์์ ... ์ ํด๋น๋๋ ๋๋ค ํํ์์ด Subscriber๋ผ๊ณ ์ดํดํ์ ๋ ๋ฌด๋ฐฉํ ๊ฒ ๊ฐ์ต๋๋ค. ํน์ ์ ์ค๋ช ์ด ์ข ์ด๋ ค์ฐ์๋ค๋ฉด just()์ filter() ๊ฐ์ Operator ๋ด๋ถ๋ก ๋ค์ด๊ฐ์ ์ ๋ฆฌํด ํ์ ์ ์ง์ ๋์ผ๋ก ํ์ธํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ๊ฐ์ฌํฉ๋๋ค!
- 0
- 1
- 121
Q&A
onErrorResume์ ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ๊ฒฝ์ฐ ์์ธ ๋ฐ์ ์, ์ํ์ค๋ ์ข ๋ฃ๋๋์?
์๋ ํ์ธ์. ์ฃผ๋ง์ด๋ผ์ ๋ต๋ณ์ด ์ข ๋ฆ์๋ค์.onErrorResume ๊ฐ์ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ์ํ Operator๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก Sequence ๋ด์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด Subscriber์๊ฒ onError Signal ํํ๋ก ์๋ฌ ์ ๋ณด๊ฐ Exception ํํ๋ก ์ ๋ฌ๋ฉ๋๋ค. ๋ค๋ง, onErrorResume์ ์ฌ์ฉํ์ง๋ ์์ง๋ง ํน์ ์ํฉ์์ onErrorContinue Operator๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ retry Operator๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฌ ๋ฐ์ ์์ ์ Sequence๊ฐ ์ฆ์ ์ค๋จ๋์ง ์์ ์๋ ์์ต๋๋ค.๋ฐฉ๊ธ ๋ง์ ๋๋ฆฐ ๋ด์ฉ์ error handling ์น์ ์ ์๋ ์์์ผ๋ก ํ์ธํ์ค ์ ์์ต๋๋ค. AI ์ธํด์ด ๋ต๋ณ ๋จ๊ฒจ๋์๋ฏ์ด doOnError ๊ฐ์ Operator๋ฅผ ์ด์ฉํ๋ฉด ์๋ฌ๋ฅผ ์ง์ ์ ์ผ๋ก ํธ๋ค๋งํ๋๊ฑด ์๋์ง๋ง ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋, ๋ก๊ทธ๋ฅผ ๋จ๊ธด๋ค๋ ์ง ํ๋ ํ์ ์์ ์ ํตํด ์๋ฌ๋ฅผ ๊ฐ์ ์ ์ผ๋ก ์๋ ค์ ์ถํ์ ๋๋ฒ๊น ์ ํ ์ ์์ต๋๋ค. ๋๋ฒ๊น ๊ด๋ จํด์๋ 1๋ถ ์์์ ํ์ธํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 176
Q&A
source.next์ source.emit์ ์ฐจ์ด์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์? ์ด์ ์ผ์ฐ ์ ์ด ๋๋ ๋ฐ๋์ ๋ต๋ณ์ด ์ข ๋ฆ์ด์ก๋ค์. ์ํด ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค. ^^; ์ฐ์ ์๋ ์์ ๋ฅผ ์คํ์์ผ ๋ณด์๋ฉด next() ํธ์ถ ํ์ onComplete signal์ด ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ Sequence๊ฐ ์ข ๋ฃ ๋์ง ์๊ณ ๋ฌดํ ๋๊ธฐ ์ํ๊ฐ ๋๋๊ฑธ ํ์ธํ์ค ์๊ฐ ์๋๋ฐ์. TestPublisher source = TestPublisher.create(); StepVerifier .create(source.flux()) .expectSubscription() .then(() -> source.next(2, 4, 6, 8, 10)) .expectNext(2, 4, 6, 8, 10) .expectComplete() .verify(); ๋ง์ํ์ จ๋๋๋ก TestPublisherTestExample01์์ expectComplete()์ด ํต๊ณผํ๋ ์ด์ ๋ zipWith()๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด zipWith()์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ Flux์์ ๋ฐ์ดํฐ emit์ด ๋๋๋ฉด onComplete signal์ด ๋ฐ์ํ๋๋ฐ zipWith()์ ๊ฒฝ์ฐ ๋ ์ค ํ๋์ Sequenc๊ฐ ์ข ๋ฃ๋ ๊ฒฝ์ฐ ์ต์ข ์ ์ผ๋ก ํฉ์ณ์ง Source Flux์์ onComplete signal์ด ๋ฐ์ํฉ๋๋ค.(์ฌ์ง)
- 0
- 2
- 175
Q&A
StepVerifier๋ฅผ ์ด์ฉํ Testing (1) - expectNoEvent ์ ๊ดํด์
์๋ ํ์ธ์? expectNoEvent()์ ์๋ฏธ๊ฐ ์กฐ๊ธ ํท๊ฐ๋ฆฌ์์ฃ ?ํ ์คํธ ํ์ จ๋ ์ฝ๋์ฒ๋ผ .expectNoEvent(Duration.ofMinutes(1)) ๋ฅผ ๋ ๋ฒ ์ฐ๋ฌ์ ํธ์ถํ๋ค๊ณ ํด์ 2๋ถ์ ๋๋ ์ด ํ์์ ๊ฐ์ง๋ค๋ผ๋ ์๋ฏธ๊ฐ ์๋๋ผ ๋งค 1๋ถ(์ฌ๊ธฐ์๋ ๋ ๋ฒ ํธ์ถํ์ผ๋๊น ์ด 2๋ถ์ด๊ฒ ์ฃ ) ์ฆ, ์ด 2๋ถ ๋์ ๋จ์ง ์ด๋ ํ ์ด๋ฒคํธ๋ ๋ฐ์ํ์ง ์์๋์ง๋ฅผ ๋จ์ํ ๊ฒ์ฆ๋ง ํ๋ ๊ฒ์ด๋ผ์ .expectNoEvent(Duration.ofMinutes(1)) ๋ฅผ ํธ์ถํ๋ค๊ณ ํด์ getVoteCount()์์ ๋ฆฌํดํ Flux์ Tuple ๋ฐ์ดํฐ๊ฐ emit ๋์ง๋ ์๊ณ ์์ ์ฝ๋์์์ฒ๋ผ expectNext()๋ฅผ ํธ์ถํด์ผ ๋ฐ์ดํฐ ํ๋๊ฐ emit์ด ๋ฉ๋๋ค.์ง๊ธ ํ ์คํธ ํด ๋ณด์ จ๋ ์ฝ๋์์๋ ... .expectNoEvent(Duration.ofMinutes(1)) .expectNoEvent(Duration.ofMinutes(1)) .expectNext(Tuples.of("๊ฐ์๊ตฌ", 32040)) ... ....expectNoEvent(Duration.ofMinutes(1)) ๋ฅผ ๋ ๋ฒ ํธ์ถ ํ ๋ค์์ ํธ์ถํ .expectNext()๊ฐ ์ธ๋ฒ์งธ .expectNext() ์ด๊ธฐ ๋๋ฌธ์ "๊ฐ์๊ตฌ"๊ฐ ๋ง์ผ๋ฏ๋ก ํ ์คํธ์ ํต๊ณผํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง ํ ์คํธ ๋์ ๋ฉ์๋์ Flux์์ emit๋์ง ์์ ๋ฐ์ดํฐ๊ฐ ๋จ์๋๋ฐ expectNext()๋ expectNextCount() ๋ฑ์ผ๋ก ๋จ์์๋ ๋ฐ์ดํฐ์ emit์ ํด๋นํ๋ onNext ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐ ํด์ฃผ์ง ์์ผ๋ฉด ํ ์คํธ ์ฝ๋๊ฐ ์ข ๋ฃ๋์ง ์๊ณ ๋ฌดํ์ ๊ธฐ๋ค๋ฆด ์ ์๋ ์ํฉ๋ ๋ฐ์ํ ์ ์์ผ๋ ์ฐธ๊ณ ํด ์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์.
- 2
- 1
- 198
Q&A
backpressure latest ์ ๋ต
์๋ ํ์ธ์.Discard Support: Each time a new element comes in (the new "latest"), this operator discards the previously retained element. ์ ๊ฐ ์๊ณ ์๋ ๋ฐ๋ก๋ ๊ณต์ ๋ฌธ์์ ๋์ ์๋ ์ด ๋ฌธ์ฅ์ ์๋ฏธ๋ ๋งค ์์ ๋ง๋ค ๋ค์ด์ค๋ ๋ฐ์ดํฐ(new element) ์ค์์ ๋ฐ๋ก ์ง์ ์์ ์ ๋จ๊ฒจ์ง ๋ฐ์ดํฐ๋ฅผ discardํ๊ณ ๊ทธ ๋ค์ ์์ ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ์ต์ ๋ฐ์ดํฐ๊ฐ ๋์ด์ ๋ฒํผ์ ๋ค์ด๊ฐ ๊ณต๊ฐ์ด ์๊ฒ๋๋ ์์ ์ ๋ฒํผ ์์ ์ฑ์์ง๋๊ฑธ๋ก ์๊ณ ์์ต๋๋ค.์ฌ๊ธฐ์ ๋งํ๋ previously retained element๋ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ค ์ค์์ ๊ฐ์ฅ ์ต๊ทผ์ ๋ค์ด์ค๋ ๋ฐ์ดํฐ ์ค์์ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋๋ฐ, ๋ฒํผ๋ฅผ ๋ค ๋น์ด๋ค๋ ์ค๋ช ์ด ๊ตฌ์ฒด์ ์ผ๋ก ๋์ ์์ง๋ ์์ต๋๋ค. ๋ง์ํ์ ๊ฒ๊ณผ ์กฐ๊ธ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๋ฒํผ ๋ด๋ถ์์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ drop ํ ๊ฒ์ธ์ง๋ฅผ ํธ๋ค๋งํ๋ ์ ๋ต์ธ onBackpressureBuffer()๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- 0
- 2
- 202






