inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

서버개발자 과제전형 완벽가이드 - 1편

서킷브레이커 - OpenAPI 추가연동

author 배열이 비어서 오는 경우가 있으니 참고하세요.

해결된 질문

190

아라레

작성한 질문수 38

0

검색어를 http로 했더니

스크린샷 2024-11-20 오후 1.15.12.png.webp

위와 같이 author 배열이 비어 있는 경우가 있어서

 

스크린샷 2024-11-20 오후 1.17.24.png.webp

 

author 의 index 0 으로 값을 꺼내는 경우 IndexOutOfBoundsException 발생하므로 적절한 처리가 필요하니 참고 바랍니다.

java spring spring-boot database

답변 3

1

J Tech

안녕하세요 아라레님!

피드백 주셔서 감사합니다. 이 부분은 빠른 시일내에 보강해서 추가강의에 올려두도록 하겠습니다 🙏

0

하얀종이개발자

private SearchResponse createResponse(Document document) {
    String author = Optional.ofNullable(document.authors())
                            .filter(authors -> !authors.isEmpty())
                            .map(List::getFirst)
                            .orElse("Unknown Author");
    String publisher = Optional.ofNullable(document.publisher())
                               .filter(p -> !p.isBlank())
                               .orElse("Unknown Publisher");
    return SearchResponse.builder()
                         .title(document.title())
                         .author(author)
                         .publisher(publisher)
                         .pubDate(DateUtils.parseOffsetDateTime(document.dateTime()).toLocalDate())
                         .isbn(document.isbn())
                         .build();
  }

요런식으로 createResponse 부분만 Optional을 이용해서 null 처리 해주면 될 것 같네요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 아라레님,

질문하신 내용을 바탕으로, 제공된 JSON 데이터에서 author 배열이 비어 있는 경우가 있음을 확인하셨고, 이로 인해 IndexOutOfBoundsException이 발생할 수 있음을 지적해 주신 점 매우 중요합니다. JSON 데이터에서 배열이 비어 있는 경우, Java 코드에서 이를 처리하지 않으면 런타임 오류가 발생할 수 있습니다.

해결책

  1. null 체크 및 길이 검사: 배열 또는 리스트에서 값을 가져오기 전에 null 체크 및 배열의 길이를 검사하여 예외가 발생하지 않도록 하세요.

  2. Optional 사용: Java 8 이상의 버전을 사용 중이라면 Optional을 사용하여 값이 없는 경우에 대한 처리를 더 우아하게 할 수 있습니다.

예를 들면, 아래와 같은 방식으로 author 배열을 안전하게 처리할 수 있습니다:

String authorName = (document.authors() != null && !document.authors().isEmpty()) 
                    ? document.authors().get(0) 
                    : "Unknown Author";

이러한 접근법을 통해 IndexOutOfBoundsException을 방지할 수 있습니다.

관련된 기존 질문과 답변을 참조하시면 더 많은 정보를 얻으실 수 있습니다. 아래는 관련 링크들입니다:

  1. Error handling when dealing with empty arrays

    • 이 답변에서는 Java에서 빈 배열을 처리하는 다양한 방법에 대해 설명합니다.
  2. NullPointerException 예방과 처리

    • Null 또는 빈 값을 다룰 때 발생할 수 있는 오류에 대한 방지책이 설명되어 있습니다.

이미지를 통해 질문을 더욱 명확히 해주셔서 감사합니다. 저 역시 질문자님의 이해를 돕고자 기존의 답변들을 참고하여 유사한 답변 링크를 추천드렸습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

NaverBookRepository.class 의 위치에 따른 모듈간의 의존성에 대해 질문드립니다.

1

29

2

패키지 vs 모듈 선택 기준

0

49

2

Kotlin 테스트 프레임워크

0

80

2

import 오류?

0

70

2

JSON 역직렬화

0

63

2

Spring Cloud 버전 관리 문제

0

270

2

AsyncExcutor 설정값 질문

0

81

2

17강 api서버구현2 질문있습니다.(ai답변이 이상합니다.)

0

117

2

16강 api서버구현 질문있습니다.

0

76

2

14번쨰 부분 중 질문드립니다..<ai답변으로 해도 안되요>

0

143

2

.

0

143

1

서비스에 @Transactional 애노테이션을 사용하시지 않는 이유가 궁금합니다

0

156

2

NaverClientTest 질문있습니다.

0

179

2

멀티모듈 구성 질문입니다.

0

209

3

멀티모듈 구성 강의에 대해 질문이 있습니다.

0

214

3

SPOCK 의존성 추가 후 Generate Test 옵션 미노출

0

202

3

멀티모듈 지식 습득에 관하여 질문 드립니다.

0

250

2

Async Config 테스트컨트롤러의 코드의 동작이 안되는거 같습니다.

0

223

3

커밋 끊으면서 해주시는거 너무 좋네요.

1

159

2

비즈니스 로직 담당 서비스

0

197

2

모의과제 소개

0

177

2

cqrs에 관하여

1

254

2

멀티모듈 문의드립니다.

0

261

2

클린한 아키텍쳐에 관하여

1

232

2