패스잇
모바일 개발 · 기초

Kotlin의 Null Safety 기능은 무엇이며, 이를 위해 사용되는 '?' (nullable type)와 '!!' (non-null assertion operator)의 역할과 사용 시 주의점에 대해 설명해주세요.

힌트 · 널 포인터 예외 방지를 위한 기능입니다. '?'는 널이 될 수 있음을 명시하고, '!!'는 널이 아님을 강제하여 위험하게 사용될 수 있습니다.

NullPointerExceptionnullable typenon-null assertion안전한 호출 연산자컴파일 시점

모범답안

Kotlin의 Null Safety는 널 포인터 예외(NullPointerException)를 방지하기 위한 기능입니다. Kotlin은 변수가 널 값을 가질 수 있는지 여부를 명확히 구분합니다.

'?' (nullable type)는 변수가 널 값을 가질 수 있음을 나타냅니다. 예를 들어 String?은 String 타입이거나 null일 수 있다는 의미입니다. 이 변수를 사용할 때는 널 체크를 하거나 안전한 호출 연산자(?. )를 사용해야 합니다.

'!!' (non-null assertion operator)는 변수가 널이 아님을 강제로 단언하는 연산자입니다. 만약 '!!'를 사용했는데 실제 변수 값이 널이라면 NullPointerException이 발생합니다. 따라서 '!!'는 정말로 널이 될 가능성이 없다고 확신할 때만 신중하게 사용해야 합니다. 잘못 사용하면 Kotlin의 Null Safety 장점을 무효화하고 예외를 발생시킬 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Android / Kotlin 면접 질문

← Android / Kotlin 면접 질문 전체 보기