inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

외부 API 연동 - OpenAPI & RestClient

네이버 API | '검색 - 책' API 제공 중단

해결된 질문

36

nick

작성한 질문수 42

0

안녕하세요. 강의를 열심히 들으면서 따라해보고 있는데 강의에서 나오는 네이버 API의 '검색 - 책' API 제공이 중단된 것 같습니다.


앞으로 강의가 계속 도서관련해서 나오는 것 같은데 어떻게 하면 좋을까요..?

관련 링크 첨부해드립니다.

java spring spring-boot database

답변 2

0

J Tech

안녕하세요! 강의 열심히 들어주시고, 꼼꼼하게 링크까지 첨부해서 알려주셔서 정말 감사합니다. 말씀해주신 대로 네이버가 7월 31일부로 책 검색 API를 종료한 것이 맞습니다 (공식 대체 API도 없는 완전 종료로보이네요).

이에 대응해서 소스코드 저장소에 네이버 API와 동일한 스펙의 Mock 서버(mock-naver-api 모듈)를 추가했습니다. 최신 코드를 받으신 후:

  1. 네이버 API 키 발급 부분은 건너뛰시고 (이제 키가 필요 없습니다)

  2. ./gradlew :mock-naver-api:bootRun 으로 Mock 서버를 먼저 띄운 다음

  3. 기존처럼 search-api를 실행하시면

이후 강의는 영상 그대로 따라 하실 수 있습니다. 요청/응답/에러 스펙을 네이버와 동일하게 만들어두어서 FeignClient, 응답객체, 에러 디코더, 서킷브레이커 챕터 모두 코드 변경 없이 동작합니다. 카카오 API는 정상 운영 중이므로 fallback 실습도 그대로입니다. 5번 챕터에 소스코드와 강의노트를 첨부해두었습니다

image.png

자세한 내용은 저장소의 MOCK-NAVER-API.md에 정리해두었고, 전체 수강생 대상 공지도 함께 올렸습니다. 제보 다시 한번 감사드립니다. 진행하시다가 막히는 부분 있으면 언제든 질문 남겨주세요!

0

nick

감사합니다!
그저 안 되는 것을 질문드린 것뿐인데 도움이 되었다니 저도 뿌듯하네요!
좋은 하루 보내세요!

0

인프런 AI 인턴

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

nick님, 확인해 보니 네이버의 책 검색 API 제공 중단으로 인해 강의의 기존 예제를 그대로 실행하기 어려운 상황입니다.

강의 실습은 다음과 같은 방법으로 진행해 보실 수 있습니다.

  1. 도서 검색 API를 다른 서비스로 대체합니다.

    • 카카오 도서 검색 API
    • Google Books API
    • 알라딘 Open API
    • Open Library API
  2. 강의 코드에서 외부 API 호출 부분만 교체합니다.

    • 검색어를 전달하는 컨트롤러 구조
    • 서비스 계층
    • 도서 응답을 내부 DTO로 변환하는 구조
    • 도서 목록을 반환하는 API 응답 구조

이때 외부 API의 응답 형식이 서로 다르므로, 서비스 계층에서 애플리케이션 내부 DTO로 변환하면 이후 API가 변경되어도 수정 범위를 줄일 수 있습니다.

예를 들어 다음과 같이 외부 API 응답과 내부 응답을 분리하는 방식입니다.

public record BookResponse(
        String title,
        String author,
        String isbn,
        String publisher
) {
}

카카오나 Google Books API를 사용하더라도 각 API의 응답을 BookResponse로 변환하면 강의의 나머지 코드는 최대한 유지할 수 있습니다.

단순히 강의 흐름만 따라가려는 경우에는 실제 API 대신 JSON 형식의 목업 데이터를 만들어 사용해도 됩니다.

{
  "title": "스프링 부트 입문",
  "author": "홍길동",
  "isbn": "1234567890",
  "publisher": "출판사"
}

다만 강의에서 네이버 API의 인증 방식이나 응답 필드에 의존하는 부분이 있다면, 해당 강의의 최신 공지나 질문 게시판에서 강사님의 대체 실습 안내도 함께 확인해 보시는 것이 좋습니다.

참고하신 네이버 공지 링크입니다.

handleBindException 의 기대의도가 방향이 맞는지 궁금합니다.

0

67

2

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

1

81

2

패키지 vs 모듈 선택 기준

0

94

2

Kotlin 테스트 프레임워크

0

118

2

import 오류?

0

106

2

JSON 역직렬화

0

103

2

Spring Cloud 버전 관리 문제

0

317

2

AsyncExcutor 설정값 질문

0

117

2

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

0

154

2

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

0

101

2

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

0

194

2

.

0

201

1

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

0

192

2

NaverClientTest 질문있습니다.

0

233

2

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

0

267

3

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

0

268

3

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

0

259

3

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

0

300

2

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

0

270

3

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

0

231

3

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

1

181

2

비즈니스 로직 담당 서비스

0

242

2

모의과제 소개

0

198

2

cqrs에 관하여

1

282

2