[24.08.05] TIL - 045

๐ŸŽง 0. ์˜ค๋Š˜์˜ ์ถ”์ฒœ๊ณก

๋ฒŒ์จ ๋‚˜์˜จ ์ง€ 16๋…„์ด๋‚˜ ๋๋Œ€์š”.

๐Ÿ“™ 1. Compose ํŠน๊ฐ• - ์ƒํƒœ

์ปดํฌ์ฆˆ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์€ ๋ฐ”๋กœ ์ƒํƒœ ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ๊ทธ ์ƒํƒœ์™€ ์ƒํƒœ ํ˜ธ์ด์ŠคํŒ…์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

1-1. ์ƒํƒœ์™€ ์žฌ๊ตฌ์„ฑ

๋จผ์ €, ์ƒํƒœ(State)๋ž€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ์˜ ์ƒํƒœ์™€๋„ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๋ผ๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ปดํฌ์ฆˆ๋„ ์‚ฌ๋žŒ์ฒ˜๋Ÿผ ์ƒํƒœ๋ฅผ ๊ฐ–๊ณ , ์ด ์ƒํƒœ์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ์›€์ง์ด๋Š” ํ˜•ํƒœ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ปดํฌ์ฆˆ์˜ ํŠน์ • ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ทธ ์ƒํƒœ๊ฐ€ ํฌํ•จ๋œ ํ•จ์ˆ˜์™€ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ•จ์ˆ˜๋“ค์„ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์žฌ๊ตฌ์„ฑ(Recomposition)์ด๋ž€, ๋ฐ”๋€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  UI๋ฅผ ๋‹ค์‹œ ๊ทธ๋ฆฐ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ƒํƒœ๋Š” ์ด์ „์˜ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

var state by remember { mutableStateOf() }

remember๋ฅผ ์œ„์ž„ํ•˜์—ฌ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ , ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•˜๋ฉด, ์ด๋ฅผ ๊ฐ์ง€ํ•ด UI๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ƒํƒœ ํ˜ธ์ด์ŠคํŒ…์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

1-2. ์ƒํƒœ ํ˜ธ์ด์ŠคํŒ…

ํ˜ธ์ด์ŠคํŒ…(Hoisting)์€ ์˜์–ด๋กœ "๋“ค์–ด์˜ฌ๋ฆฌ๋‹ค" ๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์ƒํƒœ ํ˜ธ์ด์ŠคํŒ…์€ ์ƒํƒœ๋ฅผ ๋“ค์–ด์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒํƒœ๋ฅผ ๋“ค์–ด์˜ฌ๋ฆฐ๋‹ค? ์ƒ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•, ์ปดํฌ์ฆˆ์˜ ๊ตฌ์„ฑ ๋ฐฉ์‹์„ ์•Œ์•„๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ปดํฌ์ฆˆ๋Š” ์ปดํฌ์ €๋ธ” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ํ˜ธ์ถœํ•˜๊ณ , ๋˜ ํ˜ธ์ถœํ•˜์—ฌ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ, ๋“ค์–ด์˜ฌ๋ฆฌ๋Š” ๊ฑด, ์ปดํฌ์ €๋ธ” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ํ˜ธ์ถœ์ž๋กœ ์ƒํƒœ๋ฅผ ์˜ฎ๊ธด๋‹ค๋Š” ๋œป์ด ๋ฉ๋‹ˆ๋‹ค.

๋Œ€์‹ , ์˜ฎ๊ธฐ๊ณ  ๋‚œ ํ›„, ๊ธฐ์กด์— ์žˆ๋˜ ๊ณณ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ค˜์„œ ์ƒํƒœ๋ฅผ ๊ฐ™์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด, ๋‹ค๋ฅธ ์ปดํฌ์ €๋ธ” ํ•จ์ˆ˜์™€ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ณ , ์ƒํƒœ๋ฅผ ์บก์Аํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์ƒ๊น๋‹ˆ๋‹ค.

์ด ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜๋ฉด, ์ƒํƒœ๋Š” ์•„๋ž˜๋กœ ํ–ฅํ•˜๊ณ  ์ด๋ฒคํŠธ๋Š” ์œ„๋กœ ํ–ฅํ•˜๋Š”, ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

๐ŸŽฏ 2. ๋

์š”์ฆ˜ ์ฝ”๋“œ ์นดํƒ€๋ฅผ ์กฐ๊ธˆ์”ฉ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์–ด์„œ ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฆ„ ๊ณผ์ œ๋„ ์ˆœํƒ„ํ•˜๊ฒŒ ์ž˜ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ณ ,

์ด์   ์ฝ”๋ฃจํ‹ด์„ ๋” ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด์ผ ์ฝ”๋ฃจํ‹ด ๊ฐ•์˜ ๋“ฃ๊ณ  ์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.

๋.

profile
์—ฌ๊ธฐ๋Š” ๊ณต๋ถ€ ๊ธฐ๋ก์šฉ ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€