상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - LiveData의 기본 사용법은 어떻게 되나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
LiveData는 안드로이드 아키텍처 컴포넌트 중 하나로, 수명주기를 인식하는 데이터 홀더입니다. 주로 ViewModel과 함께 사용되며, UI 컴포넌트가 데이터 변경을 관찰하고 자동으로 업데이트될 수 있게 해줍니다. LiveData의 기본 사용법을 단계별로 자세히 설명하면 다음과 같습니다. 1. LiveData 선언하기 LiveData는 보통 ViewModel 클래스 내부에서 선언하여 데이터의 소스를 관리합니다. 가장 일반적으로는 불변형 LiveData인 `LiveData<T>`와 변경 가능한 MutableLiveData인 `MutableLiveData<T>`를 함께 사용합니다. MutableLiveData는 ViewModel 내부에서 데이터를 변경할 때 사용하고, 외부에서는 불변형 LiveData만 노출하여 데이터의 무결성을 지킵니다. ```kotlin class MyViewModel : ViewModel() { private val _data = MutableLiveData<String>() val data: LiveData<String> get() = _data fun updateData(newValue: String) { _data.value = newValue // 또는 postValue(newValue) } } ``` 2. LiveData에 값 설정하기 LiveData에 값을 설정하는 방법은 두 가지가 있습니다. - `value` 프로퍼티: 메인 스레드에서 실행할 때 사용합니다. 즉시 값이 변경됩니다. - `postValue()`: 백그라운드 스레드에서 값을 설정할 때 사용하며, 값 변경이 비동기적으로 적용됩니다. 3. UI에서 LiveData 관찰하기 Activity나 Fragment 같은 UI 컴포넌트에서는 LiveData를 관찰(Observe)하여 데이터가 변경될 때 자동으로 UI를 갱신합니다. 관찰은 `observe()` 함수를 통해 이루어지고, 생명주기 소유자(lifecycle owner)를 전달해야 합니다. ```kotlin class MyFragment : Fragment() { private lateinit var viewModel: MyViewModel override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewModel = ViewModelProvider(this).get(MyViewModel::class.java) viewModel.data.observe(viewLifecycleOwner) { newValue -> // newValue가 변경될 때마다 이 블록이 호출됨 textView.text = newValue } } } ``` 4. 수명주기 인식(Lifecycle Awareness) LiveData는 `LifecycleOwner`(주로 Activity나 Fragment)의 상태를 자동으로 인식합니다. 즉, UI가 활성 상태일 때만 관찰자를 활성화하고, 비활성 상태나 파괴 시점에서는 자동으로 옵저버를 해제하므로 메모리 누수 위험이 줄어듭니다. 5. LiveData의 장점 - UI 컴포넌트의 수명주기에 자동으로 맞춰 데이터 관찰 - 메모리 누수 방지 - UI의 상태와 데이터가 쉽게 연결됨 - 데이터 변경 시 UI를 자동으로 갱신하는 패턴 제공 요약하면, LiveData는 ViewModel 내부에서 MutableLiveData로 데이터를 관리하고, UI에서는 LiveData를 관찰하여 데이터 변경시마다 UI를 자동 갱신합니다. 이렇게 하면 데이터와 UI 간의 결합도가 낮아지고, 앱의 구조가 깔끔해지는 효과가 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기