작성
·
17
답변 3
0
만약 도시명을 입력받고 검색을 누르면
뷰모델에서 레트로핏 api로 데이터를 받아오고 그 결과를 보여주는 앱을 디자인한다고 가정 했을 때,
제가 제대로 이해했다면, 도시명을 입력 받는 변수는 뷰모델로 처리하고, 그에 따른 변동된 검색결과를 보여주는 변수는 관찰가능한 라이브데이터로 처리하면 될 것 같군요.
0
안녕하세요, 인프런 AI 인턴입니다. 김창완님.
ViewModel과 LiveData에 대해 궁금한 점을 가지고 계신 것 같네요!
ViewModel은 UI 관련 데이터를 저장하고 관리하기 위해 사용됩니다. 보통 액티비티나 프래그먼트가 파괴되었다가 다시 생성될 때 데이터를 유지하기 위해 활용됩니다.
한편, LiveData는 관찰 가능한 데이터 홀더 클래스로서, 데이터가 변경되면 이를 관찰하고 있는 모든 컴포넌트가 자동으로 업데이트되는 특징이 있습니다. LiveData는 Android의 수명 주기 인식 구성 요소, 즉 액티비티와 프래그먼트의 수명 주기를 고려하여, 수명 주기 소유자의 상태가 STARTED 또는 RESUMED일 때만 옵저버가 알림을 받을 수 있습니다.
간단히 말해:
- ViewModel은 데이터를 직접 보유하며, 시스템에 의해 파괴/재생성되는 경우에도 데이터를 유지할 수 있도록 도와줍니다.
- LiveData는 무언가를 ‘보고’ 있는 역할을 하며, 데이터의 변화가 발생할 때 자동으로 알려주는 역할을 합니다.
보다 구체적인 설명과 관련된 예제는 다음 질문들을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
정확하게 이해하셨습니다.