Jetpack Compose Academy · 강의

회전에도 rememberSaveable로 상태 유지하기

구성 변경 후에도 상태를 유지합니다.

레슨 4/413개 단계

회전에도 rememberSaveable로 상태 유지하기은(는) CoddyKit의 무료 Jetpack Compose Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Jetpack Compose Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Jetpack Compose Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

화면 회전 문제

화면을 회전하면 탭 카운터가 0으로 돌아갑니다. 구성 변경으로 인해 전체 Activity가 다시 만들어지기 때문입니다.

remember만으로는 부족합니다

remember는 재구성 후에는 유지되지만 Activity가 다시 만들어질 때는 유지되지 않습니다. Activity가 다시 시작되면 기억해 둔 상태는 완전히 사라집니다.

다시 만들어지는 원인

화면 회전, 언어 전환, 다크 모드 전환은 구성 변경입니다. 각각의 경우 UI가 해제되고 처음부터 다시 만들어집니다.

rememberSaveable 만나기

rememberSaveable은 remember처럼 동작하면서 저장된 인스턴스 상태에도 값을 저장하므로, 다시 만들어진 후에도 값을 유지합니다.

var count by rememberSaveable { mutableStateOf(0) }

호출만 바꾸면 됩니다

해결 방법은 한 단어만 바꾸는 경우가 많습니다. remember를 rememberSaveable로 바꾸면 이제 화면을 회전해도 카운터의 값이 유지됩니다.

저장할 수 있는 것

기본적으로 Bundle에 담을 수 있는 타입을 저장합니다. Int, String, Boolean 및 기타 기본 타입이 해당됩니다. 대부분의 간단한 상태는 그대로 작동합니다.

var name by rememberSaveable { mutableStateOf("") }

사용자 지정 타입에는 저장기가 필요합니다

직접 만든 클래스에는 객체를 번들에 안전한 데이터로 저장하고 복원하는 방법을 알려 주는 Saver를 rememberSaveable에 전달하세요.

데이터 클래스를 쉽게 저장하기

Kotlin 데이터 클래스에는 mapSaver 또는 listSaver 도우미를 사용하거나 Parcelize를 주석으로 추가하여 쉽게 저장할 수 있습니다.

@Parcelize
data class User(val name: String) : Parcelable

영원히 유지되지는 않습니다

rememberSaveable은 화면 회전과 잠시 백그라운드로 전환되는 상황에서는 유지되지만, 앱이 완전히 종료된 후에는 유지되지 않습니다. 영구적인 데이터에는 여전히 저장 공간이 필요합니다.

사용할 때

카운터, 입력 중인 검색어, 탭 인덱스처럼 화면 회전 후에도 유지하고 싶은 임시 UI 상태에는 rememberSaveable을 사용하세요.

remember와 Saveable 비교

일반적인 기준은 다음과 같습니다. 비용이 적거나 다시 계산할 수 있는 값에는 remember를 사용하고, 화면 회전으로 값이 사라지면 사용자가 불편해할 값에는 rememberSaveable을 사용하세요.

빠른 확인

화면 회전 후에도 상태를 유지하는 API는 무엇인가요?

복습

rememberSaveable은 화면 회전과 구성 변경 중에도 임시 UI 상태를 유지하지만 remember는 그렇지 않다는 것을 배웠습니다. 훌륭합니다! 🎉

무료로 시작

AI 튜터와 함께 Kotlin을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“회전에도 rememberSaveable로 상태 유지하기” 강의는 무료인가요?

네 — “회전에도 rememberSaveable로 상태 유지하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Jetpack Compose Academy 강의 전체를 잠금 해제할 수 있습니다. Jetpack Compose Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“회전에도 rememberSaveable로 상태 유지하기”에서 뭘 배우나요?

구성 변경 후에도 상태를 유지합니다. 브라우저에서 직접 실행하는 실습 코드로 Jetpack Compose Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Jetpack Compose Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Jetpack Compose Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“회전에도 rememberSaveable로 상태 유지하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Jetpack Compose Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Jetpack Compose Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. remember와 mutableStateOf
  2. 재구성: 다시 그리기를 일으키는 요인
  3. 탭 카운터 만들기
  4. 회전에도 rememberSaveable로 상태 유지하기
← Jetpack Compose Academy(으)로 돌아가기