[Spring Framework - Core] 6. Null Safety

mrcocoball·2023년 12월 3일

Spring Framework

목록 보기
7/20

해당 포스트는 Spring.io의 공식 문서를 포함한 레퍼런스와 코드를 통해 Spring Framework의 구조 / 기술에 대해 확인해보고자 하는 포스트입니다.

1. Null Safety

널 안정성(Null Safety)은 객체 참조가 null 또는 무효 값을 갖지 않도록 하는 객체 지향 프로그래밍 언어 내에서 보장하는 것을 의미합니다.

java에서 가장 많이 발생하는 예외가 NPE(NullPointException) 이라는 말이 있을 정도로 가장 쉽게 발생하는 것이 Null 관련 예외이며 이에 대한 안정성을 확보하기 위해 java에서는 Optional을 제공하고 있고, Kotlin은 언어 자체적으로 널 안정성을 보장하고 있습니다.

2. Spring Framework Null Safety

스프링 프레임워크에서는 API 및 필드의 널 허용 여부를 선언할 수 있도록 어노테이션을 제공하고 있습니다.

  • @Nullable: 특정 매개변수, 반환값 또는 필드가 null이 될 수 있음을 알림
  • @NonNull: 특정 매개변수, 반환값 또는 필드에 null이 존재할 수 없음을 알림
  • @NonNullApi: 특정 매개변수 및 반환값에 대한 기본 의미 체계로 null이 아닌 것을 선언
  • @NonNullFields: 특정 필드의 기본 의미로 null이 아닌 것을 선언

스프링 프레임워크 자체는 타입 인수, 가변 인수 및 배열 요소에 대한 널 허용 여부 선언은 아직 지원되지 않지만 Reactor, Spring Data와 같은 공통 라이브러리는 널 허용 여부 배열을 사용하는 널 안정성 API를 제공하고 있습니다.

Appendix. 출처

https://docs.spring.io/spring-framework/reference/core/null-safety.html

profile
Backend Developer

0개의 댓글