ChatGPT와 네이버 API로 실시간 뉴스 검색 & 트렌드 분석 마스터하기
생성형 AI는 학습 시점 이후의 최신 정보를 반영하지 못하는 한계가 있습니다. 실시간 뉴스·트렌드에는 정확한 답변이 어렵기 때문에, 외부 API로 실시간 데이터를 연동해 보완하는 것이 필요합니다. 네이버 오픈 API는 뉴스 검색·검색어 트렌드를 제공하므로, ChatGPT 등과 함께 쓰면 시의적절한 정보를 제공하는 앱을 만들 수 있습니다.
💡 이런 분들께 추천합니다
- 실시간 뉴스·트렌드 데이터를 활용한 앱을 만들고 싶은 분
- 네이버 오픈 API를 처음 사용하는 분
- ChatGPT와 API 연동으로 LLM 응답을 보강하고 싶은 분
🧩 개념 설명 / 배경 지식
네이버 오픈 API
뉴스 검색, 검색어 트렌드(데이터랩) 등 다양한 API를 제공합니다. 인증 정보(Client ID, Client Secret)로 호출하며, 일별 호출 제한이 있으므로 공식 문서를 확인해 두는 것이 좋습니다.
활용 도구
- 생성형 AI: ChatGPT(유료 플랜) 등
- 개발 환경: VS Code + Python 또는 Google Colab(환경 구성이 어려울 때 활용)
🔍 본론: 뉴스 검색 & 트렌드 분석
1. 뉴스 검색 API
- 키워드와 건수를 입력받아 네이버 뉴스 검색 API를 호출하고, 검색 결과에서 링크를 제외한 뉴스 항목을 반환해 깔끔한 데이터로 활용할 수 있습니다.
2. 검색어 트렌드 API(데이터랩)
- 일자, 검색어, 연령, 성별 등 조건을 입력받아 검색 트렌드 결과를 조회할 수 있으며, 특정 기간 트렌드 분석에 활용할 수 있습니다.
3. 실행 과정
#### 네이버 뉴스 검색 API 예제 코드
# 네이버 오픈 API를 활용하여 뉴스 검색 결과를 반환하는 함수
def search_naver_news(search_keyword, news_count):
# 네이버 API 클라이언트 정보 가져오기 (.env 파일에 저장된 API ID와 Secret 사용)
client_id = os.getenv('NAVER_CLIENT_ID')
client_secret = os.getenv('NAVER_CLIENT_SECRET')
# API 호출 URL 구성 (뉴스 검색 API 엔드포인트)
api_url = f"https://openapi.naver.com/v1/search/news.json?query={search_keyword}&display={news_count}&sort=date"
# 요청 헤더에 인증 정보 추가
headers = {
'X-Naver-Client-Id': client_id,
'X-Naver-Client-Secret': client_secret
}
# API 호출 및 응답 처리
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
content = response.json()
# 'link' 필드를 제외한 뉴스 정보 반환
items = [
{key: value for key, value in item.items() if key != 'link'}
for item in content['items']
]
return items
else:
print(f"\n[Error] Failed to fetch data:\nStatus Code: {response.status_code}\nResponse: {response.text}\n")
raise Exception(f"Failed to fetch data. Status code: {response.status_code}")
실행 결과 예시 이미지를 통해 데이터 출력 형태를 확인할 수 있습니다.

네이버 검색어 트렌드 API 예제 코드
# 네이버 데이터랩 API를 활용하여 검색 트렌드 데이터를 반환하는 함수
def search_naver_datalab(keywords):
# API 클라이언트 정보 가져오기
client_id = os.getenv('NAVER_DATALAB_CLIENT_ID')
client_secret = os.getenv('NAVER_DATALAB_CLIENT_SECRET')
api_url = "https://openapi.naver.com/v1/datalab/search"
headers = {
'X-Naver-Client-Id': client_id,
'X-Naver-Client-Secret': client_secret,
'Content-Type': 'application/json'
}
# API 요청에 사용할 데이터 구성
request_body = {
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"timeUnit": "date",
"keywordGroups": [
{
"groupName": "검색 트렌드",
"keywords": keywords
}
],
"device": "pc",
"ages": ["1", "2"],
"gender": "f"
}
response = requests.post(api_url, headers=headers, data=json.dumps(request_body))
if response.status_code == 200:
content = response.json()
return content['results']
else:
print(f"\n[Error] Failed to fetch data:\nStatus Code: {response.status_code}\nResponse: {response.text}\n")
raise Exception(f"Failed to fetch data. Status code: {response.status_code}")
실행 결과 예시 이미지를 통해 트렌드 데이터의 시각적 출력도 확인할 수 있습니다.

⚠️ 주의사항
- API 인증 정보(Client ID, Secret)는
.env등에 저장하고 코드에 노출하지 마세요. 호출 제한(뉴스 검색 25,000회/일, 데이터랩 1,000회/일 등)을 확인해 사용량을 관리하세요.
✅ 실습 / 적용 예시
Step 1. 환경 준비
Python + requests, python-dotenv 설치. 네이버 개발자 센터에서 애플리케이션 등록 후 Client ID·Secret 발급, .env에 저장.
Step 2. 뉴스 검색
search_naver_news(keyword, count)로 뉴스 검색 API 호출. 응답에서 link 제외한 항목만 사용해 데이터 정제.
Step 3. 검색어 트렌드
search_naver_datalab(keywords)로 데이터랩 API 호출. startDate, endDate, timeUnit, keywordGroups 등으로 기간·키워드 설정 후 시각화.
🚧 트러블슈팅 / 자주 묻는 질문
Q. API 호출 시 401/403 오류가 나요.
A. 헤더에 X-Naver-Client-Id, X-Naver-Client-Secret를 정확히 넣었는지, 환경 변수가 로드되었는지 확인하세요.
Q. 트렌드 API 요청 본문 형식이 어렵다.
A. 공식 문서의 통합 검색어 트렌드 API 레퍼런스를 참고해 keywordGroups, timeUnit 등을 맞추면 됩니다.
📝 마무리
- 네이버 오픈 API로 최신 뉴스와 검색어 트렌드를 확보해 실시간 정보 기반 앱을 만들 수 있습니다.
- 인증 정보 관리와 호출 제한을 지키면 안정적으로 데이터를 활용할 수 있습니다.
- ChatGPT 등 LLM과 연동해 “최신 뉴스 요약”, “트렌드 기반 인사이트” 같은 기능으로 확장해 보시면 좋습니다.
참고자료
- 네이버 오픈 API 관련 문서 및 가이드: https://developers.naver.com/products/intro/plan/plan.md
| API명 | 설명 | 호출제한 |
| 검색 | 네이버 블로그, 이미지, 웹, 뉴스, 백과사전, 책, 카페, 지식iN 등 검색 | 25,000회/일 |
| 네이버 로그인 | 외부 사이트에서 네이버 로그인 기능 구현 | 없음 |
| 네이버 회원 프로필 조회 | 네이버 회원 이름, 이메일 주소, 휴대전화번호, 별명, 성별, 생일, 연령대, 출생연도, 프로필 조회 | 없음 |
| CLOVA Face Recognition | 입력된 사진을 입력받아 얼굴윤곽/부위/표정/유명인 닮음도를 리턴 | 1,000건/일 |
| 데이터랩(검색어트렌드) | 통합검색어 트렌드 조회 | 1,000회/일 |
| 데이터랩(쇼핑인사이트) | 쇼핑인사이트 분야별 트렌드 조회 | 1,000회/일 |
| 캡차(이미지) | 자동 입력 방지용 보안 이미지 생성 및 입력값 비교 | 1,000회/일 |
| 캘린더 | 로그인한 사용자 캘린더에 일정 추가 가능 | 5,000회/일 |
| 카페 | 특정 네이버 카페 가입하기 | 50회/일 |
| 카페 | 네이버 회원이 가입한 카페 게시판에 글 쓰기 | 200회/일 |
| 단축URL | 입력된 URL을 me2.do 형태의 짧은 URL로 변환 | 25,000회/일 |
| 공유하기 | 네이버 블로그, 카페 공유하기 | 없음 |
댓글남기기