val, var 키워드

var, var 키워드


코틀린에서 ‘val’ 키워드를 사용하면 Java의 ‘final’ 키워드를 붙인 것과 같이 ‘불변 변수’가 됩니다.
반면, ‘var’ 키워드는 “변경할 수 있다”를 의미합니다.

val, var 키워들의 의미를 표로 간략히 정리하면 다음과 같습니다.

val
  • 변경 불가능한 참조를 저장하는 변수로서, 특정한 값을 의미하는 ‘Value’를 나타냅니다.
  • val로 선언하면 초기화 이후 ‘변수의 재 대입’이 불가능합니다.
  • Java에서 ‘final’ 키워드로 선언하는 것과 같습니다.
var
  • 변경 가능한 참조입니다. 변경 가능하다는 의미의 ‘Variable’을 나타냅니다.
  • Java의 일반적인 변수에 해당합니다.

코틀린에서 변수를 선언하는 키워드 자체로 변수의 변경 가능성을 구분짓는 이유는 프로그래밍에서 대부분의 경우 변수의 값을 변경할 필요가 없고, 변수를 불변으로 하는 경우 여러 면에서 유리하다는 것을 알게 되었기 때문입니다.

변수를 사용할 때 대부분의 경우에는 변수의 최초 값 대입 이후로 굳이 값을 변경하지 않는 경우가 많습니다. 특히 임시적으로 사용되는 지역변수, 함수의 파라미터와 같은 경우 대부분 값을 변경하지 않습니다. 반면, 변수를 불변으로 선언할 경우, ‘메모리, 멀티스레드 안전성, 함수형 코드’ 등 얻을 수 있는 이점이 많습니다.

때문에 코틀린은 가급적 모든 변수를 ‘val’로 선언하여 불변으로 설정하고, 필요한 경우에만 ‘var’를 사용하도록 권장하고 있습니다.

변수의 타입 추론


코틀린은 컴파일 시점에 타입을 결정하는 정적 타입언어입니다.
자바스크립트나 파이썬 같은 동적 타입 언어와는 다릅니다.
동적 타입 언어는 변수의 타입에 상관없이 코딩하기 때문에 작성이 쉽지만, 사전에 타입을 체크하지 않기 때문에 프로그램 실행 중 타입으로 인한 에러가 발생할 수 있습니다.
반면, 정적 타입 언어는 컴파일 시에 타입 캐스팅 문제를 확인할 수 있고, 실행이 빠르지만, 반드시 변수를 선언할 때 타입을 적어야 하므로 코드 작성 시에 타입을 신경 써야 하는 불편한 점이 있습니다.

😕

About the author

bogn

View all posts

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다