BI|분석 / 오피스ㆍ협업 / 클라우드 오피스

“데이터를 자동으로 업데이트하는” 구글 스프레드시트 만드는 방법

Sharon Machlis | Computerworld 2017.04.25

스프레드시트를 사용해서 기초적인 데이터를 추적하는 일은 아주 간단하다. 매일, 매주 또는 매달 잊지 않고 데이터를 업데이트하면 된다. 하지만 간단한 자동화 툴을 사용하면 그 귀찮은 수작업조차 필요 없게 된다.

자동으로 업데이트되는 구글 스프레드시트를 만들어 데이터를 추적하는 방법을 단계별로 알아보자. 이 예에서는 “트위터 팔로워 수”를 사용하지만 코드를 조금만 수정하면 다른 데이터도 손쉽게 가져와 저장할 수 있다.

클릭하면 확대

구글 스프레드시트 만들기
구글 드라이브로 가서 빈 스프레드시트를 만든다(구글 계정이 없는 경우 먼저 계정을 만들어야 함). 원하는 제목을 입력하면 준비는 끝이다. 기본 제목은 “제목 없는 스프레드시트”지만 클릭해서 알아보기 쉬운 제목으로 변경할 수 있다.

클릭하면 확대

함수 추가하기
스프레드시트 함수는 수학 계산 외에도 많은 일을 할 수 있는데 그 중에는 URL에서 데이터를 추출하는 기능도 있다. 추적하려는 페이지가 두 개 이상일 경우를 위해(본인 페이지 외에 경쟁자 페이지까지) 손쉽게 확장이 가능하도록 설정해 보자.

첫 번째 열에는 추적할 트위터 계정을 나열한다. 두 번째 열에는 트위터 웹 인텐트(Web Intent) 페이지를 위한 공식이 들어간다.

트위터 웹 인텐트 페이지는 예를 들어 https://twitter.com/Computerworld와 같은 URL을 통해 찾을 수 있는 HTML로 구성된 복잡한 프로필 페이지 대신 자신의 페이지에 트위터 모듈을 넣으려는 개발자를 위해 고안된 페이지다. 공식은 https://twitter.com/intent/user?screen_name=TWITTERHANDLE이므로 스프레드시트 공식은 다음과 같다.

=CONCAT("https://twitter.com/intent/user?screen_name=",A2)

데이터 행이 두 개 이상인 경우 나머지 URL 열로 클릭해서 끌어다 놓는다.

클릭하면 확대

스프레드시트 함수 쓰기
이상적으로 가장 좋은 방법은 트위터 API를 사용해 이 데이터를 가져오는 것이다. 그러나 트위터 API를 비롯해 인증이 필요한 API를 사용하려면 스프레드시트에 OAuth2 인증을 설정해야 한다. 이 내용은 본 안내 기사의 범위를 벗어나므로 다루지 않겠지만, 관심이 있다면 구글의 구글 앱 스크립트용 OAuth2 라이브러리를 참고하라.

이 기사에서는 쉬운 방법으로 웹 인텐트 페이지에서 팔로워 수를 가져오는 방법을 사용해 보자. 구글 시트의 IMPORTXML 함수를 사용하면 XPath 쿼리를 사용해서 특정 HTML을 추출할 수 있다.
XPath는 배우기 복잡한 언어지만 SelectorGadget을 사용하면 마우스로 가리키고 클릭하는 간단한 방법으로 HTML 페이지에서 특정 데이터에 대한 XPath를 찾을 수 있다.

XPath 쿼리에 대한 SelectorGadget의 결과는 //*[contains(concat( " ", @class, " " ), concat( " ", "count", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "alternate-context", " " ))]이다. 구글 시트 함수는 큰따옴표를 사용해서 인수를 닫으므로, 먼저 XPath의 모든 큰따옴표를 작은따옴표로 바꿔야 한다. 그 다음 팔로워 열에 대한 다음과 같은 공식을 입력한다.

=ImportXML(B2, "//dl[(((count(preceding-sibling::*) + 1) = 1) and parent::*)]//*[contains(concat( ' ', @class, ' ' ), concat( ' ', 'alternate-context', ' ' ))]")

마찬가지로 나머지 열로 클릭해서 끌어온다.

클릭하면 확대

불러온 데이터 자동 저장

C 열의 나머지 부분에서 이 공식을 사용하면 추적하는 다른 계정에 대한 값이 자동으로 채워지는데, 이 값은 저장되지 않고 시트를 열 때마다 바뀐다.

히스토리 데이터를 현재 시트의 디자인 그대로 보관하려면 값을 다른 열 또는 스프레드시트에 수동으로 복사해서 붙여 넣어야 한다. 하지만 그렇게 하면 재미가 없다. 대신 새 함수를 만들어서 1) 첫 번째 빈 열을 찾고, 2) 열의 레이블을 데이터 추출 날짜로 지정하고, 3) C 열의 값을 첫 번째 빈 셀에 복사해 보자.

클릭하면 확대
 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.