퍼포마의 야근근절을 위한 코딩

구글 스프레드시트(Google Spreadsheet) - IMPORTDATA 함수 설명 및 활용예시

인생은스트러글 2022. 9. 19. 08:43

[목차]

0. 여는 말

1. importdata 함수 소개

2. 활용 예시

3. 맺는 말

 


 

0. 여는 말

 

지금까지 2개의 글에 걸쳐 구글 스프레드시트의 importrange 함수와 image 함수에 대하여 알아 보았는데요 (아래 글 참조),

 

 

구글 스프레드시트(Google Spreadsheet) - importrange 함수 설명 및 활용예시

[목차] 0. 여는 말 1. importrange 함수 소개 2. 활용 예시 3. 맺는 말 0. 여는 말 지난 글에서 '구글 스프레드시트 (Google Spreadsheet) URL의 구조, 구성요소의 의미 및 활용도'에 대해 알아보았는데요 (아래..

lifeisstruggle.tistory.com

 

구글 스프레드시트(Google Spreadsheet) - IMAGE 함수 설명 및 활용예시

[목차] 0. 여는 말 1. image 함수 소개 2. 활용 예시 3. 맺는 말 0. 여는 말 지난 글에서는 2개의 스프레드시트를 서로 연동하여 A 스프레드시트의 데이터를 B 스프레드시트에 동기화시킬 때 쓸 수 있는

lifeisstruggle.tistory.com

 

오늘은 3번째 함수인 importdata 함수에 대해 다뤄보려 합니다.

외부의 데이터를 가져온다는 점에서 importrange 함수와 유사한 점이 있는데요, 어떤 부분이 유사하고 어떤 부분에서 차이점이 있는지 차례대로 다뤄보도록 하겠습니다.

 

그럼 글 시작하겠습니다!

 


 

1. importdata 함수 소개

 

구글 스프레드시트의 importdata 함수는 이름 그대로 데이터를 가져오는 함수입니다. 여기까지만 보면 'importrange 함수랑 같은 거 아니야?' 라고 생각하실 수 있을 것 같습니다. 실제로 둘은 '외부의 데이터를 가져온다'는 공통점을 가지지만, 파일 형식데이터 범위에서 차이를 보입니다.

어떤 점이 다른지 하나씩 자세히 살펴보겠습니다.

 

1) 파일 형식

- importdata: csv 혹은 tsv 형식의 데이터를 가져올 URL
- importrange: 스프레드시트

importrange는 불러올 수 있는 파일 형식이 '스프레드시트' 하나로 제한되는 반면, importdata는 'csv나 tsv 형식의 데이터를 전송해 주는 URL'이라는, 좀 더 범용적인 파일 형식에 대해 적용될 수 있습니다.

 

csv 혹은 tsv 형식으로 주어진 URL에서 데이터를 가져오는 IMPORTDATA 함수 (사진 클릭 시 원문 페이지로 이동)

 

여기서 'csv나 tsv 형식의 데이터를 전송해 주는 URL'이 무슨 뜻인지 이해하기 어려우실 수 있을 것 같습니다.

예시를 들어 보자면, 많은 독자 분들께서 구글링하다가 검색결과 링크를 눌렀는데, 홈페이지가 아니라 pdf가 뜬다거나 엑셀 파일이 자동으로 다운로드되어 당황했던 경험이 한 번씩은 있으셨을 것 같습니다.

 

우리가 대부분 보는 홈페이지들은 'html'이라는 형식의 파일 데이터를 전송해주는 URL들입니다. html이라는 형식의 텍스트 데이터를 받아서 브라우저 (ex. 크롬, 사파리)를 통해 정리된 형태로 우리에게 보여지는 것입니다.

그런데 가끔 이런 홈페이지의 형태가 아니라 pdf가 뜬다거나, 엑셀 파일이 다운로드되는 경우들이 있습니다. 이는 해당 URL의 데이터 파일 형식이 html이 아니라 pdf, 혹은 csv/tsv 형식의 데이터를 전송해 주는 URL이기 때문입니다. 

이 부분에 대해서는 다른 글에서 다시 한 번 자세히 다뤄보겠으며, 해당 글이 업로드되기 전에는 일단 아래 예시 링크들을 클릭하여 결과물들을 보시면 이해하시는 데에 도움이 될 것 같습니다.

 

우선은 '일반 홈페이지가 아니라 csv나 tsv 형식의 데이터가 결과물로 뜨는 URL' 정도로만 생각해 주셔도 충분할 것 같습니다 :)

 

- PDF 형식의 URL 예시: http://www.heeil.com/template/image/2022brand.pdf

- csv 형식의 URL 예시: https://www2.census.gov/programs-surveys/popest/datasets/2010-2019/national/totals/nst-est2019-popchg2010_2019.csv

 

2) 데이터 범위

- importdata: 파일 내 데이터 전체
- importrange: 파일 내 지정된 범위만의 데이터

 

importrange는 하나의 스프레드시트 내 지정된 '특정 범위'만의 데이터를 가져오는 반면, importdata는 '해당 파일 전체 데이터'를 가지고 옵니다. 그래서 importrange는 원하는 부분만을 특정하여 데이터를 가져올 수 있지만, importdata는 원시 자료 (raw data)를 통째로 들고 오게 된다는 차이점이 있습니다.

 

이 외에도 스프레드시트에서는 다양한 형태의 데이터를 가지고 오는 함수들을 지원하고 있습니다.

자세한 내용은 아래 이미지 및 연결된 링크를 통해 확인해 주세요 :)

 

importxml, importhtml, importfeed 등 다양한 형태의 파일 형식을 지원하는 함수들이 제공되고 있습니다

 


2. 활용 예시

 

위 함수를 어떻게 활용할 수 있는지 간단한 예시와 함께 살펴보겠습니다.

예시 결과물은 아래 이미지와 같은 표 데이터입니다.

 

URL 하나를 통해 위와 같은 표 데이터를 한 번에 받아올 것입니다

 

1) 파일 URL 확보

먼저, 해당 데이터를 전송해 줄 URL을 확보합니다.

저는 구글에서 연습 데이터로 제공하는 있는 '2010~2019년 미국 인구 데이터' URL을 사용하겠습니다.

해당 URL은 아래와 같습니다.

 

- '2010~2019년 미국 인구 데이터' URL
: https://www2.census.gov/programs-surveys/popest/datasets/2010-2019/national/totals/nst-est2019-popchg2010_2019.csv

 

2) importdata 함수에 삽입

다음으로, 확보한 URL을 importdata 함수 안에 입력하면 끝입니다.

이 때 URL 주소를 " "(쌍따옴표) 안에 넣어서 입력해줘야 합니다.

 

URL 주소를 importdata 함수 안에 넣고 엔터키를 누르면
잠시 로딩 후...
해당 URL의 데이터가 불러와집니다!

 


 

3. 맺는 말

 

이번 글에서는 구글 스프레드시트의 importdata 함수 소개 및 활용 방법에 대하여 알아보았습니다.

이 함수는 importrange 함수와 비교했을 때, 더 범용적인 유형의 데이터 (csv, tsv)를 가져오는 만큼 그 활용도 또한 더욱 넓습니다.

 

예를 들어, 앱 내 활동 데이터를 수집할 수 있는 서비스인 '앱스플라이어(Appsflyer)'의 경우, 앱 내 활동 데이터를 URL의 형태로 받아볼 수 있습니다. 따라서, 해당 URL을 활용하여 스프레드시트로 데이터를 바로 가져올 수 있으며, 그 결과는 아래 이미지와 같습니다.

 

원하는 기간만큼의 앱 내 활동 데이터를 URL 하나로 모두 가져올 수 있습니다! (특정 앱임을 알 수 있는 부분은 보안상 마스킹하였음)

 

그리고, 이렇게 서버에 요청을 보내고 응답 데이터를 받는 'request & response' 개념은 추후 웹 크롤링을 할 때에도 확장하여 적용할 수 있습니다.

더 자세히 설명해 보면, 우리가 importdata 함수를 쓰는 과정은 'URL을 통해 데이터가 있는 서버에 데이터를 요청하는 과정'과 '데이터를 받아오는 과정', 그리고 '그 데이터를 스프레드시트에 기록하는 과정', 이렇게 3가지로 구성되어 있습니다. 웹 크롤링 또한 '서버로 데이터 요청', 그리고 '데이터 수신', 이렇게 크게 2가지 과정으로 구성되어 있습니다. 이번 글에서 보았던 프로세스가 큰 틀에서는 웹 크롤링과 거의 동일하다는 것입니다.

크롤링에 대해서는 추후에 다른 글에서 자세히 다뤄볼 생각이며, 일단은 'request & response' 개념에 대해서만 이해하고 계셔도 충분히 좋을 것 같습니다 :)

 

이번 글은 여기서 마치려 합니다.
만약 읽으시면서 이해가 어려웠던 부분이 있으셨다면, 댓글로 문의 남겨 주시면 성심껏 답변드리겠습니다 :)

 

그러면 오늘 글은 여기서 마치겠습니다.
오늘도 긴 글 읽으시느라 고생 많으셨습니다!

 

우리들의 스트러글(struggle)하는 현생, 화이팅입니다!

 

반응형