코틀린의 기능 중 가장 혁신적이라고 여겨지는 것 중 하나가 옵셔널(Optional) 개념이다. 코틀린에서 옵셔널이라는 말을 사용하기보단, 자바에서 사용하던 Nullable(널 가능)과 NotNull(널 불가능)이라는 말을 사용한다. 자바에서 Exception의 상담 부분을 차지하던 NullPointerException을 해결하기위해 @Nullable과 @NotNull이라는 Annotation을 만들었었지만, 널리 사용되진 않았었다. 코틀린에서는 변수에 대한 기본 타입을 NotNull로 정하고 널 값을 가질 수 있는 Nullable 타입엔 명시적으로 표시하도록해 Null에 대한 처리에 강제성을 더했다.(스위프트와 동일한 부호인 '?'를 사용함) 예를 들어보자. 자바에 다음과 같은 메서드가 있다. int s..