Null Safety in Java with JSpecify and NullAway by Sébastien Deleuze @ Spring I/O 2025
- Java에서 NullPointerException을 방지하기 위해 JSpecify와 NullAway라는 두 가지 도구를 사용한다. 🛠️
- JSpecify는 Java 타입 시스템에서 nullness를 명시적으로 만들기 위한 표준을 제공한다. 💡
- JSpecify는
@Nullable
, @NonNull
, @NullMarked
, @NullUnmarked
네 가지 어노테이션을 사용한다. 🏷️
@NullMarked
어노테이션을 사용하여 패키지 수준에서 기본적으로 모든 타입이 non-null임을 선언할 수 있다. 📦
- NullAway는 Error Prone의 확장으로, JSpecify 어노테이션을 기반으로 nullness 관련 오류를 컴파일 시점에 검사한다. ✅
- Java 구문 규칙에 따라
@Nullable
어노테이션은 완전한 유형 이름이나 중첩된 유형 이름의 마지막 점 뒤에 위치해야 한다. 📍
- NullAway를 사용하여 빌드 시에 nullness 관련 오류를 감지하고 빌드를 실패시킬 수 있다. 🛑