make.com 메이크닷컴

구글시트 자동화 완벽 마스터

구글 시트 자동화

Google Sheets는 단순한 스프레드시트가 아닙니다. 데이터베이스, 대시보드, 자동화 허브로 활용할 수 있는 강력한 도구입니다. 특히 Make와 결합하면 그 가능성이 무한히 확장됩니다. 이 글에서는 Make와 Google Sheets를 연동해서 업무를 자동화하는 방법을 완벽하게 정리합니다.

왜 Google Sheets인가

자동화의 데이터 저장소로 Google Sheets를 선택하는 이유가 있습니다.

접근성: 웹 브라우저만 있으면 어디서든 접근할 수 있습니다. 팀원들과 실시간 공유가 가능하고, 권한 관리도 세밀하게 할 수 있습니다.

비용: 무료입니다. Google 계정만 있으면 충분한 용량을 무료로 사용할 수 있습니다.

유연성: 데이터 구조를 자유롭게 변경할 수 있습니다. 컬럼을 추가하거나 삭제하는 것이 데이터베이스보다 훨씬 간단합니다.

시각화: 기본 제공되는 차트와 피벗 테이블로 데이터를 쉽게 시각화할 수 있습니다.

수식: 강력한 수식 기능으로 데이터 가공이 가능합니다. VLOOKUP, QUERY, IMPORTRANGE 등의 함수로 복잡한 처리도 할 수 있습니다.

물론 한계도 있습니다. 대용량 데이터(수십만 행 이상)에서는 성능이 떨어지고, 동시 편집이 많으면 충돌이 발생할 수 있습니다. 이런 경우에는 전용 데이터베이스를 고려해야 합니다.

Make의 Google Sheets 모듈 완벽 가이드

연결 설정

Make에서 Google Sheets를 사용하려면 먼저 연결(Connection)을 설정해야 합니다.

1. Make에서 Google Sheets 모듈 추가
2. Connection에서 “Add” 클릭
3. Google 계정 로그인
4. Make에 권한 부여 (스프레드시트 읽기/쓰기 권한)
5. 연결 완료

여러 Google 계정의 시트를 사용한다면 각 계정별로 연결을 만듭니다. 연결 이름을 명확하게 지어서 구분합니다 (예: “회사 계정”, “개인 계정”).

Watch 모듈: 변경 감지 트리거

Watch Rows: 시트에 새 행이 추가되면 트리거됩니다. 가장 많이 사용되는 트리거입니다.

설정 옵션:

– Spreadsheet: 감시할 스프레드시트 선택
– Sheet: 감시할 시트(탭) 선택
– Table contains headers: 첫 행이 헤더인지 여부 (Yes 권장)
– Row with headers: 헤더가 있는 행 번호 (보통 1)
– Values render option: 값 표시 방식 (FORMATTED_VALUE 권장)

주의사항: Watch Rows는 새로 추가된 행만 감지합니다. 기존 행의 수정은 감지하지 않습니다. 수정을 감지하려면 Watch Changes 모듈이나 다른 방법을 사용해야 합니다.

Watch Changes: 시트의 모든 변경(추가, 수정, 삭제)을 감지합니다. 실시간에 가깝게 변경을 감지해야 할 때 사용합니다. 단, Google API 제한으로 인해 모든 변경을 완벽하게 잡지 못할 수 있습니다.

Search 모듈: 데이터 조회

Search Rows: 조건에 맞는 행을 검색합니다.

설정 옵션:

– Filter: 검색 조건 설정. 컬럼과 조건(equals, contains, greater than 등)을 지정합니다.
– Sort order: 정렬 기준
– Order by: 정렬 컬럼
– Limit: 최대 반환 행 수

필터 예시: “상태” 컬럼이 “대기중”인 모든 행 검색
Column: 상태, Condition: Text equals, Value: 대기중

Search Rows (Advanced): Google Sheets의 QUERY 함수와 유사한 고급 검색입니다. 더 복잡한 조건이나 여러 조건의 AND/OR 조합이 필요할 때 사용합니다.

필터 예시: “금액”이 10000 이상이고 “상태”가 “완료”인 행
Filter: A > 10000 AND B = ‘완료’ (A, B는 컬럼 레터)

Get a Cell: 특정 셀의 값을 가져옵니다. 행과 열을 지정해서 정확히 하나의 셀 값만 필요할 때 사용합니다.

Get Range Values: 지정된 범위의 모든 셀 값을 가져옵니다. 여러 셀을 한 번에 읽어야 할 때 사용합니다. A1:C10 형식으로 범위를 지정합니다.

Create/Add 모듈: 데이터 추가

Add a Row: 시트 맨 아래에 새 행을 추가합니다. 가장 많이 사용되는 액션입니다.

설정:

– Spreadsheet, Sheet 선택
– Table contains headers: Yes
– Values: 각 컬럼에 해당하는 값 입력

헤더가 설정되어 있으면 컬럼 이름으로 값을 매핑할 수 있어서 편리합니다. 헤더가 “이름”, “이메일”, “전화번호”라면 해당 필드에 값을 넣으면 됩니다.

Add Multiple Rows (Bulk Add Rows): 여러 행을 한 번에 추가합니다. 배열 데이터를 추가할 때 효율적입니다. 하나씩 추가하면 API 호출이 여러 번 발생하지만, 이 모듈을 사용하면 한 번의 호출로 처리됩니다.

주의: 입력 데이터는 2차원 배열 형태여야 합니다.
예: [[값1, 값2, 값3], [값4, 값5, 값6]]

Update 모듈: 데이터 수정

Update a Row: 특정 행의 데이터를 수정합니다.

설정:

– Row number: 수정할 행 번호 (헤더 포함해서 카운트)
– Values: 수정할 값들

행 번호를 알아야 하므로, 보통 Search Rows로 먼저 해당 행을 찾고, 그 결과의 행 번호를 사용합니다.

시나리오 예시:

Search Rows(주문번호 = “12345”) → Update a Row(해당 행, 상태 = “완료”)

Update a Cell: 특정 셀 하나만 수정합니다. 전체 행이 아니라 특정 값만 변경할 때 사용합니다.

Clear a Row: 특정 행의 모든 값을 지웁니다. 행 자체는 남아있고 내용만 삭제됩니다.

Delete a Row: 특정 행을 완전히 삭제합니다. 행이 삭제되면 아래 행들이 위로 올라옵니다.

기타 유용한 모듈

Create a Spreadsheet: 새 스프레드시트를 생성합니다. 동적으로 새 문서를 만들어야 할 때 사용합니다.

Copy a Sheet: 시트(탭)를 복사합니다. 템플릿 시트를 복사해서 새 데이터를 채우는 패턴에 유용합니다.

Make an API Call: Google Sheets API를 직접 호출합니다. 기본 모듈로 지원하지 않는 고급 기능이 필요할 때 사용합니다.

실전 자동화 시나리오

시나리오 1: 폼 응답 자동 처리

Google Form으로 수집한 데이터를 자동으로 처리합니다.

배경: 이벤트 신청 폼을 만들었고, 신청이 들어오면 신청자에게 확인 이메일을 보내고, 담당자에게 알림을 보내야 합니다.

시나리오 구조:

Google Sheets Watch Rows → Gmail Send Email(신청자에게) → Slack Send Message(담당자에게)

상세 설정:

1. Google Sheets Watch Rows
– 폼 응답이 연결된 스프레드시트 선택
– 스케줄: 15분마다 확인 (또는 즉시 처리가 필요하면 1분)

2. Gmail Send Email
– To: {{이메일 컬럼 값}}
– Subject: [이벤트명] 신청이 완료되었습니다
– Content: 신청 내용 요약 + 안내 사항

3. Slack Send Message
– Channel: #이벤트-신청
– Text: 새 신청: {{이름}} ({{이메일}}) – {{신청일시}}

추가 기능: 신청 정원이 있다면 Router와 Filter를 추가해서 정원 초과 시 대기 명단에 등록하고 다른 메시지를 보냅니다.

시나리오 2: 데이터 정기 백업

중요한 시트 데이터를 정기적으로 백업합니다.

시나리오 구조:

Schedule(매일 자정) → Google Sheets Get Range Values → Google Sheets Add Multiple Rows(백업 시트)

또는 더 간단하게:

Schedule → Google Sheets Copy a Sheet(원본 → 백업 스프레드시트)

시트 전체를 복사하면 서식까지 보존됩니다. 날짜별로 시트를 만들어서 히스토리를 관리할 수 있습니다.

백업 시트 이름 패턴: “백업_{{formatDate(now; “YYYY-MM-DD”)}}”

시나리오 3: 시트 간 데이터 동기화

A 시트의 데이터를 B 시트와 동기화합니다. 마스터 데이터와 작업용 데이터를 분리할 때 유용합니다.

시나리오 구조:

Google Sheets Watch Rows(A 시트) → Router

– Route 1: Search in B 시트 (같은 키값 존재 여부 확인)
– Filter(존재함): Update a Row(B 시트)
– Filter(존재 안 함): Add a Row(B 시트)

이 패턴은 Upsert(Update + Insert) 로직입니다. 데이터가 있으면 업데이트하고, 없으면 새로 추가합니다.

주의: 양방향 동기화는 복잡합니다. 무한 루프에 빠지지 않도록 주의하고, 가능하면 단방향 동기화를 권장합니다.

시나리오 4: 조건부 알림 시스템

시트 데이터가 특정 조건을 만족하면 알림을 보냅니다.

예시: 재고 수량이 10개 이하로 떨어지면 담당자에게 알림

시나리오 구조:

Schedule(1시간마다) → Google Sheets Search Rows(재고 <= 10) → Iterator → Slack Send Message

Search Rows의 필터: Column “재고”, Condition “Number less than or equal”, Value “10”

Iterator는 검색 결과가 여러 행일 수 있으므로 각 행에 대해 알림을 보내기 위해 사용합니다.

추가: 같은 항목에 대해 반복 알림이 가지 않도록 “알림 발송 여부” 컬럼을 추가하고, 알림 후 체크합니다.

시나리오 5: 외부 API 데이터 시트에 기록

외부 서비스의 데이터를 정기적으로 가져와서 시트에 기록합니다.

예시: 날씨 API 데이터 수집

시나리오 구조:

Schedule(매 시간) → HTTP Get(날씨 API) → Parse JSON → Google Sheets Add a Row

HTTP 모듈 설정:

– URL: https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=YOUR_API_KEY
– Method: GET

Parse JSON으로 응답을 파싱하고, 필요한 데이터(온도, 습도, 날씨 상태 등)를 추출해서 시트에 기록합니다.

이런 방식으로 시간별 날씨 데이터를 축적하면 분석이나 시각화에 활용할 수 있습니다.

시나리오 6: 대시보드용 데이터 집계

여러 소스의 데이터를 집계해서 대시보드용 시트를 업데이트합니다.

시나리오 구조:

Schedule(매일 오전) → [여러 데이터 소스에서 데이터 수집] → Aggregate → Google Sheets Update Range

예시: 쇼핑몰 일별 매출 대시보드

1. Shopify API로 전일 주문 데이터 조회
2. 총 매출, 주문 수, 평균 주문 금액 계산
3. 대시보드 시트의 해당 날짜 행에 데이터 기록

대시보드 시트에 차트를 설정해두면 데이터가 업데이트될 때마다 자동으로 차트도 갱신됩니다.

고급 기법

배열 수식과 자동화의 조합

Google Sheets의 배열 수식(ARRAYFORMULA)과 Make 자동화를 조합하면 강력한 시스템을 만들 수 있습니다.

패턴: Make는 원본 데이터만 추가하고, 가공은 시트 수식이 처리

예를 들어:

– A열: 상품코드 (Make가 입력)
– B열: 수량 (Make가 입력)
– C열: 단가 (VLOOKUP으로 상품 마스터에서 자동 조회)
– D열: 금액 (=B*C 수식으로 자동 계산)
– E열: 상태 (조건부 수식으로 자동 분류)

Make는 A, B열 데이터만 추가하면 되고, 나머지는 시트 수식이 자동으로 채웁니다. 이렇게 하면 자동화 시나리오가 단순해지고, 계산 로직 변경도 시트에서만 하면 됩니다.

IMPORTRANGE로 시트 간 연결

IMPORTRANGE 함수로 다른 스프레드시트의 데이터를 참조할 수 있습니다. Make 없이도 시트 간 데이터 연결이 가능합니다.

=IMPORTRANGE(“스프레드시트_URL”, “시트명!A1:D100”)

Make와 IMPORTRANGE를 조합하면:

– Make: 원본 데이터 스프레드시트에 데이터 추가
– IMPORTRANGE: 대시보드 스프레드시트에서 원본 참조
– 결과: 대시보드가 자동으로 업데이트

주의: IMPORTRANGE는 실시간이 아니라 몇 분 간격으로 갱신됩니다.

Apps Script와의 연동

Google Apps Script로 시트에 커스텀 기능을 추가하고, Make의 Webhook으로 트리거할 수 있습니다.

Apps Script 예시 (Webhook 엔드포인트):

function doPost(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = JSON.parse(e.postData.contents);

  // 데이터 처리 로직
  sheet.appendRow([data.name, data.email, new Date()]);

  return ContentService.createTextOutput("Success");
}

이 스크립트를 웹 앱으로 배포하면 URL이 생성됩니다. Make의 HTTP 모듈로 이 URL에 POST 요청을 보내면 Apps Script가 실행됩니다.

Apps Script가 유용한 경우:

– 복잡한 데이터 가공이 필요할 때
– 시트 서식을 동적으로 변경해야 할 때
– 여러 시트에 걸친 복잡한 작업이 필요할 때

조건부 서식 자동화

직접적인 조건부 서식 자동화는 Make로 어렵지만, 우회 방법이 있습니다.

방법 1: 상태 컬럼 추가
특정 조건을 만족하면 “상태” 컬럼에 값을 설정하고, 시트의 조건부 서식에서 이 컬럼을 기준으로 서식을 적용합니다.

방법 2: Apps Script 사용
Make에서 Apps Script를 호출하고, Apps Script에서 프로그래밍 방식으로 서식을 변경합니다.

성능 최적화

API 호출 최소화

Google Sheets API는 분당 읽기 60회, 쓰기 60회로 제한됩니다. 이 제한을 효율적으로 사용해야 합니다.

최적화 방법:

– Add Multiple Rows 사용: 여러 행을 한 번에 추가
– Get Range Values 사용: 여러 셀을 한 번에 읽기
– 불필요한 Watch 주기 줄이기: 실시간이 필요 없으면 간격 늘리기

대용량 데이터 처리

수만 행의 데이터를 처리해야 할 때:

1. 배치 처리: 한 번에 모든 데이터를 처리하지 않고, 나눠서 처리합니다. 예: 1000행씩 처리하고 다음 실행 때 이어서.

2. Data Store 활용: 마지막 처리 위치를 Data Store에 저장하고, 다음 실행 때 그 위치부터 시작합니다.

3. 전용 DB 고려: 정말 대용량이라면 Google Sheets 대신 Airtable, 또는 MySQL/PostgreSQL 같은 전용 데이터베이스를 고려합니다.

에러 방지

흔한 에러와 방지 방법:

“The requested entity was not found”
원인: 시트나 스프레드시트가 삭제되었거나, 이름이 변경됨
방지: 시트 ID 사용 (이름 대신), 변경 시 시나리오 업데이트

“Rate limit exceeded”
원인: API 호출 제한 초과
방지: Sleep 모듈로 호출 간격 조절, 배치 처리 활용

“Invalid value”
원인: 데이터 타입 불일치 (숫자 컬럼에 텍스트 등)
방지: 데이터 입력 전 타입 변환, 검증 로직 추가

보안 고려사항

접근 권한 관리

Make에 연결된 Google 계정은 해당 계정의 모든 스프레드시트에 접근할 수 있습니다. 민감한 데이터가 있다면:

1. 자동화 전용 Google 계정 생성
2. 필요한 스프레드시트만 해당 계정과 공유
3. Make는 전용 계정으로만 연결

민감 정보 처리

개인정보, 결제정보 등 민감한 데이터를 시트에 저장할 때:

– 꼭 필요한 정보만 저장
– 가능하면 식별 불가능하게 가공 (해시, 마스킹)
– 시트 접근 권한 최소화
– 보관 기간 설정하고 자동 삭제 시나리오 구축

공유 링크 주의

“링크가 있는 모든 사용자” 공유 설정은 편리하지만 위험합니다. URL이 유출되면 누구나 접근할 수 있습니다. 가능하면 특정 사용자에게만 공유하세요.

마무리: 시트를 넘어서

Google Sheets와 Make의 조합은 소규모 비즈니스나 개인의 업무 자동화에 최적입니다. 초기 비용 없이, 프로그래밍 지식 없이, 강력한 자동화 시스템을 구축할 수 있습니다.

하지만 규모가 커지면 한계가 있습니다. 데이터가 수십만 행을 넘어가거나, 동시 접속자가 많아지거나, 복잡한 관계형 데이터가 필요해지면 전용 데이터베이스로 이전을 고려해야 합니다.

중요한 것은 시작하는 것입니다. 완벽한 시스템을 처음부터 설계하려 하지 말고, Google Sheets로 시작해서 검증하고, 필요할 때 확장하세요. 지금 당장 반복하고 있는 업무를 자동화해보세요. 한 번의 설정으로 앞으로의 수많은 반복 작업이 사라집니다. 그 시간을 더 가치 있는 일에 사용하세요.

지금 바로 시작하세요

Make.com 무료 플랜으로 자동화의 힘을 직접 경험해보세요.

Make.com 시작하기 →