๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กfull stack/์•ˆ๋“œ๋กœ์ด๋“œ (26)

JiYoung Dev ๐Ÿ–ฅ

[Android] ์Šค๋ ˆ๋“œ(Thread) & ํ•ธ๋“ค๋Ÿฌ(Handler) (2023.07.27)

Thread ํ์— ์Šค๋ ˆ๋“œ ์ €์žฅ ์ปดํ“จํ„ฐ ์ž‘์—…์€ CPU๊ฐ€ ํ•จ. CPU๋Š” ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ผ์ฒ˜๋ฆฌ๋ฅผ ํ•จ ์ž‘์—… ์Šค์ผ€์ฅด๋ง์„ ํ†ตํ•ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ → ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ ์Šค๋ ˆ๋“œ ๋ผ์ดํ”„์‚ฌ์ดํด (์Šค๋ ˆ๋“œ ์ƒ๋ช…์ฃผ๊ธฐ) ์ฒซ๋ฒˆ์งธ ์Šค๋ ˆ๋“œ๋Š” ๋‘๋ฒˆ์งธ ์Šค๋ ˆ๋“œ์—๊ฒŒ ์–‘๋ณด : yeild ๋‘๋ฒˆ์งธ ์Šค๋ ˆ๋“œ๋Š” ์ฒซ๋ฒˆ์งธ ์Šค๋ ˆ๋“œ์˜ cpu๋Š” ๊ฐ€๋กœ์ฑ” : interupt start(), run(), yeild(), interupt(), sleep() ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋กœ ๊ตฌํ˜„์ด ๋˜์–ด ์žˆ์Œ ์Šค๋ ˆ๋“œ1 ์‹œ์ž‘ ํ›„ ๋‹ค์‹œ ์‹คํ–‰๋  ๋•Œ๋Š” run() ์ƒํƒœ๋กœ ์‹คํ–‰๋จ(๋‹ค์‹œ start() X) Handler ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Handler๊ฐ€ ํ•„์š”ํ•จ ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด Task๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ทธ ์•ˆ์— activity๋“ค์ด ์Œ“์ด๋Š” ๊ตฌ์กฐ ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์–ดํ”Œ์„ ์—ฌ๋Ÿฌ..

[Android] RecyclerView (2023.07.20, 24)

๋ฐ˜๋ณต๋˜๋Š” ๋ ˆ์ด์–ด ์Šคํฌ๋กค ArrayList → ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋Ÿ‰์„ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉ ๋ฐฐ์—ด → ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์„ ๋•Œ (๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋Ÿ‰์ด ์ •ํ•ด์ ธ ์žˆ์„ ๋•Œ) ๋ฌด์กฐ๊ฑด ArrayList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒƒ์€ ์•„๋‹˜! RecyclerView ์›๋ฆฌ RecyclerView๋Š” ํ™”๋ฉด ํฌ๊ธฐ์—์„œ ์ข€๋” ์—ฌ์œ ์žˆ๊ฒŒ ๋ณต์‚ฌ ํ›„ ์Šคํฌ๋กค์„ ์˜ฌ๋ฆฌ๋ฉด view๋ฅผ ์žฌํ™œ์šฉ → view๋ฅผ ์žฌํ™œ์šฉํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฆ„ ListView๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 100๊ฐœ๋ฉด ํ…œํ”Œ๋ฆฟ๋„ 100๊ฐœ → ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋ถˆ๋Ÿฌ์˜ค๋Š” ์†๋„๊ฐ€ ๋Š๋ ค์ง Recycler View๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ๋ฆฌ์ŠคํŠธ์™€ ๊ทธ๋ฆฌ๋“œ์™€ ๊ฐ™์€ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ทฐ(View) ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ListView์˜ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค..