Kotlin 문법 정리 - 변수

김원기·2026년 4월 23일

Kotlin TIL

목록 보기
1/6

참고한 영상

https://www.youtube.com/watch?v=OtHkb6wAI5U

변수

변수의 종류

코틀린 변수는 두 가지 키워드로 구분된다.

  • val (Value): 읽기 전용(Read-only). 초기화 후 재할당이 불가능하며, Java의 final과 유사하다.

  • var (Variable): 가변(Mutable). 선언 후 값을 자유롭게 변경할 수 있다.

타입 추론

코틀린 변수는 타입 추론을 지원한다
타입 추론이란 자료형(데이터 타입)을 명시하지 않아도 된다는 것을 의미한다.

정확히는 변수 선언 시 자료형이 명시되지 않았다면 대입되는 값을 통해 컴파일러가 타입을 지정하는 것이다.

var name1 = "kotlin" // String으로 추론
var name2 : String = "java" // 명시적 타입 지정

모두 String 으로 인식이 된다는 소리.

단, 타입을 지정해줄 때는 : Type 과 같은 형태로 변수 명 뒤에 붙이면 된다.

타입 추론의 제약

타입 추론은 편리한 기능이지만 다음과 같은 주의점을 숙지해야한다.

초기화 필수

초기화 필수란 무엇일까?

val name1 // (X) 에러 발생 : 타입을 알 수 없음
// name1 = "kotlin" // 애초에 선언 시 초기화 되지 않았다는 오류가 표기

val name2 : String // (O) 선언 시점이 아닌 추후 초기화를 위해 타입을 지정
name2 = "kotlin" // 정상적으로 컴파일

Null Safe

코틀린 변수는 기본적으로 Null을 허용하지 않는다.
Java Spring 에선 Null을 위한 방어코드를 작성하는 일이 빈번한데, Kotlin 에서는 기본적으로
변수에서 부터 null을 허용하지 않기 때문에 조금 더 안전하게 코드 작성이 가능하다.

다만 변수가 null을 허용하기 위해선 타입 뒤에 ?를 붙이는 것으로 null을 허용할 수 있다.

var name1 : String? = "kotlin" // null 허용 

위와 같은 상황일 때 var를 통한 선언으로 가변 변수 적용이 되며
추 후 null 로 값이 변경될 수 있다.

물론 valnull 초기화가 가능하다. 따라서

val name2 : String? = null

과 같이 선언하면 불변이면서 Null인 상태 도 가능하다는 것

간단하게 코드 블럭으로 살펴보자면

var name1 : String? = "kotlin" 
name1 = null // var이므로 재할당 가능 + Nullable이므로 null 가능

val name2 : String? = null 
// name2 = "java" // Error: val은 재할당 불가! (불변이면서 null인 상태 유지)
profile
혼자 공부하는 블로그라 부족함이 많아요 https://www.notion.so/18067a27ac7e4f4790dde645fb3bf3d3?pvs=4

0개의 댓글