ARC133
개요
챌린지 실습에서는 특정 시나리오와 일련의 작업이 주어집니다. 단계별 안내를 따르는 대신, 과정의 실습에서 배운 기술을 사용하여 스스로 작업을 완료하는 방법을 알아내 보세요. 이 페이지에 표시되어 있는 자동 채점 시스템에서 작업을 올바르게 완료했는지 피드백을 제공합니다.
챌린지 실습을 진행할 때는 새로운 Google Cloud 개념에 대한 정보가 제공되지 않습니다. 학습한 기술을 응용하여 기본값을 변경하거나 오류 메시지를 읽고 조사하여 실수를 바로잡아야 합니다.
100점을 받으려면 시간 내에 모든 작업을 성공적으로 완료해야 합니다.
설정 및 요건
실습 시작 버튼을 클릭하기 전에
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.
실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
- 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
- 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다.
챌린지 시나리오
여러분은 팀에서 주니어 클라우드 엔지니어를 맡고 있습니다. 지금까지는 팀을 도와 Google Cloud 리소스를 만들고 관리했습니다.
이 실습에서는 Google Cloud의 BigQuery API(Apps Script 고급 서비스)와 Google Sheets용 기본 제공 Apps Script 서비스를 사용하여 데이터 분석을 수행하는 것이 목표입니다.
또한 Google Sheets 스프레드시트를 만들고 데이터를 채워 넣은 후 스프레드시트 데이터로 차트를 만들어야 합니다.
다음 작업을 완료하는 데 필요한 기술과 지식을 보유해야 합니다.
챌린지
이 실습에서는 다음 작업을 수행해야 합니다.
- Apps Script를 사용하여 BigQuery를 쿼리하고 결과를 Google Sheets 워크시트에 기록합니다.
- BigQuery 데이터 세트를 Google Sheets에 연결합니다.
- Google 차트를 사용하여 연결된 시트로 스프레드시트 데이터를 시각화합니다.
- Apps Script를 사용하여 새 워크시트를 만들고 데이터를 채웁니다.
작업 1. BigQuery를 쿼리하고 결과를 Google Sheets에 기록
이 작업을 수행하려면 다음 단계의 선행 조건으로 script.google.com으로 이동하여 새 Apps Script 프로젝트를 만든 후 프로젝트 이름을 원하는 이름으로 변경해야 합니다.
애플리케이션 코드 입력 및 실행
- 아래 상자의 코드를 복사하여 코드 편집기의 모든 항목에 붙여넣습니다.
Code.gs
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
var PROJECT_ID = "{{{project_0.project_id|PROJECT_ID}}}";
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/gsuitedevs/apps-script-samples/blob/master/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see http://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
}
-
파일 이름을 bq-sheets.gs로 변경하고 Enter 키를 누릅니다.
-
runQuery() 함수의 쿼리 코드를 검토합니다.
SELECT
LOWER(word) AS word,
SUM(word_count) AS count
FROM [bigquery-public-data:samples.shakespeare]
GROUP BY word
ORDER BY count
DESC LIMIT 10
이 쿼리는 BigQuery 공개 데이터 세트의 일부인 셰익스피어 작품을 살펴보고 모든 작품에서 가장 자주 등장하는 상위 10개 단어를 인기도 기준 내림차순으로 정렬하여 생성합니다.
- 파일을 저장하고 메뉴 바에서 실행 옵션을 클릭하여 코드를 실행합니다.
참고: 코드를 저장하고 실행한 후 Exception: Service BigQuery API has not been enabled for your Apps 오류가 표시되는 경우 BigQuery API 서비스를 삭제하고 다시 추가하세요.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
BigQuery를 쿼리하고 결과를 시트에 기록
작업 2. 연결된 시트로 차트에서 계산 수행
- 이 작업에서는 시카고의 택시 운행에 관한 데이터가 포함된 공개 데이터 세트를 분석해야 합니다. 시작하려면 Google Sheets 홈페이지를 엽니다.
BigQuery 데이터 세트를 Google Sheets에 연결
- 새 빈 스프레드시트에서 BigQuery 데이터 세트로 연결을 만듭니다.
-
데이터 커넥터를 사용하여 BigQuery 데이터 세트를 Google Sheets에 연결합니다.
- 프로젝트 ID > 공개 데이터 세트 > chicago_taxi_trips > taxi_trips를 선택합니다.
연결된 시트에서 수식 사용
- 다음으로 연결된 시트에서 다양한 수식을 사용할 수 있습니다.
- 시카고에 몇 개의 택시 회사가 있는지 알아봅니다.
- 팁을 받은 시카고 택시 운행의 비율을 계산합니다.
- 요금이 0보다 큰 운행의 총횟수를 구합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
연결된 시트에서 수식 사용
작업 3. 연결된 시트에서 Google 차트 사용
이 작업에서는 차트(이 경우 원형 차트와 선 차트)를 사용하여 차량의 인기도와 결제 유형의 추세를 검사합니다.
Google 차트에서 다음 정보를 확인합니다.
- 원형 차트: 택시 탑승 시 사람들이 사용하는 결제 수단은 무엇인가요?
- 선 차트: 택시 탑승에 대한 모바일 결제 수익은 시간이 지남에 따라 어떻게 변했나요?
- 선 차트: 2015년에 수익이 최고조에 달한 이후 모바일 결제는 시간이 지남에 따라 어떻게 변했나요?
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
연결된 시트에서 차트 사용
작업 4. Apps Script를 사용하여 새 Google Sheets 워크시트를 만들고 데이터 입력
이 작업을 수행하려면 Apps Script 편집기를 사용할 수 있도록 새 Google 시트에 상세 주소를 입력해야 합니다.
-
새 시트를 만들려면 Google Sheets를 엽니다.
-
빈 스프레드시트에서 왼쪽 상단의 첫 번째 셀(A1)을 클릭합니다. 열 A, 행 1에 있어야 합니다.
-
첫 번째 셀에 다음 주소를 입력합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
새 Google Sheets 워크시트를 만들고 상세 주소 입력
수고하셨습니다
수고하셨습니다. Apps Script를 활용하여 BigQuery 데이터와 Google Workspace를 통합하여 Google Sheets 워크시트에 쿼리 결과를 기록하고, BigQuery 데이터 세트를 Google Sheets에 연결하고, Google 차트를 사용하여 연결된 시트로 스프레드시트 데이터를 시각화하고, Apps Script를 사용하여 새 워크시트를 만들고 데이터를 채웠습니다.

Google Cloud 교육 및 자격증
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2024년 8월 9일
실습 최종 테스트: 2024년 8월 9일
Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.