๐ฐ Stream Backpressure ์ ์ดํด
Stream ์ฒ๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ฉด ๋ฃ๊ฒ ๋๋ ๋จ์ด๋ค ์ค ํ๋๊ฐ Backpressure ์ธ๋ฐ์, ์ด์ ๊ด๋ จ๋์ ์ ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ ๊ธ์ด ์์ด ๊ณต์ ๋๋ฆฝ๋๋ค. Backpressure ๋ ์ฌ์ค ํ์ดํ๋ฅผ ํตํ ์ ์ฒด ํ๋ฆ์ ๋ฐํ๋ ์ ํญ ํน์ ํ์ ๋งํ๋ ๊ฒ์ด์ง๋ง, ์ํํธ์จ์ด์์๋ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ผ๋ก ๊ตฌ์ถํ ์คํธ๋ฆผ ์ฒ๋ฆฌ์ ๋ฐ์ํ ์ ์๋ ๋ฐ์ดํฐ์ ๋ฐฐ์ ํ์์ ๋งํฉ๋๋ค. ์ํํธ์จ์ด์์ Backpressure ๋ก ์ธํด ๊ฒช์ ์ ์๋ Side-Effect ๋ก๋ CPU์ ๋ฉ๋ชจ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ Drop ํ์๊ณผ Network I/O, DISK I/O, Out of Memory ๋ฑ์ ๊ฒช์ ์ ์์ต๋๋ค. Backpressure ํ์์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก๋ ํฌ๊ฒ Buffer ๋ฅผ ๋๊ณ ๋์ํ๋ Push ๋ฐฉ์๊ณผ Subscriber ๊ฐ ์์ ์ด ํ์ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ฒ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๊ฐ๋ Pull ๋ฐฉ์์ด ์์ต๋๋ค. ๊ณต์ ๋๋ฆฐ ๋ธ๋ก๊ทธ์ Backpressure ์ ๊ฐ๋ ๊ณผ Push ๋ฐฉ์, Pull ๋ฐฉ์์ ์ฌ์ฉํ๋ ์คํ์์ค๋ค์ ๋ํ ์ค๋ช ์ ์ฌ๋ฐ๊ณ ์์ธํ ๋์ดํ๊ณ ์์ผ๋ ๊ด์ฌ์์ผ์ ๋ถ๋ค์ ํ๋ฒ ๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค. https://doublem.org/stream-backpressure-basic/