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

์ „์ฒด ๊ธ€141

์ •์ฒ˜๊ธฐ ํ•„๊ธฐ : 1๊ณผ๋ชฉ -2 (์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„) ๊ฐ•์˜ ์ •๋ฆฌ 11.  ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ๋ชจ๋ธ๋ง์ƒ์œ„ : ํฐ ๊ฐœ๋…, ํ•˜์œ„ : ๊ตฌ์ฒด์ ์œผ๋กœ  ์†Œํ”„ํŠธ์›จ์–ด ์ƒ์œ„ ์„ค๊ณ„์— ์†ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€?-> ์•„ํ‚คํ…์ณ ์„ค๊ณ„, ๋ชจ๋“ˆ ์„ค๊ณ„, ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„ ๊ตฌ์กฐ ๋ชจ๋ธ๋ง, ํ–‰์œ„ ๋ชจ๋ธ๋ง์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์กฐ๋„ ๊ตฌ์กฐ ์„ค๊ณ„ : ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ๋ฐฉ๋ฒ• ์ค‘ ๊ธฐ๋Šฅ์  ๊ด€์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์— ์š”๊ตฌ๋œ ๊ธฐ๋Šฅ์ด๋‚˜ ์ž๋ฃŒ ์ฒ˜๋ฆฌ ๊ณผ์ •, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์„ ์ค‘์‹ฌ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋‚˜๋ˆ  ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์‹  ํ–‰์œ„ ์„ค๊ณ„ ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ์—ฐ์‚ฐ : ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ƒ‰์žฅ๊ณ ์˜ ์ฝ”๋“œ๋ผ๋ฉด Ref๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ ์ฝ”๋“œ ์„ค๊ณ„์˜ ๋ชฉ์  : ๊ณ ์œ ์„ฑ, ๋ถ„๋ฅ˜ ํŽธ์˜์„ฑ ์ฝ”๋“œ์˜ ์ข…๋ฅ˜- ์ˆœ์ฐจ์ฝ”๋“œ - ๋ธ”๋ก ์ฝ”๋“œ - ๊ทธ๋ฃน ๋ถ„๋ฅ˜์‹ ์ฝ”๋“œ : ๋Œ€, ์ค‘ , ์†Œ๋ถ„๋ฅ˜ ํ‘œ์˜ ์ˆซ์ž ์ฝ”๋“œ(์œ ํšจ ์ˆซ์ž ์ฝ”๋“œ)์ฝ”๋“œ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€? -> ๋ณต์žก์„ฑ, ํ‘œ์ค€ํ™”, ๋ถ„๋ฅ˜, ์‹๋ณ„ ์ฝ”๋“œ ์„ค.. 2024. 7. 6.
์—ฌ๋Ÿฌ ๊ฐœ์˜ flow์„ combine์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ Combine์œผ๋กœ ์—ฌ๋Ÿฌ flow ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์— ๋ณด์—ฌ์ค„ ์•„์ดํ…œ์€ ์—ฌ๋Ÿฌ api ์‘๋‹ต๊ฐ’์„ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค.์ข‹์•„์š” ์ƒํƒœ ๊ฐ’์„ likeRepository์˜ checkLikeํ•จ์ˆ˜๋กœ ๋ถ€ํ„ฐ ๋ฐ›๊ณ  emit ํ•ด์ฃผ๋Š” flow๋ฅผ ์ž‘์„ฑํ•ด์ค€ ํ›„ ์ด๋ฅผ ๋ทฐ๋ชจ๋ธ์—์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ ค๊ณ  ํ•˜์˜€๋‹ค.!!class GetLikeStateUseCase @Inject constructor(private val likeRepository: LikeRepository) { operator fun invoke(reportId: String): Flow = flow { val result = likeRepository.checkLike(reportId = reportId) emit(resul.. 2024. 7. 5.
[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.
๐Ÿ“บ ์ •์ฒ˜๊ธฐ ํ•„๊ธฐ : ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ 1-1 ๊ฐ•์˜ ์ •๋ฆฌ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2024. 7. 4.
728x90