본문 바로가기
안드로이드/공부 및 정리

[Android]Compose의 상태관리

by 디선 2024. 8. 30.

왜 이것을 정리하는가?

Compose로 마이그레이션 중 remember를 사용하는 코드들을 발견했다. 이를 알아보니 Compose의 상태 관리와 깊은 연관이 있다는 것을 알게 되었다. 이에 따라 이를 최대한 간단하게 정리해본다.


1. Compose의 생명주기

Compose의 생명주기는 기존의 ActivityFragment와 비교했을 때 훨씬 간단하다. 다음 세 가지 주요 상태가 존재한다.

  • 첫 생성 시
  • UI를 구성하는 데이터가 변경되었을 시
  • Composable이 파괴될 때

참고 이미지

2. remember란?

remember상태(State)가 변할 때 recomposition이 발생하는데, 이때 이전 상태를 기억해야 할 경우 사용하는 키워드다. 예를 들어, 텍스트를 입력하는 경우 remember를 사용하지 않으면 recomposition이 발생하면서 입력한 텍스트를 기억하지 못한다.


3. MutableState

remember와 함께 자주 사용되는 MutableState<T>상태의 변화를 자동으로 감지하고 그 변화에 반응하는 구조다. 즉, UI에서 특정 상태가 변경되면 이를 기반으로 화면이 자동으로 갱신된다.


4. rememberSaveable

rememberSaveable은 화면 회전이나 프로세스 종료와 같은 이벤트가 발생해도 상태를 유지하는 데 사용된다. remember와 유사하지만 rememberSaveable은 상태를 Bundle에 저장해 구성 변경 시에도 값을 보존한다.


이와 같은 방식으로 선언 후 사용한다.


마치며...

이번 글에서는 Compose에서 remember와 상태 관리를 최대한 간단하게 다루었다. 아직 Compose를 시작한 지 얼마 안 되었기 때문에 사용하면서 점점 더 자세하게 알게 될 것이다. 추후 더 깊이 이해하게 되면 다시 정리할 수도 있다.

반응형