๊พธ์ค€ํ•จ์ด ์ง„๋ฆฌ๋‹ค!!

์–ด์ œ๋ณด๋‹ค ๋ฐœ์ „ํ•œ ์˜ค๋Š˜์ด ๋˜๊ณ ํ”ˆ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ์˜ ๋ธ”๋กœ๊ทธ

์ฝ”๋ฃจํ‹ด 4

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine(์ฝ”๋ฃจํ‹ด) ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋”ฉ ํ™”๋ฉด(๋‹ค์ด์–ผ๋กœ๊ทธ) ๋งŒ๋“ค๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ฝ”๋ฃจํ‹ด์„ ํ™œ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋กœ๋”ฉ ํ™”๋ฉด(๋‹ค์ด์–ผ๋กœ๊ทธ)์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋ฃจํ‹ด์˜ ๊ธฐ๋ณธ์ ์ธ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ํฌ์ŠคํŒ…๋“ค์— ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…๋˜์–ด ์žˆ์œผ๋‹ˆ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ˜Ž [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (1) - CoroutineScope์™€ CoroutineContext ๋ฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”ํ‹€๋ฆฐ์˜ Coroutine์— ๋Œ€ํ•˜์—ฌ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Coroutine์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ Routine์ด๋ผ ํ•˜๋Š”๋ฐ ๊ฐ Routine์ด ํ˜‘์—…(Co)ํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ํ•ฉ์น˜๊ฒŒ devyo-111commit.tistory.com [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (2) - ์ฝ”..

Android/Kotlin 2022.11.01

[Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine์— ๋Œ€ํ•˜์—ฌ (3) - Coroutine Flow(ํ”Œ๋กœ์šฐ)

์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ฝ”๋ฃจํ‹ด ๊ด€๋ จ ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŒ…์œผ๋กœ ์ฝ”๋ฃจํ‹ด Flow์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. 1. Coroutine Flow๋ž€? Flow๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ’์„ ๋‚ด๋ณด๋‚ด๊ณ  ์ •์ƒ์ ์œผ๋กœ ๋˜๋Š” ์˜ˆ์™ธ๋กœ ์™„๋ฃŒ๋˜๋Š” ๋น„๋™๊ธฐ์ ์ธ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. Flow์—๋Š” ์ด 3๊ฐ€์ง€ ์—ญํ• ์ด ์กด์žฌํ•˜๋ฉฐ ๊ฐ๊ฐ์˜ ์„ค๋ช…์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. Producer (์ƒ์‚ฐ์ž) ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ(flow)์„ ์ƒ์‚ฐํ•˜๋ฉฐ ์ฝ”๋ฃจํ‹ด์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ƒ์‚ฐ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด ์คŒ InterMediary(์ค‘๊ฐœ์ž) Producer๊ฐ€ ๋‚ด๋ณด๋‚ด๋Š” ๊ฐ๊ฐ์˜ ๊ฐ’์ด๋‚˜ ์ŠคํŠธ๋ฆผ ์ž์ฒด๋ฅผ ์ˆ˜์ •, ์‚ญ์ œ,๋ณ‘ํ•ฉ ๋“ฑ์˜ ์กฐ์ž‘ ์ž‘ ์—…์„ ์ˆ˜ํ–‰ consumer(์†Œ๋น„์ž , ๊ตฌ๋…์ž) ์ŠคํŠธ๋ฆผ์„ ์†Œ๋น„ํ•˜๋Š” ๊ณณ( Android์—์„œ๋Š” ์ฃผ๋กœ UI ์ž‘์—…) 2. Cold Flow์™€ Hot Flow Cold Flow๋Š” ์†Œ..

Tutorial/tutorial 2022.10.13

[Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (2) - ์ฝ”๋ฃจํ‹ด Channel(์ฑ„๋„)

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ €๋ฒˆ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ ์ฝ”๋ฃจํ‹ด Channel์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋ฃจํ‹ด์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ•จ๊ป˜ ํ™•์ธํ•ด๋ณด์„ธ์š” :) [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (1) - CoroutineScope์™€ CoroutineContext ๋ฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”ํ‹€๋ฆฐ์˜ Coroutine์— ๋Œ€ํ•˜์—ฌ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Coroutine์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ Routine์ด๋ผ ํ•˜๋Š”๋ฐ ๊ฐ Routine์ด ํ˜‘์—…(Co)ํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ํ•ฉ์น˜๊ฒŒ devyo-111commit.tistory.com ์ฝ”๋ฃจํ‹ด Channel(์ฑ„๋„)์ด๋ž€? 2๊ฐœ ์ด์ƒ์˜ ์ฝ”๋ฃจํ‹ด ์‚ฌ์ด์— ์—ฐ๊ฒฐ๋œ ์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ..

Tutorial/tutorial 2022.10.11

[Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (1) - CoroutineScope์™€ CoroutineContext ๋ฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”ํ‹€๋ฆฐ์˜ Coroutine์— ๋Œ€ํ•˜์—ฌ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Coroutine์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ Routine์ด๋ผ ํ•˜๋Š”๋ฐ ๊ฐ Routine์ด ํ˜‘์—…(Co)ํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ํ•ฉ์น˜๊ฒŒ ๋˜์–ด Co + Roitine์ด๋ผ ๋ช…๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Coroutine์€ Thread์—์„œ ์‹คํ–‰๋˜๋Š” ์ž‘์€ Thread๋ผ ํ˜ธ์นญํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ Thread์™€ ๊ฐ™์ด ์ž์‹ ์„ ์‚ฌ์šฉํ•  ์Šคํƒ์„ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด ๋‹จ์œ„๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Thread๋Œ€์‹  Coroutine์„ ๊ตณ์ด ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?? ๐Ÿค” Thread๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ Thread๊ฐ„ Context Switching์‹œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Thread๊ฐ€ Task ์‹คํ–‰๋„์ค‘ Block์ด ๋ฐ˜๋ณต ๋œ๋‹ค๋ฉด Threa..

Tutorial/tutorial 2022.10.10