ViewModel이 회전 후에도 유지되는 이유
구성 변경 후에도 상태를 유지합니다.
ViewModel이 회전 후에도 유지되는 이유은(는) CoddyKit의 무료 Jetpack Compose Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Jetpack Compose Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Jetpack Compose Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
The Rotation Problem
Rotate the screen and Android destroys your Activity, wiping any state you stored in it. Your counter, text, and scroll position all vanish. 😵
Configuration Changes
Rotation is one of many configuration changes: theme switches, locale changes, and window resizing all recreate your screen the same way.
Enter the ViewModel
A ViewModel is a class built to hold UI state that outlives the Activity it serves, so a rotation no longer throws your data away.
class CounterViewModel : ViewModel() {
var count = 0
}Tied to the Screen, Not the Activity
The ViewModel is scoped to the screen’s lifecycle owner, so the same instance is handed back to the recreated Activity instead of a fresh one.
How It Survives
Android keeps the ViewModel in a retained store across the configuration change, then reconnects it to your brand-new Activity automatically.
When It Is Cleared
A ViewModel lives until the screen is truly finished. When the user navigates away for good, onCleared() runs so you can release resources.
override fun onCleared() {
// cancel jobs, close streams
}Not for Everything
The ViewModel survives rotation but not process death. For that, pair it with SavedStateHandle so critical values can be restored later.
Add the Dependency
You get ViewModel support from the lifecycle libraries. Add the lifecycle-viewmodel-compose artifact so Compose can obtain one easily.
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0")Separation of Concerns
Beyond survival, a ViewModel keeps logic out of your UI. Your Composables stay focused on drawing while the ViewModel owns the state.
A Mental Model
Think of the ViewModel as a quiet backstage manager: the Activity comes and goes, but the manager keeps your show’s state ready to perform again.
Why This Matters
Surviving rotation means users never lose progress mid-task. That reliability is the foundation every robust Compose app is built on. ✨
Quick Check
Test your grasp of why a ViewModel outlives a rotation.
Recap
Rotation recreates your Activity, but a ViewModel survives configuration changes and reattaches, keeping UI state intact and logic out of the UI.
자주 묻는 질문
“ViewModel이 회전 후에도 유지되는 이유” 강의는 무료인가요?
네 — “ViewModel이 회전 후에도 유지되는 이유” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Jetpack Compose Academy 강의 전체를 잠금 해제할 수 있습니다. Jetpack Compose Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“ViewModel이 회전 후에도 유지되는 이유”에서 뭘 배우나요?
구성 변경 후에도 상태를 유지합니다. 브라우저에서 직접 실행하는 실습 코드로 Jetpack Compose Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Jetpack Compose Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Jetpack Compose Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“ViewModel이 회전 후에도 유지되는 이유” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Jetpack Compose Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Jetpack Compose Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- ViewModel이 회전 후에도 유지되는 이유
- Composable에서 viewModel() 사용하기
- UiState 데이터 클래스 모델링하기
- collectAsStateWithLifecycle