안녕하세요 케이입니다.

지난 글에서는 뉴스 자동수집 시스템에서 API가 무엇이고 왜 필요한지 알아봤습니다.

이번에는 조금 더 구체적으로 네이버 검색 API를 이용하면 뉴스 데이터를 어떤 방식으로 가져올 수 있는지 알아보겠습니다.

제가 만들고 있는 개인용 뉴스 자동수집 텔레그램 봇의 핵심은 원하는 키워드의 뉴스를 자동으로 검색하는 것입니다.

예를 들어 매일 “인공지능”, “ChatGPT”, “AI 자동화” 같은 단어를 직접 검색하지 않고 프로그램이 대신 검색하도록 만드는 것입니다.

이때 사용할 수 있는 방법 중 하나가 네이버 검색 API입니다.

처음에는 검색 API라고 하면 복잡한 코드를 먼저 생각하기 쉽지만, 기본 원리는 생각보다 단순합니다.

프로그램이 검색어를 네이버 검색 API에 전달하면 네이버에서 해당 검색어와 관련된 뉴스 데이터를 프로그램이 처리할 수 있는 형태로 돌려주는 방식입니다.

네이버 검색 API란 무엇인가

네이버 검색 API는 네이버의 여러 검색 결과를 프로그램에서 활용할 수 있도록 제공하는 기능입니다.

현재는 NAVER API HUB를 통해 뉴스, 블로그, 웹문서, 카페 등 여러 종류의 검색 기능을 사용할 수 있습니다.

우리가 이번 뉴스 자동수집 시스템에서 사용하는 것은 뉴스 검색 기능입니다.

일반적으로 네이버에서 뉴스를 검색하려면 검색창에 원하는 단어를 직접 입력해야 합니다.

하지만 자동수집 시스템에서는 사람이 검색하는 대신 프로그램이 검색어를 전달합니다.

예를 들어 다음과 같은 키워드가 있다고 생각해보겠습니다.

생성형 AI

프로그램이 이 검색어를 뉴스 검색 API에 전달하면 관련 뉴스 검색 결과가 데이터 형태로 돌아옵니다.

이 데이터를 Google Apps Script에서 정리하고 텔레그램으로 전송하면 자동 뉴스 수집 시스템을 만들 수 있습니다.

네이버 뉴스 검색 API의 기본 흐름

뉴스 자동수집 시스템에서 네이버 검색 API가 작동하는 과정은 크게 어렵지 않습니다.

전체적인 흐름은 다음과 같습니다.

검색 키워드를 정합니다.

Google Apps Script가 네이버 검색 API에 검색 요청을 보냅니다.

네이버 검색 API가 관련 뉴스 데이터를 반환합니다.

Google Apps Script가 필요한 내용을 선택합니다.

선택한 내용을 텔레그램 봇으로 전송합니다.

결국 네이버 검색 API는 전체 시스템에서 뉴스를 찾아주는 역할을 담당합니다.

텔레그램 봇은 뉴스를 검색하는 기능이 없습니다.

텔레그램 봇은 검색된 결과를 사용자에게 전달하는 역할을 합니다.

두 기능 사이에서 Google Apps Script가 데이터를 받아서 정리하고 전달하는 역할을 하게 됩니다.

뉴스 검색을 사용하려면 먼저 Application이 필요하다

네이버 검색 API를 사용하기 위해서는 먼저 API를 사용할 수 있는 환경을 준비해야 합니다.

현재는 NAVER API HUB에서 Application을 등록하고 필요한 검색 API를 선택하는 방식으로 사용할 수 있습니다.

Application이라고 해서 별도의 스마트폰 앱을 만들어야 하는 것은 아닙니다.

API를 어떤 프로젝트에서 사용할 것인지 등록하는 관리 단위라고 이해하면 편합니다.

Application을 등록하면 API를 호출할 때 필요한 인증정보를 확인할 수 있습니다.

이 인증정보는 이후 Google Apps Script에서 네이버 검색 API에 요청을 보낼 때 사용합니다.

앞에서 텔레그램 봇을 만들면서 Bot Token이 필요했던 것과 비슷합니다.

텔레그램에서는 Bot Token으로 봇을 인증하고, 네이버 검색 API에서는 별도의 API 인증정보를 사용합니다.

Client ID와 Client Secret은 어떤 역할을 할까

Application 등록이 완료되면 API를 사용할 때 필요한 인증정보를 확인할 수 있습니다.

대표적인 것이 Client ID와 Client Secret입니다.

쉽게 설명하면 네이버 검색 API에 요청을 보낼 때 “등록된 사용자가 보내는 요청”이라는 것을 확인하기 위한 정보입니다.

Client ID는 Application을 식별하는 정보라고 생각할 수 있습니다.

Client Secret은 인증 과정에서 함께 사용하는 중요한 정보입니다.

두 값 모두 외부에 공개하지 않는 것이 좋습니다.

특히 실제 자동화 과정을 블로그에 작성하면서 화면을 캡처할 경우 Client Secret이 노출되지 않았는지 반드시 확인하는 것이 좋습니다.

실제 코드를 설명할 때도 인증정보를 그대로 표시하기보다 다음과 같은 형태로 작성하는 것이 안전합니다.

YOUR_CLIENT_ID

YOUR_CLIENT_SECRET

나중에 실제 프로그램에서만 본인의 인증정보로 변경하면 됩니다.

검색어는 프로그램에서 어떻게 전달할까

뉴스 검색 API를 사용할 때 가장 중요한 정보는 검색어입니다.

예를 들어 제가 “AI 자동화”와 관련된 뉴스를 찾고 싶다고 가정해보겠습니다.

일반적인 검색에서는 네이버 검색창에 AI 자동화를 직접 입력합니다.

API에서는 프로그램이 이 검색어를 요청 데이터에 포함해서 전달합니다.

검색어는 보통 Query 또는 query라는 이름으로 표현됩니다.

즉 다음과 같은 의미입니다.

query = AI 자동화

여기에서 query는 어떤 내용을 검색할 것인지 지정하는 값입니다.

앞으로 Google Apps Script에서 검색 기능을 만들 때도 이 검색어 부분을 변경해서 원하는 뉴스를 가져올 수 있습니다.

AI 자동화 대신 제약 산업, 전기자동차, 반도체, 로봇 같은 키워드를 입력하면 해당 분야의 뉴스를 검색하는 방식으로 활용할 수 있습니다.

검색 결과는 어떤 형태로 받을까

사람이 네이버에서 검색하면 화면에 뉴스 목록이 나타납니다.

하지만 API를 통해 검색하면 화면 형태가 아니라 프로그램이 처리할 수 있는 데이터 형태로 결과를 받습니다.

검색 결과에는 여러 개의 뉴스가 포함될 수 있습니다.

각 뉴스에는 제목이나 설명 등 여러 정보가 구분되어 들어갑니다.

예를 들어 개념적으로는 다음과 같이 생각할 수 있습니다.

뉴스 1

제목

기사 정보

설명

게시 시간

뉴스 2

제목

기사 정보

설명

게시 시간

뉴스 3

제목

기사 정보

설명

게시 시간

Google Apps Script에서는 이 데이터 가운데 필요한 부분만 선택해서 사용할 수 있습니다.

처음에는 뉴스 제목과 간단한 설명 정도만 가져오는 방식으로 시작하는 것이 좋습니다.

JSON이라는 데이터 형식을 알아두면 좋다

뉴스 검색 API를 공부하다 보면 JSON이라는 단어를 자주 볼 수 있습니다.

처음에는 새로운 프로그래밍 언어처럼 보일 수 있지만 그렇게 어렵게 생각할 필요는 없습니다.

JSON은 여러 정보를 일정한 규칙에 따라 정리해서 전달하는 데이터 형식입니다.

예를 들어 한 개의 뉴스에 제목, 설명, 게시 날짜가 있다고 생각해보겠습니다.

사람이 보기에는 다음과 같습니다.

제목: 새로운 AI 기술 발표

설명: 새로운 생성형 AI 기술이 발표되었습니다.

게시일: 특정 날짜

JSON에서는 이러한 정보가 각각 구분된 데이터로 전달됩니다.

Google Apps Script는 이 데이터를 읽고 제목만 선택하거나 설명까지 함께 가져오는 방식으로 처리할 수 있습니다.

결국 JSON을 처음부터 자세하게 공부할 필요는 없습니다.

처음에는 “API가 보내주는 정보를 프로그램이 읽기 좋게 정리한 형식” 정도로 이해해도 충분합니다.

원하는 뉴스 개수를 조절할 수 있다

뉴스 자동수집 시스템에서는 한 번에 너무 많은 뉴스를 받을 필요가 없을 수 있습니다.

예를 들어 키워드 하나마다 뉴스가 수십 개씩 텔레그램으로 들어오면 오히려 확인하기 불편합니다.

검색 API에서는 요청 조건을 이용해서 가져올 결과의 개수를 조절할 수 있습니다.

예를 들어 하나의 키워드에서 최신 뉴스 몇 개만 가져오도록 설정할 수 있습니다.

개인용 뉴스 자동수집을 만들 때는 처음부터 많은 결과를 가져오기보다 필요한 개수만 정하는 것이 좋습니다.

예를 들어 검색어 하나당 5개의 뉴스를 가져온다면 검색 키워드가 4개인 경우 최대 20개의 결과를 확인하게 됩니다.

실제로 사용하면서 결과가 너무 많다면 개수를 줄이고 부족하다면 조금 늘리는 방식으로 조절할 수 있습니다.

검색 결과를 그대로 텔레그램으로 보내야 할까

API에서 받은 검색 결과를 모두 그대로 텔레그램으로 보낼 필요는 없습니다.

자동화 프로그램에서 필요한 내용만 선택해서 정리할 수 있습니다.

예를 들어 검색 결과에 여러 정보가 포함되어 있어도 실제 텔레그램에서는 다음처럼 간단하게 만들 수 있습니다.

오늘의 AI 자동화 뉴스

  1. 첫 번째 뉴스 제목

간단한 설명

  1. 두 번째 뉴스 제목

간단한 설명

  1. 세 번째 뉴스 제목

간단한 설명

이렇게 필요한 정보만 추려서 보여주면 훨씬 읽기 편합니다.

나중에는 게시 시간이나 언론사 정보를 추가하는 것도 가능합니다.

중요한 것은 API가 제공하는 모든 데이터를 사용하는 것이 아니라 내가 실제로 필요한 정보만 선택하는 것입니다.

여러 개의 검색어를 사용할 수도 있다

뉴스 자동수집 시스템을 만들 때 하나의 검색어만 사용할 필요는 없습니다.

예를 들어 제가 다음 네 가지 분야를 확인하고 싶다고 가정해보겠습니다.

ChatGPT

생성형 AI

AI 자동화

로컬 AI

프로그램에서 이 검색어를 하나씩 네이버 검색 API에 전달하도록 만들 수 있습니다.

첫 번째 검색어를 검색합니다.

결과를 저장합니다.

두 번째 검색어를 검색합니다.

결과를 저장합니다.

이 과정을 반복한 뒤 결과를 하나로 정리해서 텔레그램으로 보내는 방식입니다.

이렇게 구성하면 매일 여러 검색어를 직접 입력하지 않아도 관심 분야의 뉴스를 한 번에 확인할 수 있습니다.

같은 뉴스가 여러 번 검색될 수도 있다

여러 검색어를 사용하면 한 가지 문제가 생길 수 있습니다.

같은 뉴스가 서로 다른 검색어에서 동시에 검색될 수 있다는 점입니다.

예를 들어 “ChatGPT”와 “생성형 AI”를 각각 검색했는데 동일한 기사가 두 검색 결과에 모두 포함될 수 있습니다.

이 상태에서 결과를 그대로 텔레그램으로 보내면 같은 뉴스가 두 번 전달됩니다.

그래서 뉴스 자동수집 시스템을 발전시키려면 중복 뉴스를 제거하는 기능도 필요합니다.

처음에는 기본적인 검색 기능부터 정상적으로 작동하도록 만든 다음 중복 제거 기능을 추가하는 것이 좋습니다.

이 시리즈에서도 이후에 중복 뉴스를 제외하는 방법을 별도로 알아볼 예정입니다.

네이버 검색 API와 Google Apps Script의 역할

지금까지 내용을 정리하면 두 기능의 역할이 명확해집니다.

네이버 검색 API는 뉴스를 검색합니다.

Google Apps Script는 검색 요청을 보내고 결과를 받습니다.

받은 데이터를 필요한 형태로 정리합니다.

텔레그램 봇은 정리된 결과를 사용자에게 전달합니다.

전체 구조는 다음과 같습니다.

검색 키워드

네이버 검색 API

Google Apps Script

텔레그램 봇

사용자

이 구조를 이해하면 앞으로 코드를 작성할 때 각각의 코드가 어떤 역할을 하는지도 훨씬 이해하기 쉬워집니다.

API 사용량도 확인해야 한다

자동수집 시스템에서는 API를 반복해서 호출하게 됩니다.

예를 들어 검색 키워드가 10개이고 하루에 여러 번 자동으로 검색하도록 설정하면 API 호출 횟수도 계속 증가합니다.

따라서 실제로 자동화 시스템을 운영할 때는 사용하는 API의 호출 한도와 요금 정책을 확인하는 것이 중요합니다.

처음 테스트할 때는 불필요하게 짧은 간격으로 API를 계속 호출하지 않는 것이 좋습니다.

개인적으로 하루에 한두 번 뉴스를 확인하는 용도라면 정해진 시간에 필요한 키워드만 검색하도록 구성하는 방식이 효율적입니다.

나중에 자동 실행 기능을 설정할 때도 얼마나 자주 검색해야 하는지 목적에 맞게 결정하는 것이 좋습니다.

처음에는 데이터 구조만 이해하면 된다

뉴스 검색 API를 처음 접하면 인증정보, 검색 요청, JSON, query 같은 새로운 용어가 한꺼번에 등장합니다.

하지만 모든 내용을 처음부터 정확하게 이해할 필요는 없습니다.

현재 단계에서는 세 가지만 기억해도 충분합니다.

첫 번째, 검색어를 API에 전달합니다.

두 번째, API가 관련 뉴스 데이터를 반환합니다.

세 번째, 프로그램이 필요한 데이터를 골라 텔레그램으로 보냅니다.

이 구조만 이해하면 이후 실제 코드를 볼 때도 훨씬 쉽게 따라갈 수 있습니다.

뉴스 자동수집 시스템에서 네이버 검색 API의 역할

지금까지 만든 시스템을 다시 한번 연결해서 생각해보겠습니다.

앞에서 BotFather를 이용해 텔레그램 봇을 만들었습니다.

Bot Token과 Chat ID도 확인했습니다.

지난 글에서는 뉴스 데이터를 가져오기 위해 API가 왜 필요한지도 알아봤습니다.

이번에는 그 API를 실제 뉴스 검색에 어떻게 사용할 수 있는지 전체적인 구조를 확인했습니다.

이제 필요한 것은 네이버 검색 API와 텔레그램 봇을 실제 프로그램으로 연결하는 과정입니다.

이 과정이 완료되면 프로그램에 검색어를 입력했을 때 뉴스 결과를 가져오고 그 내용을 텔레그램으로 전송하는 기본적인 뉴스 자동수집 시스템이 만들어집니다.

정리

네이버 검색 API를 이용하면 사람이 네이버에서 직접 검색하지 않아도 프로그램이 원하는 키워드의 뉴스 데이터를 가져올 수 있습니다.

프로그램에서 검색어를 전달하면 뉴스 검색 결과가 일정한 데이터 형식으로 반환되고, Google Apps Script에서 필요한 내용을 선택해서 사용할 수 있습니다.

뉴스 제목이나 설명 등 필요한 정보만 정리한 뒤 앞에서 만든 텔레그램 봇으로 보내면 개인용 뉴스 자동수집 시스템의 기본 구조가 완성됩니다.

중요한 것은 처음부터 모든 기능을 넣는 것이 아닙니다.

하나의 검색어를 전달하고 뉴스 결과를 가져오는 기본 기능부터 이해한 다음 여러 검색어, 예약 실행, 중복 제거, AI 요약 기능을 하나씩 추가하는 것이 좋습니다.

다음 글에서는 지금까지 알아본 내용을 실제로 연결해서 네이버 뉴스 검색 API에서 가져온 데이터를 텔레그램 봇으로 전송하는 방법을 단계별로 알아보겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

글쓴이

bluekei9@keinote.com

관련 게시물

API와 RSS를 둘 다 써보니 초보자에게 어떤 방식이 더 쉬웠을까

안녕하세요 케이입니다. 앞에서는 네이버 뉴스 API 말고 RSS를 이용해서 같은 뉴스봇을 한번 만들어봤습니다. 둘 다 결국 뉴스 제목이나 링크를 텔레그램으로 보내준다는 점은...

모두 읽어보기

네이버 뉴스 API 말고 RSS로 같은 뉴스봇을 다시 만들어봤습니다

안녕하세요 케이입니다. 지금까지 제가 만든 뉴스봇은 주로 네이버 검색 API를 이용했습니다. 검색어를 입력하면 관련 뉴스를 찾아서 텔레그램으로 보내주는 방식이었습니다. 그런데 뉴스 자동수집...

모두 읽어보기

RSS와 뉴스 API의 차이, 자동수집에는 무엇이 좋을까

안녕하세요 케이입니다. 지난 글에서는 RSS를 이용해서 특정 사이트의 새로운 콘텐츠를 자동으로 확인하고 텔레그램으로 받아보는 방법을 알아봤습니다. 지금까지 뉴스 자동수집 방법으로 뉴스 API와...

모두 읽어보기

RSS를 이용해 뉴스를 텔레그램으로 자동 수집하는 방법

안녕하세요 케이입니다. 지난 글에서는 Google Apps Script의 시간 기반 트리거를 이용해서 매일 정해진 시간에 뉴스를 자동으로 받아보는 방법을 알아봤습니다. 지금까지는 주로 뉴스...

모두 읽어보기

네이버 뉴스 검색 API를 텔레그램 봇에 연결하는 방법

안녕하세요 케이입니다. 지난 글에서는 네이버 검색 API가 뉴스 데이터를 어떤 방식으로 가져오는지 기본적인 원리를 알아봤습니다. 이번에는 한 단계 더 진행해서 네이버 뉴스...

모두 읽어보기

뉴스 자동수집 API란? 초보자가 알아야 할 개념과 사용 이유

안녕하세요 케이입니다. 개인용 뉴스 자동수집 시스템을 만들다 보면 가장 먼저 접하게 되는 용어 중 하나가 API입니다. 텔레그램 봇을 만들고 Bot Token과 Chat...

모두 읽어보기