Kotlin - val, var 이란?

kez·2023년 8월 9일
0

Kotlin

목록 보기
4/6
post-thumbnail

🧐 val var 이란?

Kotlin에서는 가변성을 쉽게 제한 할 수 있도록 설계되어 있는 언어입니다. Kotlin 에서 가변성을 제한하는 방법은 여러가지가 있지만, 특히 변수 선언시에 val, var 이라는 두 가지 주요한 변수 선언 키워드를 제공합니다.

val a: String = "A"
var b: String = "B"

val(Value) 이란?

  • val로 선언된 변수는 불변(immutable)입니다.
  • 읽기 전용 변수(Read-Only-Property)라고도 불립니다.
  • 한 번 초기화되면 값을 변경할 수 없습니다.
  • Java의 final 변수에 해당됩니다.

var(Variable) 이란?

  • var로 선언된 변수는 가변(mutable)합니다.
  • 값을 재할당할 수 있습니다.

차이점

1. 재할당 여부:

val 변수에는 값을 재할당할 수 없지만, var 변수에는 가능합니다.

예시

val x = 5 // x는 이제 5로 고정
x = 10 // 컴파일 오류, 값을 변경할 수 없음


var y = 5 // y는 5
y = 10    // 성공, y는 이제 10

2. 성능과 안정성:

val은 불변성의 특성을 가지고 있기에 변수의 상태를 제거하여 일관성-복잡성 문제를 제거합니다. 이는 코드의 안정성과 예측가능성을 높일 수 있으며, 부수 효과(Side-Effects)를 줄일 수 있습니다.

또한 val은 스레드 안전성 측면에서 장점이 있습니다. 여러 스레드에서 동시에 접근해도 값이 변경되지 않기 때문에 경쟁 조건(race condition) 문제에 덜 노출됩니다.

3. 프로퍼티 vs 필드:

Kotlin에서 val은 실제로 읽기 전용 프로퍼티(Read-Only Property)로 구현되고, var은 읽기/쓰기가 가능한 프로퍼티로 구현됩니다.

4. 자바 호환성:

Kotlin은 자바와 호환되는 언어이므로, val은 자바에서 final 필드로, var은 일반 필드로 변환됩니다.

가변성을 왜 제한해야하는데?

다음 포스팅에 계속

📝 결론적으로, val과 var은 변수의 불변성 여부와 관련된 중요한 키워드로, 적절하게 사용하면 코드의 안정성과 유지보수성을 높일 수 있습니다. 가능한 val을 사용하고, 값이 변경되어야 하는 경우에만 var을 사용하는 것이 Kotlin을 Kotlin답게 사용하는 방법이라고 생각합니다.

profile
Android Developer

0개의 댓글