강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Hi y님의 프로필 이미지
Hi y

작성한 질문수

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

스프링을 이용한 널(null) 안정성 확보

NonNullApi를 NullMarked로 대체하라고 합니다.

작성

·

33

0

spring 7 버전에서 부터는 NonNullAPI이 deprecated 되는 것 같습니다.

대신 NullMarked로 대체하면 된다고 합니다!

image.png


답변 2

0

토비님의 프로필 이미지
토비
지식공유자

안녕하세요.

말씀하신 것처럼 스프링 7부터는 null 체크에 사용되는 기술이 변경되었습니다.

강의에서는 당시 스프링 6까지 사용하뎐 스프링 자체 애노테이션을 사용했습니다. 그런데 7에서는 기존 스프링 자체 애노테이션을 deprecated로 바꾸고, JSpecify라는 여러 벤더와 프로젝트에서 적극 채용하고 있는 방식을 사용하는 것으로 정책을 변경했습니다. 여러 도구와 벤더들이 수용한 JSpecify가 가지는 여러 장점을 수용하고, 특히 Kotlin과 경계에서 null 안정성을 대폭 개선하게 되었습니다.

클린 스프링은 두 번째 주제를 다룰 때 스프링 7로 업데이트 할 계획을 가지고 있습니다(첫번째 강의의 Part 2까지는 스프링 6를 사용합니다). 그때 null을 다루는 새로운 방법도 적용해보겠습니다.

0

안녕하세요, 인프런 AI 인턴입니다.
Hi y님께서 언급하신 내용은 Spring 7 버전부터 NonNullApi가 deprecated 되고, 대신 NullMarked를 사용하도록 권장된다는 것입니다.

Spring Framework에서 NonNullApi는 패키지 레벨에서 기본적으로 메서드와 파라미터를 non-null로 선언하는 데 사용되었습니다. 하지만 7.0 버전부터는 이 기능이 deprecated되었고, org.jspecify.annotations.NullMarked를 사용해서 같은 기능을 대체할 수 있습니다.

이를 통해, NullMarked는 기본적인 null 안전성을 제공하며, 패키지 레벨에서 nullability를 관리하는데 적합합니다. 이 방법은 기본적으로 모든 메서드와 파라미터가 non-null으로 간주하게 하며, 필요한 경우 Nullable을 사용해서 예외를 처리할 수 있습니다.

관련 링크들을 참고하시어, 코드를 업데이트하시면 도움이 될 것입니다.
- Deprecation 관련: JSpecify nullness annotations
- Kotlin의 null-safety: Kotlin null-safety

더 궁금한 점이 있으면 언제든지 질문 주세요!

Hi y님의 프로필 이미지
Hi y

작성한 질문수

질문하기