๐ Stability Insights ํ๋ฌ๊ทธ์ธ์ผ๋ก Compose ์ฑ๋ฅ์ ๊ฐํํ์ธ์!
Source: Dev.to
Overview
Android ์ฑ์ Jetpack Compose๋ก ๊ฐ๋ฐํ๊ณ ์๋ค๋ฉด, ์ฑ๋ฅ์ด ์ข ์ข **์์ ์ฑ(stability)**์ด๋ผ๋ ํต์ฌ ๊ฐ๋ ์ ๋ฌ๋ ค ์๋ค๋ ๊ฒ์ ์๊ณ ์์ ๊ฒ๋๋ค. ์ปดํฌ์ ๋ธ์ด ๋ถ์์ ํ(unstable) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๊ฒ ๋๋ฉด Compose๋ ํด๋น ํ๋ผ๋ฏธํฐ๊ฐ ๋ณ๊ฒฝ๋๋์ง ํ์ ํ ์ ์๊ฒ ๋๊ณ , ๋ถํ์ํ UI ์ฌ๊ทธ๋ฆฌ๊ธฐ(์ฌ๊ตฌ์ฑ)๋ฅผ ๊ฐ์ ํ๊ฒ ๋์ด ์ฑ์ด ๋๋ ค์ง๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค Jetpack Compose์ฉ ์ค์๊ฐ ์์ ์ฑ ์ธ์ฌ์ดํธ(RealโTime Stability Insights for Jetpack Compose) ํ๋ฌ๊ทธ์ธ์ด ๋ฑ์ฅํ์ต๋๋ค!
What Can This Plugin Do?
์ด ํ์ Android Studio ํ๋ฌ๊ทธ์ธ์ ์ฝ๋์ ์์ ์ฑ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์ํํด ์ฃผ์ด, ํจ์จ์ ์ธ Compose UI๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ทธ ์ด๋ ๋๋ณด๋ค ์ฌ์์ง๋๋ค.
-
Code Inspection Markers โ ์ฝ๋ ์์ ๋ฐ๋ก ํ์๋๋ ์๊ฐ์ ํํธ:
- Green โ ํ๋ผ๋ฏธํฐ๊ฐ **์์ ์ (stable)**์ด๋ฉฐ ์ฌ๊ตฌ์ฑ ์ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.
- Yellow โ ์์ ์ฑ์ด **๋ฐํ์(runtime)**์ ๊ฒฐ์ ๋ฉ๋๋ค(๊ฑด๋๋ธ ์ ์์). ์ด๋ ์ปดํ์ผ ํ์ ์ต์ ํ๋ฅผ ๋์น ์ ์์์ ์๋ฏธํฉ๋๋ค.
- Red โ ํ๋ผ๋ฏธํฐ๊ฐ **๋ถ์์ (unstable)**ํ์ฌ ๋น๋ฒํ๊ณ ๋ถํ์ํ ์ฌ๊ตฌ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
-
Stability Explorer Panel โ ์ ์ฉ ํจ๋์์ ํ๋ก์ ํธ ์ ์ฒด๋ฅผ ํ๋์ ๋ณผ ์ ์๋ ๊ฐ์๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ค ๋ชจ๋๊ณผ ์ปดํฌ์ ๋ธ์ ์์ ์ฑ ๋ฌธ์ ๊ฐ ์๋์ง ๋น ๋ฅด๊ฒ ํ์ธํ๊ณ ์กฐ์นํ ์ ์์ต๋๋ค.
-
Runtime Tracing โ ๊ฐ๋ ฅํ
@TraceRecomposition์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด ํน์ ์ปดํฌ์ ๋ธ์ ์ฌ๊ตฌ์ฑ ํ์๋ฅผ ์ ํํ ์ถ์ ํ๊ณ , ํ๋ผ๋ฏธํฐ ๋ณํ๋ฅผ ๊ฒ์ฌํ๋ฉฐ, ๋ก๊ทธ์์ ๋ฐ๋ก ์ฑ๋ฅ ๋ณ๋ชฉ์ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค. -
Stability Validation โ ๋ฏธ๋์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํฉ๋๋ค! ์ด ๊ธฐ๋ฅ์ ์๋กญ๊ฒ ๋ถ์์ ํ ํ์ ์ ๋์ ํ๋ ์ฝ๋๋ฅผ ๋ฒ์ ๊ด๋ฆฌ์ ์ปค๋ฐํ๋ ๊ฒ์ ์ฐจ๋จํ์ฌ, ์ฒ์๋ถํฐ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค.
Why Is Stability So Important?
data class์ ๊ฐ์ ํ์
์ ํ๋๊ฐ ๋ถ๋ณ(val)์ด๊ณ ์ฌ๋ฐ๋ฅธ equals ๊ตฌํ์ ๊ฐ์ง๊ณ ์์ ๋ **์์ ์ (stable)**์ด๋ผ๊ณ ํฉ๋๋ค. ๋ฐ๋ฉด **๋ถ์์ (unstable)**ํ ํ์
, ํนํ ๊ฐ๋ณ var ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ๊ฒฝ์ฐ์๋ ๋ถ๋ชจ๊ฐ ์ฌ๊ตฌ์ฑ๋ ๋๋ง๋ค ํด๋น ์ปดํฌ์ ๋ธ ํจ์๊ฐ ๋งค๋ฒ ๋ค์ ์คํ๋ฉ๋๋ค(๋ฐ์ดํฐ๊ฐ ์ค์ ๋ก ๋ณํ์ง ์์๋). ์ด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ถ์์ ํ ํ์
์ ์ฝ๊ฒ ์ฐพ์๋ด๊ณ ์์ ํ ์ ์์ด, ํจ์ฌ ๋ถ๋๋ฝ๊ณ (performance) ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
Getting Started
์ฑ์ ์ต์ ํํ ์ค๋น๊ฐ ๋์ จ๋์? Android Studio ์ค์ ์์ Compose Stability Analyzer ํ๋ฌ๊ทธ์ธ์ ๊ฒ์ํ๊ณ ์ค๋๋ถํฐ ๋ ๋์ UI๋ฅผ ๋ง๋ค์ด ๋ณด์ธ์!