profile image

L o a d i n g . . .

반응형

 

MVVM도 알고 ViewModel도 알지만 정확히 왜 쓰이게 되었는지 어떻게 탄생하게 되었는지는 알 수 없어 정리해 보았다.

 

ViewModel의 역할

ViewModel은 안드로이드 컴포넌트의 생명 주기와 UI 상태를 분리하여 보다 안정적이고, 메모리 누수가 없으며, 재사용 가능한 코드를 만들 수 있도록 해준다.

ViewModel을 통해 생명 주기 문제를 해결하였고, 앱의 복잡성을 줄이면서 데이터 관리를 예전보다 쉽게 해준다

 

ViewModel의 UI 데이터의 생명 주기 관리

ViewModel은 Activity나 Fragment의 생명 주기와 독립적으로 동작하며, 이러한 UI 컴포넌트가 회전, 파괴, 재생성되더라도 데이터를 유지하여, 데이터를 다시 불러오거나 작업을 다시 재시작 할 필요가 없다.

 

ViewModel의 생명 주기와 비즈니스 로직의 분리

ViewModel은 UI 컴포넌트와 비즈니스 로직을 분리하여, UI와는 상관없이 비즈니스 로직을 수행할 수 있다.

이를 통해 코드의 재사용성과 테스트 용이성을 확장시킬 수 있다.

 

ViewModel의 메모리 누수 방지

ViewMoedl은 Activity나 Fragment가 파괴된 이후에도 메모리에 남지 않기 때문에, 비동기 작업이나 네트워크 요청 등과 같은 작업에서 발생할 수 있는 메모리 누수를 방지한다.

(메모리에는 남지 않은데, 데이터는 어찌 유지하고 있는것인지 잘 모르겠다)

 

ViewModel의 데이터 저장 및 유지

ViewModel은 구성 변경이 일어나더라도 데이터를 유지할 수 있으며, 직렬화가 가능하지 않은 복잡한 데이터를 포함한 비즈니스 로직도 손쉽게 처리할 수 있다.

 

마무리

ViewModel은 안드로이드 아키텍처 컴포넌트 중 하나로 UI 데이터의 생명 주기 관리와 관련된 문제를 해결하기 위해 만들어 졌다.

훌륭하다 훌륭해

 

반응형
복사했습니다!