홍드로이드의 야매코딩

[ Kotlin ] 코틀린 Null-Safety (Nullable, Non-null) 란? 본문

Android Kotlin

[ Kotlin ] 코틀린 Null-Safety (Nullable, Non-null) 란?

홍드로이드 2023. 2. 2. 12:34

Kotlin의 Null Safety 기능은 개발자가 null 포인터 예외("십억 달러의 실수"라고도 함)를 방지하는 데 도움이 되는 언어의 메커니즘입니다.

 

이 기능을 사용하면 변수가 null 값을 보유할 수 있는지 여부를 명시적으로 선언할 수 있습니다.

 

변수가 null을 허용하지 않는 경우 null 값을 할당하려고 하면 컴파일 타임 오류가 발생하여 코드가 실행되기 전에 null 가능성 문제를 더 쉽게 파악하고 수정할 수 있습니다.

 

반면에 변수가 null을 허용하는 경우 사용하기 전에 null 여부를 확인해야 런타임에 null 포인터 예외를 방지할 수 있습니다.

 

// Non-nullable variable
var name: String = "John Doe"

// Compile-time error, because you can't assign a null value to a non-nullable variable
// name = null

// Nullable variable
var middleName: String? = "Michael"

// It's allowed to assign a null value to a nullable variable
middleName = null

// To use a nullable variable, you have to check for nullity before accessing it
println(middleName?.length)  // Output: null

위의 예에서 name변수는 non-nullable 로 선언되었으며 해당 변수에 null 값을 할당하려고 하면 컴파일 타임 오류가 발생합니다.

반면에 middleName변수는 nullable 로 선언 String? 되므로 null 값을 할당할 수 있습니다.

nullable 변수를 사용하려면 println문에 설명된 대로 액세스하기 전에 null 여부를 확인해야 합니다.

null 여부를 확인하지 않고 nullable 변수에 액세스하려고 하면 코드가 컴파일되지 않습니다.

Comments