๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

coroutine2

[Android : kotlin] flow ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ flow๋ž€? suspend function์€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋‹จ์ผ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.๐Ÿค”๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜์ง€?  ์ด ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด flow์ด๋‹ค.flow๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ๊ณ„์‚ฐ๋œ ์—ฌ๋Ÿฌ ๊ฐ’๋“ค์„ ๋ฆฌํ„ดํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ flow๋Š” ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. flow์˜ emitemit์€ Flow์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฉ์ถœํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. flow ์ƒ์„ฑ์ž ๋‚ด๋ถ€์—์„œ emit ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฉ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.flow์˜ collectcollect์€ ์•ž์„œ emit์„ ํ†ตํ•ด flow์—์„œ ๋ฐฉ์ถœ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.flow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์—์„œ collect ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ Flow๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ emit์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฉ์ถœํ•˜๊ณ , co.. 2024. 7. 5.
kotlin coroutines basic ๊ณต์‹๋ฌธ์„œ ์ฝ์–ด๋ณด๊ธฐ ์ฝ”ํˆฌํ‹ด์€ ์ผ์‹œ์ ์œผ๋กœ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ„์‚ฐ์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค. ๊ฐœ๋…์ ์œผ๋กœ๋Š” ์Šค๋ ˆ๋“œ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ํŠน์ • ์Šค๋ ˆ๋“œ์— ๊ฒฐํ•ฉ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๋‹ค์‹œ๋งํ•ด, ์ฝ”๋ฃจํ‹ด์€ ํ•œ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘๋‹จํ•˜๊ณ , ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ธฐ๋‹ค๋ฆด ๋•Œ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šค๋ ˆ๋“œ๋Š” ๋น„์šฉ์ด ํฐ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์Šค๋ ˆ๋“œ ์‚ฌ์šฉ ์‹œ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ! ์ฝ”๋ฃจ์นœ์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ. ์ฝ”๋ฃจํ‹ด์€ ๋ธ”๋ก๋ผ๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ด ๋ธ”๋ก์€ ์‹คํ–‰ ์ค‘์— ์ผ์‹œ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ๊ณ , ์ดํ›„ ๋‹ค์‹œ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ”๋ฃจํ‹ด์€ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. fun .. 2024. 1. 17.
728x90