첫 번째 트러블 슈팅
Problem
네이버 뉴스 API를 사용하는데 API 일일 허용량이 25000으로 제한적입니다.
Reason
API 일일 허용량 제한적이기 때문에 사용자들이 요청할 때마다 API를 요청하면 일일 허용량이 부족 하다고 판단됩니다.
Try to solve
API의 제한적인 일일 허용량을 해결하기 위해 서버에서 API 내용을 저장하고 사용자가 뉴스 데이터를 요청하면 서버에 저장한 데이터를 보여주는 방식으로 했습니다.
하지만 이렇게 하더라도 여러가지 문제가 발생합니다.
- 키워드의 제한입니다.
- 네이버 뉴스 API를 가져오기 위해서는 검색어가 필요합니다. 하지만 Bud 앱 사용자의 검색어에 맞춰서 하나하나 API를 요청할 수 없습니다.
Alternative
세가지 정도의 대안이 있습니다.
- 키워드를 직접 서버 코드에 작성해두고 뉴스 API를 호출 할 때 해당 키워드들을 통해 API를 요청하는 방식
(나아가서는 사용자가 입력하는 검색어를 저장하여 가장 인기있는 검색어를 추가 혹은 변경 해주면 좋을것 같습니다.)
- 사용자가 검색하는 데이터를 데이터베이스에 저장하고 Scheduler로 호출 될 때마다 가장 인기 있는 검색어 10개~20개를 추려서 해당 검색어로 API를 호출하는 방식
- 사용자가 검색어를 입력하고 저장된 뉴스 데이터를 호출 할 때 데이터가 없으면 해당 검색어로 네이버 뉴스 API를 요청해서 뉴스 데이터를 저장하고 데이터를 보내주는 방식
현재는 첫 번째 대안을 사용하고 있습니다.
두 번째 트러블 슈팅
Problem
네이버 뉴스 API를 크롤링 해서 뉴스의 상세 데이터를 파싱하고 저장해야 하는데, 뉴스 API에서 보내주는 사이트마다 HTML 구조가 다른 문제가 발생했습니다.