안드로이드 개발을 하면서 코틀린을 배울 필요가 생겨나서 요즘 계속 코틀린에 대한 공부를 하고 있다. 코틀린 코드를 보다면서 간혹 아래와 같은 코드가 보이게 된다. val languageName: String? = null 위의 코드 예제처럼 변수를 선언할 때 타입 뒤에 ?를 붙이는 경우이다. ?의 의미는 languageName 변수를 String 으로 선언을 하는데, String 의 값도 가질 수 있고, Null 값을 가질 수도 있다는 의미다. 그래서 만약 아래와 같이 코딩을 한다면 컴파일 시 에러가 발생한다. // Fails to compile val languageName: String = null 이런 경우의 의미는 타입 뒤에 ?가 없기 대문에 languageName은 Null 값을 가질 수 없다...