๐ŸŒ€Recomposition ์‹œ์ 

์ด์˜ํ›ˆยท2025๋…„ 4์›” 18์ผ
0

All About Compose

๋ชฉ๋ก ๋ณด๊ธฐ
3/5
post-thumbnail

๐Ÿ’ก Compose๋Š” ์–ธ์ œ recomposition์„ ํ• ๊นŒ?

"์ด ์ปดํฌ์ €๋ธ”์€ count๋ž‘ ๊ด€๋ จ ์žˆ์–ด!"
Compose๊ฐ€ ์ด๋ ‡๊ฒŒ ํŒ๋‹จํ•˜๋Š” ๊ธฐ์ค€์€ โ€œ์ปดํฌ์ €๋ธ”์ด ํ•ด๋‹น ๊ฐ’์„ ์ฝ์—ˆ๋Š”๊ฐ€?โ€์ž…๋‹ˆ๋‹ค.


๐Ÿ“Œ Compose๋Š” '์ฝ์€ ๊ฐ’'์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค

Compose๋Š” ์ปดํฌ์ €๋ธ” ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์–ด๋–ค State ๊ฐ’์„ ์ฝ์—ˆ๋Š”์ง€ ์ž๋™์œผ๋กœ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ๋‚˜์ค‘์— ํ•ด๋‹น State๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ์—ˆ๋˜ ์ปดํฌ์ €๋ธ”๋งŒ ๋‹ค์‹œ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”Ž ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ

@Composable
fun Example() {
    val count by remember { mutableStateOf(0) }

    Text("Hello")              // count๋ฅผ ์•ˆ ์”€ โ†’ recomposition ๋Œ€์ƒ โŒ
    Text("Count: $count")      // count๋ฅผ ์ฝ์Œ โ†’ recomposition ๋Œ€์ƒ โœ…
}

์œ„ ์ฝ”๋“œ์—์„œ Text("Count: $count")๋Š” count ๊ฐ’์„ ์ฝ๊ณ  ์žˆ์œผ๋ฏ€๋กœ,
count๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ด Text๋งŒ ๋‹ค์‹œ ์žฌ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ Text("Hello")๋Š” count์™€ ๊ด€๋ จ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ตฌ์„ฑ๋˜์ง€ ์•Š์ฃ .


๐Ÿง  ์กฐ๊ธˆ ๋” ๊ตฌ์กฐํ™”๋œ ์˜ˆ์‹œ

@Composable
fun Parent() {
    val count by remember { mutableStateOf(0) }

    Column {
        Child1()         // count๋ฅผ ์•ˆ ์ฝ์Œ โ†’ ์žฌ๊ตฌ์„ฑ โŒ
        Child2(count)    // count๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ โ†’ ๋‚ด๋ถ€์—์„œ ์ฝ์œผ๋ฉด ์žฌ๊ตฌ์„ฑ โœ…
    }
}

@Composable
fun Child1() {
    Text("Static text")
}

@Composable
fun Child2(value: Int) {
    Text("Value: $value")
}

์—ฌ๊ธฐ์„œ๋„ ํ•ต์‹ฌ์€ ์‹ค์ œ๋กœ ์ฝ์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

  • Child1()์€ count์™€ ๋ฌด๊ด€ํ•˜๋ฏ€๋กœ ์žฌ๊ตฌ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Child2()๋Š” count๋ฅผ ์ „๋‹ฌ๋ฐ›๊ณ  ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, count๊ฐ€ ๋ฐ”๋€” ๋•Œ ์žฌ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

โœ… ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค

์กฐ๊ฑด์žฌ๊ตฌ์„ฑ ์—ฌ๋ถ€
๊ฐ’์„ ์ฝ์ง€ ์•Š์ŒโŒ ์žฌ๊ตฌ์„ฑ๋˜์ง€ ์•Š์Œ
๊ฐ’์„ ์ฝ์Œโœ… ์žฌ๊ตฌ์„ฑ๋จ
๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ๋งŒ ๋ฐ›๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์ŒโŒ ์žฌ๊ตฌ์„ฑ๋˜์ง€ ์•Š์Œ
๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๊ณ  ๋‚ด๋ถ€์—์„œ ์ฝ์Œโœ… ์žฌ๊ตฌ์„ฑ๋จ

๐Ÿงฉ ์ถ”๊ฐ€ ํŒ: Compose์˜ composition phase

Compose๋Š” composition phase์—์„œ ์–ด๋–ค State๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ์•„์ฃผ ์ •๋ฐ€ํ•˜๊ฒŒ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋•๋ถ„์—, UI๋Š” ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋ถˆํ•„์š”ํ•œ ์ž‘์—…์€ ์ค„์ด๊ณ , ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Composition phase์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ๊ธ€์—์„œ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

profile
์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹น

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