[kotlin] 널 포인터 예외와 널 안전성의 차이점

코틀린은 널 포인터 예외를 방지하기 위해 널 안전성 기능을 제공합니다. 널 포인터 예외와 널 안전성의 차이는 어떤 것일까요? 이 블로그 포스트에서는 두 가지의 차이점을 설명하고, 각각의 특징을 비교하겠습니다.

널 포인터 예외 (NPE)

널 포인터 예외는 주로 Java와 같은 언어에서 발생하는 오류입니다. 예상치 못한 순간에 null 값을 참조하여 발생하는 예외로, 프로그램이 실행 중단될 수 있습니다.

val name: String? = null
val length = name.length // null 포인터 예외 발생

위의 예제에서 name이 널 값이므로 length에 접근할 때 널 포인터 예외가 발생합니다.

널 안전성

코틀린은 널 안전성을 지원하여 이러한 예외를 방지합니다. 이를 통해 컴파일 시점에서 잠재적인 널 포인터 예외를 방지할 수 있습니다.

val name: String? = null
val length = name?.length // length는 null이 될 수 있음

위의 예제에서 ?. 연산자를 사용하여 name이 널이면 length도 널이 되게끔 처리하였습니다. 이로써 널 값에 안전하게 접근할 수 있습니다.

비교 및 결론

널 포인터 예외는 런타임에 발생하는 오류이며, 널 안전성은 컴파일 시점에서 잠재적인 오류를 방지하는 기능입니다. 따라서 코틀린은 널 안전성을 통해 코드의 안정성을 높이고, 널 포인터 예외를 방지할 수 있습니다.

코틀린 개발자로서 안전한 코드 작성을 위해 널 안전성을 잘 활용하는 것이 중요합니다.

이렇듯, 널 포인터 예외와 널 안전성은 프로그래밍 언어에서 널 값에 대한 다루임에 있어 중요한 차이점을 가지고 있습니다.

코틀린 공식 문서에서 널 안전성에 대한 자세한 내용을 확인할 수 있습니다.