IT 개발2026-04-04

구글 시트 API 연동 방법과 서비스 계정 설정

구글 시트 API 인증과 데이터 읽기·쓰기 방법을 소개합니다.

구글 시트 API 연동 방법과 서비스 계정 설정

안녕하세요. 사랑받는 IT 프로덕트의 첫걸음, 똑똑한개발자입니다.

Google Sheets API는 프로그램에서 구글 스프레드시트의 값을 읽고 쓰는 인터페이스입니다. 시트 안에서 실행하는 Apps Script나 자동화 서비스로 연동하는 방법도 있습니다. 어떤 방식으로 접속하는지에 따라 인증과 권한 설정이 달라집니다.

구글 시트 API 연동, 왜 처음에 막힐까요

구글 시트 API 연동 구조도: 웹 폼, 구글 시트, 웹사이트를 잇는 3가지 방법

폼 응답을 시트에 쌓거나 시트의 상품 목록을 웹사이트에 띄우려 할 때 구글 시트 API를 검색하게 됩니다. 그런데 Cloud 콘솔, OAuth, 서비스 계정이 한꺼번에 나오죠. 방법이 여러 갈래라서인데, 무엇으로 연동할지만 정해도 길이 짧아집니다.

구글 시트 연동 방법 3가지, 무엇이 다를까

구글 시트 연동 방법 3가지 비교: Apps Script, Sheets API와 서비스 계정, n8n·Zapier

방식

잘 맞는 상황

준비물

주의할 점

Apps Script

시트 안에서 끝나는 자동화

구글 계정

실행 1회당 6분 제한

Sheets API + 서비스 계정

내 서버가 시트를 읽고 쓰기

Cloud 프로젝트, JSON 키

키 유출 관리

n8n·Zapier

폼·슬랙·CRM을 코드 없이 연결

각 서비스 계정

실행량에 따른 요금

구글 공식 문서상 Apps Script는 실행 한 번에 6분까지라 무거운 일괄 처리엔 맞지 않습니다. n8n·Zapier는 빨리 붙지만 요금제를 봐야 하고요. 직접 만든 서비스에서도 서비스 계정, 사용자 OAuth 등 접근 대상과 실행 환경에 맞는 인증 방식을 선택합니다.

구글 시트 API 서비스 계정 연동 4단계

구글 시트 API 서비스 계정 연동 4단계와 시트 공유 화면

첫째, Google Cloud 콘솔에서 프로젝트를 만듭니다.

할당량과 키가 이 프로젝트에 묶입니다.

둘째, Google Sheets API를 사용 설정합니다.

'API 및 서비스'의 라이브러리에서 Google Sheets API를 찾아 사용을 누릅니다. 빠뜨리면 키가 멀쩡해도 403 오류가 납니다.

셋째, 서비스 계정과 인증 방식 설정

'IAM 및 관리자 > 서비스 계정'에서 계정을 만들고 키 탭에서 새 JSON 키를 만듭니다. 구글 안내대로라면 이 파일은 다시 받을 수 없는 유일한 사본입니다. 조직 계정은 보안 정책으로 키 생성이 막혀 있기도 합니다.

넷째, 시트에 서비스 계정 이메일을 공유합니다.

서비스 계정의 이메일을 시트 공유 대상에 추가합니다. 읽기만 한다면 뷰어, 쓰기 작업까지 필요하면 편집 권한을 사용할 수 있습니다. 조직의 공유 정책에 따라 접근이 제한될 수도 있습니다.

파이썬으로 읽고 쓰기, 할당량과 키 보안까지

다음은 서비스 계정 JSON 키 파일을 사용하는 예시입니다. google-api-python-client와 google-auth 패키지가 필요하며, 키 파일과 시트 ID를 실제 환경에 맞춰 지정합니다. Google Cloud 환경에서는 키 파일 없이 실행 주체의 자격 증명을 사용하는 방식도 검토할 수 있습니다.

from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    "key.json", scopes=["https://www.googleapis.com/auth/spreadsheets"])
SHEET_ID = "연동할_스프레드시트_ID"
sheet = build("sheets", "v4", credentials=creds).spreadsheets()
rows = sheet.values().get(spreadsheetId=SHEET_ID, range="A1:C10").execute()
sheet.values().append(spreadsheetId=SHEET_ID, range="A1",
    valueInputOption="USER_ENTERED", body={"values": [["홍길동"]]}).execute()

할당량은 분당 요청 수로 걸립니다.

구글이 공개한 한도는 프로젝트당 분당 읽기·쓰기 각 300회, 사용자당 각 60회입니다. 넘기면 429 오류가 오고, 구글은 지수 백오프로 재시도하라고 권합니다. 할당량과 요금 조건은 공식 문서의 최신 안내를 기준으로 확인합니다.

JSON 키는 코드 저장소에 올리지 않습니다.

키 경로는 환경변수로 빼두세요. 비밀값을 분리하는 방법은 저희 환경변수(.env) 글에서 정리했습니다.

시트를 DB로 쓸 때 부딪히는 한계

구글 시트 API 연동 시트를 DB로 쓸 때의 한계: 동시 수정, 관계형 조회, 권한 분리, 셀 수 상한

구글 시트는 어디까지나 스프레드시트입니다. 스프레드시트는 협업 편집을 지원하지만, 데이터베이스와 같은 트랜잭션·관계형 제약·행 단위 접근 제어를 그대로 제공하는 것은 아닙니다. 파일 하나에 담을 수 있는 셀 수에도 상한이 있고요.

구글 시트 API 연동에서 사내 CRM·ERP 프로덕트로 가는 3단계

세부 설정과 지원 범위는 Google Sheets API 사용량 안내를 참고해 보세요.


시트에서 시작한 업무를 함께 살펴봅니다

시트로 편하게 시작한 업무도 사람이 늘고 데이터가 쌓이면 새로운 정리 방법이 필요할 수 있습니다. 현재 흐름을 살펴보면 자동화할 부분과 별도 시스템이 필요한 부분을 구분하기 쉬워집니다.

똑똑한개발자는 UX/UI 디자인과 웹·앱 개발을 함께 진행합니다. 필요한 화면과 기능을 정리하고, 실제 이용과 운영을 고려해 서비스를 만들어가는 과정을 돕습니다.

똑똑한개발자 UX/UI 디자인과 웹·앱 개발 소개

지금 만들고 있는 서비스나 개선하고 싶은 부분이 있다면 아래 똑똑한개발자 링크로 편하게 이야기 남겨주세요. 함께 살펴보겠습니다. 감사합니다. :)

클립보드에 복사되었어요 ✓
이 글을 공유해보세요!