[kotlin] Null 안전한(Null safety) 데이터 타입 in 코틀린

코틀린은 안전한 Null 처리를 위한 기능을 제공합니다. 이를 통해 변수나 속성이 널(null) 값을 가질 수 있는 지 여부를 명시적으로 표현할 수 있습니다. 이번 글에서는 코틀린에서 제공하는 Null 안전한 데이터 타입에 대해 살펴보겠습니다.

Nullable vs Non-nullable

코틀린에서 변수의 값이 null일 수 있는지 여부는 데이터 타입에 따라 결정됩니다.

Nullable 타입

Nullable 타입은 데이터 타입 뒤에 물음표(?)를 붙여 표시합니다. 예를 들어, String은 null이 될 수 없지만, String?은 null이 될 수 있습니다.

val nonNullString: String = "Hello"
val nullableString: String? = null

안전한 호출(Safe Call) 연산자

Nullable 타입의 값을 사용할 때 매번 null 체크를 하는 것은 번거로울 수 있습니다. 코틀린은 이를 간편하게 처리하기 위해 안전한 호출(Safe Call) 연산자(?.)를 제공합니다.

val length: Int? = nullableString?.length

위 예제에서 nullableString이 null이면 length는 null이 됩니다.

엘비스 연산자

안전한 호출 연산자와 함께 사용되는 엘비스 연산자(?:)는 nullable 변수가 null일 때 대체 값을 지정할 수 있는 연산자입니다.

val result: String = nullableString ?: "Default Value"

위 예제에서 nullableString이 null이면 result는 “Default Value”가 됩니다.

코틀린의 Null 안전한(Null safety) 데이터 타입은 코드를 더 안전하고 명확하게 작성할 수 있도록 도와줍니다. 이를 통해 NullPointerException과 같은 오류를 피하고 안정적인 애플리케이션을 개발할 수 있습니다.

참고 문헌: 코틀린 공식 문서