강의

멘토링

로드맵

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

codesszz101님의 프로필 이미지
codesszz101

작성한 질문수

Optional , NullpointException 관련 Error

작성

·

105

0

안녕하세요

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

섹션 3 ) 회원 관리 예제 - 백엔드 개발

강의 내용을 따라 하던 중

Optional , NullpointException 관련 Error 가 났는데

오류의 원인을 찾을 수 없어 문의글 남깁니다

강사님이 작성한 코드와 다른점이 없는것같은데 뭐가 문제일까요??

 

 

 

 

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

codesszz101님, 말씀하신 Optional, NullPointerException 관련 오류를 해결하시려면 각 메소드의 리턴값이 null인 경우를 안전하게 처리하는 방법을 고려해야 합니다. Spring Data의 Optional을 사용하는 경우, OptionalisPresent() 메소드를 통해 값의 존재 여부를 확인하거나, ifPresent() 등을 활용하여 null이 아닐 때만 로직을 수행하도록 안전하게 코딩하는 것이 중요합니다.

또한, Kotlin 기반의 레포지토리에서 null 가능성을 다룰 때는, null이 허용되는 경우에는 함수의 리턴 타입을 ?를 붙여 null을 허용하도록 명시하여야 하며, 이러한 Kotlin의 null 관련 제약 조건을 런타임에서 확인하려면 kotlin-reflect JAR를 프로젝트에 포함하여야 한다는 점을 참고하세요.

Spring Data JPA에서는 Java 8의 Optional을 사용해 값의 부재 가능성을 명시하며, 이를 활용하여 값이 존재하지 않을 때는 Optional.empty를 리턴하도록 할 수 있습니다. 또한, Spring Framework의 @NonNull@Nullable 어노테이션을 사용하여 메소드 파라미터나 반환값의 null 가능성을 명시할 수 있습니다. @NonNullApi를 패키지 레벨에 적용하면, 기본적으로 메소드의 파라미터 및 리턴 값에 null이 허용되지 않으며, 개별 메소드에 대해 @Nullable을 사용하여 null을 허용하도록 설정할 수 있습니다.

src: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.nullability.kotlin

src: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.nullability.annotations

가능하다면 실제 오류 메시지나 자세한 코드 상황을 제공해주시면 보다 구체적인 해결 방안을 제안드리는 데 도움이 될 것입니다.

codesszz101님의 프로필 이미지
codesszz101

작성한 질문수

질문하기