2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

LiveData에서 기본값 설정하는 방법은?

_____
Q: LiveData에서 기본값을 설정하는 방법은 무엇인가요?

A: LiveData는 초기값을 직접 지정할 수 있는 생성자를 제공하지 않기 때문에, 기본값 설정은 주로 MutableLiveData를 통해 이루어집니다.

---

Q: MutableLiveData에서 기본값을 지정하려면 어떻게 하나요?

A: MutableLiveData 인스턴스를 생성할 때 초기 값을 생성자에 전달하여 기본값을 설정할 수 있습니다.

예시:
```kotlin
val liveData = MutableLiveData("기본값")
```

---

Q: 기본값 없이 LiveData를 생성한 뒤 나중에 초기값을 설정할 수 있나요?

A: 네, 기본값 없이 생성한 MutableLiveData에 나중에 값을 설정할 수 있습니다.

예시:
```kotlin
val liveData = MutableLiveData()
liveData.value = "기본값"
```
---

Q: 초기값 설정 시 주의할 점이 있나요?

A: 초기값을 설정하는 시점이 중요합니다. 여러 구독자가 관찰하기 전에 초기값을 미리 할당해 두면, 구독자가 구독 순간에 기본값을 바로 받게 됩니다.

---

Q: LiveData의 기본값을 변경하지 않고 읽기 전용으로 노출하려면 어떻게 하나요?

A: 내부에서는 MutableLiveData에 기본값을 설정하고, 외부에는 LiveData 타입으로 노출하여 수정 불가능하게 만들 수 있습니다.

예시:
```kotlin
private val _data = MutableLiveData("기본값")
val data: LiveData = _data
```

---

Q: StateFlow 대비 LiveData에서 기본값 설정이 까다로운 점이 있나요?

A: StateFlow는 생성 시 값이 반드시 필요하지만, LiveData는 초기값이 없어도 생성 가능하며 값을 나중에 설정할 수 있어 기본값 개념이 다소 느슨합니다.

---

요약: LiveData에서 기본값은 MutableLiveData 생성 시 초기값을 지정하거나, 생성 후 value 프로퍼티에 값을 할당하는 방식으로 설정합니다. 외부에 읽기 전용으로 노출할 때는 내부에서만 MutableLiveData를 사용하고 LiveData 타입으로 감싸는 것이 일반적인 패턴입니다.
LiveData에서 기본값을 설정하는 방법에 대해 설명드리겠습니다.

LiveData는 관찰 가능한 데이터 홀더로, UI 컴포넌트들이 데이터를 관찰하고 해당 데이터가 변경될 때 자동으로 업데이트되도록 돕습니다.

하지만 LiveData 객체에는 초기값을 지정하지 않으면 기본적으로 null 값을 가지게 됩니다.

따라서 처음부터 기본값을 설정해 두면, 관찰자가 등록될 때 즉시 유효한 값으로 초기화된 상태를 받을 수 있어, null 체크나 초기 빈 값 처리를 줄일 수 있습니다.

기본값 설정 방법은 다음과 같습니다.

1. MutableLiveData 생성 시 초기값 지정하기 MutableLiveData의 생성자에 초기값을 넣어 생성할 수 있습니다.

예를 들어, 정수형 LiveData에 0을 기본값으로 설정하려면 다음과 같습니다.

```kotlin val liveData = MutableLiveData(0) ``` 이렇게 하면, `liveData.value`가 초기 상태에서 0이 됩니다.



2. 초기화 후에 값 직접 할당하기 기본 생성자로 MutableLiveData 객체를 만들고, 이후 `value` 프로퍼티에 값을 직접 할당할 수도 있습니다.

```kotlin val liveData = MutableLiveData() liveData.value = 0 ``` 다만 이 경우 기본값이 바로 세팅되는 시점이 약간 뒤에 발생할 수 있기 때문에, 가급적 생성 시점에 초기값을 지정하는 방법이 더 깔끔합니다.



3. Backing Property 패턴을 활용하는 경우 ViewModel 내부에서 LiveData를 캡슐화할 때, `private val _data = MutableLiveData(초기값)` 형태로 초기값을 주고, 외부에는 변경 불가능한 `LiveData`를 노출하는 패턴이 일반적입니다.

```kotlin private val _number = MutableLiveData(0) val number: LiveData get() = _number ```

4. MediatorLiveData를 사용할 경우 기본값 설정 MediatorLiveData도 MutableLiveData처럼 기본값을 초기화할 수 있습니다.

```kotlin val mediatorLiveData = MediatorLiveData().apply { value = 0 } ``` 요약 - `MutableLiveData` 생성자에 기본값을 직접 넣어 초기화를 한다.

- 혹은 생성 후 `value` 프로퍼티에 초기값을 할당한다.

- ViewModel에서는 private MutableLiveData를 초기값과 함께 생성하고, 외부에는 LiveData만 공개하는 관례가 있다.

이렇게 하면 LiveData를 구독하는 곳에서 null 체크를 줄이고, 항상 초기값이 설정된 상태로 관찰을 시작할 수 있어서 더 안전하고 편리합니다.

작성자: 박서우 [비회원] | 작성일자: 1년 전 2025-05-25 12:41:18
조회수: 184 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.