본문 바로가기

안드로이드/알아두기

[안드로이드] LiveData에 대하여 다시

이전에 나는 LiveData에 대하여 정리하였다. 물론 약 8개월이 지난 지금 시점에서는 당연히 기억이 안난다. 내가 글을 썼다는 사실도 몰랐으니 말 다 한셈이다.

 

그래서 새로운 마음으로 LiveData에 대하여 다시금 정리를 해봐야 겠다. 대신 이전이랑 다르게 간략하게 해보자. 할 것들이 너무 많으니까.

 

- LiveData

항상 단어에서 뜻을 유추하는 과정이 나는 좋다. LiveData.... 살아있는 데이터이다. 무엇인가가 살아있다는 것은 성장을 하고 변화하는 의미를 내포하지 않을까 싶다. 그래서 이런 의미를 염두해두고 라이브 데이터에 대해 알아보니 아래와 같은 특징이 보였다.

 

  • LiveData는 Lifecycle 내에서 관찰할 수 있다.
  • Live Data는 데이터 홀더 클래스이다.

 

LiveData는 데이터 홀더.... 데이터를 홀딩하고 값이 변화하면 이걸 Lifecycle 내에서 감지해서 변화한걸 인지한다. 그렇다면, 시시각각으로 변하는 값에 대하여 LiveData를 처리하고 Observing을 해두면 정말 편할 것으로 생각된다. 자 그럼 데이터가 실시간으로 감지되는게 어떤 장점으로 이해지는지 한번 알아보자.

 

1. 항상 최신 데이터를 유지한다.

이건 말할 것도 없다. 내 데이터가 계속해서 내가 손도 안대고 다른 코드를 작성한것도 아닌데 단지 옵저버를 둔 것 만으로도 계속해서 최신 상태를 유지한다. 개꿀이지 않을 수 없다.

 

 

2. 데이터와 UI의 일치 여부 쉽게 확인가능

내가 옵저버를 걸어둔 라이브 데이터가 갱신이 되었는데, UI에는 반영이 안됐다면 뭔가 문제가 있다는걸 바로 알 수 있다. 정말 보면 볼 수록 개꿀이다.

 

 

3. 메모리 릭킹이 없다.

생각을 해보자. LiveData는 Activity나 Fragment의 생명주기 안에서 관찰되는 데이터이다. 그렇다면, 이 Activity와 Fragment가 onDestroy 상황일 때는 자동으로 옵저빙을 취소해서 메모리 누수가 생기지 않는다. 캬.... 점입가경으로 최고다. 확실히 LiveData를 쓰면, xml에 선언식으로 때려버리면, 여간 편한게 아닐 수 없다고 생각한다.