구글 시트 API 접속 설정하기

구글 시트 API 접속 설정하기

AI
구글 시트 API 접속 설정하기
Author

gabriel yang

Published

April 9, 2025

구글 시트 API 접속 설정하기

구글 시트는 데이터 관리와 공유에 매우 유용한 도구입니다. 특히 프로그래밍을 통해 구글 시트에 접근하면 자동화된 데이터 처리가 가능해집니다. 이번 글에서는 서비스 계정과 프라이빗 키를 이용해 구글 시트에 안전하게 접속하는 방법을 단계별로 알아보겠습니다.

구글 시트 API를 사용하기 위해서는 Google Cloud Platform에서 몇 가지 설정이 필요합니다. 특히 프라이빗 키를 이용한 접속은 사용자 인증 없이도 프로그래밍 방식으로 구글 시트에 접근할 수 있어 자동화에 매우 유용합니다.

Google Cloud Platform 프로젝트 생성하기

  1. Google Cloud Platform에 접속합니다.

  2. 사용할 구글 계정으로 로그인합니다.

  3. 상단의 Google Cloud 문자 우측의 프로젝트 선택 영역에서 “새 프로젝트”를 클릭합니다.

  4. 프로젝트 이름을 입력하고 “만들기”를 클릭합니다.

  5. 테스트를 위해 n8n project를 생성했습니다.

필요한 API 활성화하기

구글 시트 API와 함께 Google Drive API도 함께 활성화하는 것이 좋습니다. 두 API는 연관되어 있으며, 완전한 기능을 위해 함께 사용되는 경우가 많습니다.

  1. 좌측 메뉴에서 “API 및 서비스” > “라이브러리”로 이동합니다.
  2. “Google Sheets API”를 검색하여 선택한 후 “사용 설정”을 클릭합니다.
  3. 같은 방법으로 “Google Drive API”도 검색하여 활성화합니다.

서비스 계정 및 프라이빗 키 생성하기

Google Sheet와 Google Driver 기능을 사용하기 위한 API를 생성합니다.

서비스 계정 만들기

  1. 좌측 메뉴에서 “API 및 서비스” > “사용자 인증 정보”로 이동합니다.

  1. “사용자 인증 정보 만들기” > “서비스 계정”을 선택합니다.

3.서비스 계정 이름과 설명을 입력한 후 “만들기 및 계속”을 클릭합니다.

  • 서비스 계정 이름은 시스템 간의 통신을 위한 비인간 계정을 식별하는 고유한 이름입니다.
  • 사용 목적을 쉽게 알 수 있는 이름을 사용하세요.

4.필요한 권한을 설정하고 “완료”를 클릭합니다.

프라이빗 키 생성하기

  1. “사용자 인증 정보” 메뉴에서 생성된 서비스 계정의 이메일 주소를 클릭합니다.
  2. “키” 탭을 선택하고 “키 추가” > “새 키 만들기”를 클릭합니다.

  1. 키 유형으로 “JSON”을 선택하고 “만들기”를 클릭합니다.
  2. 서비스 계정의 비공개 키 JSON 파일이 자동으로 컴퓨터에 다운로드됩니다.
Important

이 JSON 파일은 한 번만 다운로드할 수 있으며, 이후에는 다시 다운로드할 수 없습니다. 안전한 곳에 보관하세요.

구글 시트에 서비스 계정 권한 부여하기

프라이빗 키만으로는 구글 시트에 접근할 수 없습니다. 서비스 계정에 해당 시트에 대한 접근 권한을 부여해야 합니다.

  1. 다운로드된 JSON 파일에서 “client_email” 값을 복사합니다.
  2. 연결하려는 구글 시트로 이동하여 “공유” 버튼을 클릭합니다.
  3. 복사한 서비스 계정 이메일을 입력하고 권한을 “편집자”로 설정한 후 “공유”를 클릭합니다.

JSON 키 파일 구조 이해하기

다운로드된 JSON 파일에는 다음과 같은 정보가 포함되어 있습니다:

{
  "type": "service_account",
  "project_id": "프로젝트ID",
  "private_key_id": "키ID",
  "private_key": "-----BEGIN PRIVATE KEY-----\n프라이빗 키 내용\n-----END PRIVATE KEY-----\n",
  "client_email": "서비스계정이메일@프로젝트ID.iam.gserviceaccount.com",
  "client_id": "클라이언트ID",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "인증서URL"
}

이 중에서 가장 중요한 요소는 다음과 같습니다:

  • private_key: 인증에 사용되는 실제 프라이빗 키입니다.
  • client_email: 구글 시트에 권한을 부여할 때 사용하는 서비스 계정의 이메일 주소입니다.
  • project_id: 구글 클라우드 프로젝트의 ID입니다.

프로그래밍 언어별 구글 시트 API 연결 방법

다양한 프로그래밍 언어에서 프라이빗 키를 이용해 구글 시트 API에 연결할 수 있습니다. 여기서는 Python을 예로 들어보겠습니다.

Python에서 구글 시트 API 사용하기

먼저 필요한 라이브러리를 설치합니다:

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client

다음은 프라이빗 키를 이용해 구글 시트에 접근하는 기본 코드입니다:

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

# 서비스 계정 JSON 키 파일 경로
SERVICE_ACCOUNT_FILE = 'path/to/your-service-account-key.json'

# 필요한 권한 범위 설정
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']

# 인증 정보 생성
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# 구글 시트 API 서비스 객체 생성
service = build('sheets', 'v4', credentials=credentials)

# 스프레드시트 ID와 범위 지정
SPREADSHEET_ID = 'your-spreadsheet-id'  # 스프레드시트 URL에서 추출
RANGE_NAME = 'Sheet1!A1:E10'  # 데이터를 가져올 범위

# 데이터 가져오기
result = service.spreadsheets().values().get(
    spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME).execute()
values = result.get('values', [])

# 결과 출력
if not values:
    print('데이터가 없습니다.')
else:
    for row in values:
        print(row)

주의사항 및 모범 사례

  1. 프라이빗 키 보안: 프라이빗 키는 절대 공개 저장소에 업로드하거나 공유하지 마세요. 환경 변수나 안전한 비밀 관리 서비스를 사용하세요.
  2. 최소 권한 원칙: 서비스 계정에는 필요한 최소한의 권한만 부여하세요. 편집이 필요하지 않다면 “뷰어” 권한만 부여하는 것이 좋습니다.
  3. API 할당량 관리: 구글 API에는 사용량 제한이 있습니다. 대량의 요청을 보낼 때는 할당량 초과에 주의하세요.
  4. 키 순환: 보안을 위해 정기적으로 프라이빗 키를 갱신하는 것이 좋습니다.

결론

구글 시트 API를 프라이빗 키로 접속하는 방법을 알아보았습니다. 이 방법을 활용하면 사용자 인증 없이도 프로그래밍 방식으로 구글 시트에 접근할 수 있어, 데이터 자동화 작업에 매우 유용합니다. 보안에 주의하면서 구글 시트 API의 강력한 기능을 활용해보세요.

카테고리 다른 글

Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Apr 6, 2025 Crawl4AI를 이용한 웹크롤링 gabriel yang
Apr 5, 2025 Crawl4AI란 gabriel yang
Mar 30, 2025 Ollama에서 Generation Parameter 설정 가이드 gabriel yang
Mar 23, 2025 Google PSE로 Local LLM에 웹검색 기능 추가 gabriel yang
Dec 23, 2023 ChatGPT3.5와 ChatGPT4의 차이점 gabriel yang
Dec 22, 2023 Google Gemeni API Key 얻기 gabriel yang
Dec 14, 2023 RAG(Retrieval Argumented Generation) 정리하기 gabriel yang
No matching items
Back to BLOG LIST