Kotlin에서는 가변성을 쉽게 제한 할 수 있도록 설계되어 있는 언어입니다. Kotlin 에서 가변성을 제한하는 방법은 여러가지가 있지만, 특히 변수 선언시에 val, var 이라는 두 가지 주요한 변수 선언 키워드를 제공합니다.
val a: String = "A"
var b: String = "B"
val 변수에는 값을 재할당할 수 없지만, var 변수에는 가능합니다.
예시
val x = 5 // x는 이제 5로 고정
x = 10 // 컴파일 오류, 값을 변경할 수 없음
var y = 5 // y는 5
y = 10 // 성공, y는 이제 10
val은 불변성의 특성을 가지고 있기에 변수의 상태를 제거하여 일관성-복잡성 문제를 제거합니다. 이는 코드의 안정성과 예측가능성을 높일 수 있으며, 부수 효과(Side-Effects)를 줄일 수 있습니다.
또한 val은 스레드 안전성 측면에서 장점이 있습니다. 여러 스레드에서 동시에 접근해도 값이 변경되지 않기 때문에 경쟁 조건(race condition) 문제에 덜 노출됩니다.
Kotlin에서 val은 실제로 읽기 전용 프로퍼티(Read-Only Property)로 구현되고, var은 읽기/쓰기가 가능한 프로퍼티로 구현됩니다.
Kotlin은 자바와 호환되는 언어이므로, val은 자바에서 final 필드로, var은 일반 필드로 변환됩니다.
다음 포스팅에 계속
📝 결론적으로, val과 var은 변수의 불변성 여부와 관련된 중요한 키워드로, 적절하게 사용하면 코드의 안정성과 유지보수성을 높일 수 있습니다. 가능한 val을 사용하고, 값이 변경되어야 하는 경우에만 var을 사용하는 것이 Kotlin을 Kotlin답게 사용하는 방법이라고 생각합니다.