non-null 변수에서 NPE? JSON 파싱과 타입 정의의 함정!
by DD
2년 전
조회수 13
Kotlin에서 non-null로 선언된 변수에서 NullPointerException 발생
Gson, Jackson, Kotlinx 등 JSON 라이브러리의 파싱 과정에서 문제 발생
GraphQL 스키마와 Kotlin 타입 정의 불일치로 인한 문제점 지적
JSON 파싱과 NullPointerException의 관계
JSON 파싱 시, non-null로 정의된 필드에 null 값이 할당될 경우 NullPointerException이 발생한다. 구체적으로 Gson, Jackson, Kotlinx 등 다양한 JSON 라이브러리에서 이러한 문제가 나타난다. 따라서 JSON 파싱 후 타입 검증을 통해 데이터 무결성을 확보해야 한다.
Kotlin 버전 및 when 구문의 동작 차이
오래된 Kotlin 버전에서 when 구문의 동작 방식에 특이점이 존재하여 NPE가 발생했다. Kotlin 1.4.20 버전에서 발생한 문제가 1.5 버전으로 업그레이드하면서 해결되었다. JSON 파싱 시, non-null 필드에 null이 할당되는 경우를 고려하여 안전한 코드 작성이 필요하다.
GraphQL 스키마와 Kotlin 타입 정의의 불일치
GraphQL 스키마에서 nullable로 정의된 필드를 Kotlin에서 non-null로 선언하는 경우 문제가 발생한다. JSON 파싱 과정에서 타입 불일치로 인해 예상치 못한 에러가 발생할 수 있다. 따라서 스키마 기반 코드 생성을 통해 타입 안전성을 확보하고, 데이터 일관성을 유지해야 한다.