지난 세션에 제각각이던 여러 엑셀 파일의 데이터를 AI에게 '글 코딩'을 시켜 하나로 취합하는 과정을 경험했습니다. 그간 코딩이나 데이터 같은 것에 부담감을 갖던 AX 멤버들도 상당한 자신감이 붙은 듯했죠.
슬라이드를 오늘 주제인 '정보 수집 자동화'로 넘기자, 홍보팀 권 과장이 말을 이어갔습니다.
지난 시간에 질문을 드린 대로 저희 팀은 포털에서 우리 회사나 경쟁사 관련 기사를 검색해서 일일이 링크를 붙여 넣고, 요약 내용을 정리하고 있는데요. 매일 1시간씩 반복되는 일이라 상당히 부담스러운데...
주변에 물어보니 최프로님이 말씀 주신 파이썬을 써서 자동화하면 된다고는 하는데 공부해야 하는 게 만만치 않더군요. 좀 더 쉬운 방법이 없을까요?
정기적인 데이터 수집에는 파이썬(Python)을 사용하거나 옥토파스(Octoparse) 같은 별도의 수집 도구를 쓰는 방법이 가장 정확할 겁니다. 하지만 좀 더 쉬운 방법이 있습니다. 우리가 매일 쓰는 구글 시트(Google Sheets)만으로 이 뉴스 수집을 할 수 있죠.
게다가 매일 정해진 시간에 자동으로 업데이트까지 할 수 있습니다.
구글 시트, 계산기를 넘어 '데이터 허브'로
일반적으로 구글 시트는 단순히 계산을 하거나 표를 정리하는 도구라고 생각합니다. 하지만 구글 시트는 데이터를 다루는 데도 강력한 기능을 발휘할 수 있습니다. 최근에 앱이나 웹사이트 개발을 할 때 노코드나 바이브 코딩을 많이 하게 되는데, 이때 구글시트를 데이터베이스로 쓰기도 하죠. 콘텐츠나 회원 관리 등을 구글 시트로 한다는 뜻입니다. 좀 더 나가면 앱시트(AppSheet)를 이용해서 구글 시트 자체를 앱으로 만들 수도 있죠.
그만큼 구글 시트는 우리가 일반적으로 생각하는 이상의 기능들을 가지고 있습니다. 그중 데이터 수집을 가능하게 만들어 주는 것이 ‘앱스 스크립트(Apps Script)’입니다.
앱스 스크립트는 구글 워크스페이스(시트, 문서, 메일 등)를 자동화하고 서로 연결할 수 있게 만든 자바스크립트(JavaScript)에 기반의 프로그래밍 언어죠. 하지만 파이썬과 마찬가지로 우리는 이 코드를 직접 작성할 필요가 없습니다. 우리는 한국어로 입코딩을 하면 되니까요. 우리의 무기는 논리성입니다.
주의할 점은 이런 코드 작성을 위해서는 AI가 수행할 역할과 임무를 구체적으로 제시해야 합니다. 추상적으로 ‘뉴스를 자동으로 수집하고 싶어’ 정도로 희망사항만 이야기해서는 소원을 들어주지 않습니다. 아래와 같이 구체적으로 제시를 해야 하죠.
네이버 개발자 센터의 클라이언트 ID와 시크릿을 활용해, ‘가우스 F&B’라는 키워드로 20개의 뉴스를 수집하는 코드를 작성해 줘.
그럼 클라이언트 ID와 시크릿은 뭐고, 앱스 스크립트는 어떻게 작성해야 하는지 알아봐야겠죠?!
API를 연결해 뉴스 데이터 수집하기
우리가 만들려는 자동화 시스템은 'API 직접 연결' 방식을 사용합니다. 위에서 언급한 ‘클라이언트 ID’와 ‘클라이언트 시크릿’은 네이버 검색 API에 접근하기 위한 일종의 허가증입니다.
API를 흔히 식당의 '웨이터'에 비유합니다. 우리가 주방에 직접 들어가 요리를 가져올 수 없으니, 웨이터(API)에게 주문을 넣고 음식을 받아오는 것이죠. 여기서 주방은 네이버, 요리는 검색한 결과로 보시면 됩니다. 다만 이 식당은 아무나 올 수 있는 곳이 아니라서, 우리는 미리 허가증을 받는 것이죠.
1) 출입증 발급
네이버 검색 API를 이용하는 방법은 간단합니다. ‘네이버 개발자 센터(하단 링크)’에서 신청하면 되는데요. 상단 메뉴에 'Application'이 있고, '애플리케이션 등록'을 선택한 뒤 간단한 정보를 입력하면, 클라이언트 ID와 시크릿 키를 발급받을 수 있습니다.
이때 사용 API는 '검색'을 선택하면 되고, 다른 내용들은 임의로 넣어도 됩니다. 서비스 설정은 web으로 한 뒤 회사 사이트 주소나 적절한 URL을 넣으면 됩니다. (인증과는 상관이 없는 부분이며 '검색'을 선택해야 한다는 것이 가장 중요)
그럼 네이버에서는 클라이언트 ID와 클라이언트 시크릿을 발급해 주죠. 시크릿은 비밀번호에 해당하니 '보기' 버튼을 클릭해야 확인할 수 있습니다.
2) 앱스 스크립트 작성
앞서 이야기한 대로 구체적인 목표를 AI(제미나이 등)에게 요청합니다.
나는 구글 시트에서 앱스 스크립트를 활용해 '가우스' 키워드로 검색한 뉴스를 수집하려고 해.
너는 네이버 검색 API(뉴스)를 활용해 결과를 가져오는 코드를 작성해 줘.
한 번에 20개의 뉴스를 수집할 것.
수집한 데이터(제목, 링크, 요약)는 B, C, D 열에 순서대로 쌓아줄 것.
클라이언트 ID와 시크릿은 'YOUR_ID', 'YOUR_SECRET'으로 표시해 줘.
이 스크립트 전체를 복사해 구글 시트의 [확장 프로그램] > [Apps Script] 편집기에 붙여 넣습니다. 이때 기존에 있던 코드는 모두 지우는 것이 중요하죠. 코드를 넣으면 우리가 체크해야 할 부분들은 다른 색상으로 표시되기 때문에 쉽게 ‘YOUR_ID’와 ‘YOUR_SECRET’ 부분을 찾을 수 있는데요. 여기에 네이버에서 발급받은 내 키로 입력해 주면 됩니다.
이제 거의 끝났죠. 상단 메뉴에서 저장을 하고 실행 버튼을 클릭하면, 구글에서 승인이 필요하다는 팝업창이 뜨게 됩니다. [권한 검토]를 누르고 [고급] > [...(안전하지 않음)으로 이동] > [허용]을 순서대로 선택하면 실행이 완료되었다는 메시지가 나타납니다.
구글 시트로 이동하면 수집된 뉴스를 확인할 수 있죠.
뉴스 수집을 한 뒤 보기 좋게 표를 수정하면 됩니다.
3) 트리거를 이용한 자동 수집
하지만 뉴스 모니터링 같은 작업은 정기적으로 하는 일이죠. 매일 들어가서 실행을 다시 클릭해야 할까요? 당연히 자동으로 실행하는 방법이 있습니다.
다시 앱스 스크립트 편집기로 돌아갑니다. 왼쪽에 있는 편집기 메뉴에서 트리거를 선택하면 되는데요. [시간 기반] > [일 단위 타이머] > [오전 8시 ~ 9시 사이]로 예약하면, 매일 아침 출근했을 때 새로운 뉴스가 시트에 등록되어 있을 겁니다.
물론 우리가 변경해 놓은 서식에 맞춰서 내용만 업데이트해 주는 것이죠.
정해진 틀을 넘어 우리 업무에 맞춤화 하기
이렇게 작성한 앱스 스크립트 코드는 언제든 키워드를 수정하거나, 10개만 수집하거나, 노출 방식을 바꾸는 등 자유롭게 커스터마이징 해서 쓸 수 있습니다. 물론 이 작업은 AI에게 요청하면 되죠. 수집한 내용을 기존 내용에 덮어쓸 것인지, 아니면 새로운 시트를 만들 것인지.. 필요한 방향에서 요청을 할 수 있습니다.
설명이 끝나자 재무팀 김과장의 질문이 이어졌습니다.
최프로님, 저는 앞서 살펴본 ‘트리거’라는 것에 가장 관심이 가는데요. 특정 시간이 되면 '알아서' 작동한다는 것이요. 혹시 저희가 마지막 세션에서 다룰 '노코드 자동화'가 이 트리거와 비슷하다고 이해하면 될까요?
노코드 자동화 도구인 '메이크(Make)'는 바로 트리거-액션이라는 구조로 이루어져 있습니다. 정확히 말하면 트리거는 시간이 아니라 '특정 상황'이라고 할 수 있는데요. 이 상황이 발생하면 우리가 미리 설정해 둔 작업(액션)을 수행하라는 것이죠.
이제 AX 팀의 마지막 과제인 노코드 자동화로 넘어가 보도록 하겠습니다. 다소 어렵게 느껴지실 수도 있지만 개념만 이해하면 나머지는 AI가 도와줄 수 있으니 끝까지 함께 끝까지 완주해 보시죠.
<< 다음 글로 이어집니다 >>

