본문 바로가기
Programming/삽질일기

[Kotlin, jackson] non-null 객체에 런타임에 null 초기화하는 문제

by kghworks 2024. 6. 25.

 

위 테스트는 성공한다

 

 코틀린은 compile-time에 변수의 null 여부를 검사할 수 있는 null-safety 기능을 제공한다. 그러나 run-time에 null이 초기화되는 것은 체크할 방도가 없다. 따라서 위 테스트는 말끔하게 통과하는 불상사가 일어난다.

 

 코틀린으로 스프링 개발할 때 jackon 라이브러리에서 필드값들을 (역) 직렬화 작업을 하면서 위 현상을 보고, NPE까지 터지는 일이 발생한다. 

 

다행히도 jackson에서 아래 같은 애노테이션을 지원한다.

@JsonSetter의 속성 contentNulls 사용
JsonSetter를 사용한 테스트

댓글