2025년 파이썬 구글 스프레드시트 연동: 데이터 자동화 완벽 가이드

매일 반복되는 스프레드시트 작업에 지쳐있지는 않으신가요? 파이썬을 활용하면 구글 스프레드시트의 데이터를 손쉽게 자동화하고 업무 효율을 혁신할 수 있습니다. 이 가이드에서는 Google Cloud Platform 설정부터 gspread 라이브러리를 사용한 연동까지, 파이썬과 구글 시트를 연결하는 모든 과정을 상세히 다룹니다. 이제 지루한 수작업 대신 스마트한 자동화로 여러분의 시간을 절약하고, 데이터 관리의 새로운 지평을 열어보세요!

1. Google Cloud Platform (GCP) 설정: API 사용을 위한 첫걸음

파이썬에서 Google Sheets API를 사용하려면 먼저 Google Cloud Platform에서 필요한 설정을 완료해야 합니다. 이는 API 사용 권한을 얻고, 파이썬 애플리케이션이 구글 서비스에 안전하게 접근할 수 있도록 하는 과정입니다.

1.1. Google Cloud Platform 프로젝트 생성

  1. GCP Console 접속: Google Cloud Platform Console에 접속하여 Google 계정으로 로그인합니다.

python_Google_sheet_사용하기20.png

1.2. Google Sheets API 활성화

  1. API 및 서비스 라이브러리 이동: 새로 생성된 프로젝트가 선택된 상태에서, 좌측 메뉴에서 "API 및 서비스" > "라이브러리"로 이동합니다.

  2. API 검색 및 활성화:

    • 검색창에 "Google Sheets API"를 검색하여 선택합니다.python_Google_sheet_사용하기21.png

    • "사용 설정" 버튼을 클릭하여 Google Sheets API를 활성화합니다.python_Google_sheet_사용하기22.png

    • : 시트 생성, 공유 등 더 다양한 기능을 활용하려면 "Google Drive API"도 검색하여 함께 활성화해 주는 것이 좋습니다.

1.3. 서비스 계정 생성 및 인증 정보 다운로드

파이썬 코드가 Google Sheets에 접근할 때 사용할 "서비스 계정"을 생성하고 인증 정보를 다운로드합니다. 이 서비스 계정은 여러분의 구글 계정을 대신하여 API 요청을 수행합니다.

  1. 사용자 인증 정보 이동: 좌측 메뉴에서 "API 및 서비스" > "사용자 인증 정보"로 이동합니다.python_Google_sheet_사용하기23.png

  2. 서비스 계정 생성:

    • 상단의 "사용자 인증 정보 만들기"를 클릭하고 "서비스 계정"을 선택합니다.python_Google_sheet_사용하기24.png

    • 서비스 계정 이름(예: sheets-automation-service), 서비스 계정 ID를 입력하고 "완료"를 클릭합니다.python_Google_sheet_사용하기25.png

  3. JSON 키 파일 다운로드:

    • 생성된 서비스 계정 목록에서 방금 만든 서비스 계정을 클릭합니다.python_Google_sheet_사용하기26.png

    • 상단 메뉴에서 "키" 탭을 선택하고 "키 추가" > "새 키 만들기"를 클릭합니다.python_Google_sheet_사용하기27.pngpython_Google_sheet_사용하기28.png

    • 키 유형으로 "JSON"을 선택하고 "만들기"를 클릭합니다. JSON 파일이 자동으로 다운로드됩니다.python_Google_sheet_사용하기29.png

    • 매우 중요: 이 JSON 파일은 서비스 계정의 인증 정보를 담고 있으므로 안전한 곳에 보관하고 절대 외부에 유출되지 않도록 주의해야 합니다. 파이썬 스크립트와 같은 디렉토리에 저장하는 것이 편리합니다.

2. Google Sheets 공유 설정: 서비스 계정에 권한 부여

파이썬 코드에서 접근하려는 특정 Google Sheet에 서비스 계정의 접근 권한을 명시적으로 부여해야 합니다.

  1. 대상 Google Sheet 열기: 파이썬으로 제어하고 싶은 Google Sheet를 웹 브라우저에서 엽니다.

  2. 서비스 계정 이메일 확인: 다운로드한 JSON 파일을 텍스트 편집기(메모장, VS Code 등)로 열어 client_email 필드의 값을 복사합니다. 이 이메일 주소가 바로 여러분의 서비스 계정입니다.

    • 예시: "client_email": "your-service-account-name@your-project-id.iam.gserviceaccount.com"python_Google_sheet_사용하기31.png

  3. Google Sheet 공유:

    • Google Sheet 우측 상단의 "공유" 버튼을 클릭합니다.python_Google_sheet_사용하기30.png

    • "사용자 및 그룹 추가" 필드에 복사한 client_email을 붙여넣습니다.

    • python_Google_sheet_사용하기32.png

    • 권한을 **"편집자"**로 설정하고 "보내기"를 클릭합니다. 이제 서비스 계정이 해당 스프레드시트에 접근하고 수정할 수 있는 권한을 갖게 됩니다.

3. 파이썬 라이브러리 설치 및 연동 코드 작성

이제 파이썬 환경에서 필요한 라이브러리를 설치하고, 다운로드한 서비스 계정 정보를 사용하여 Google Sheets와 연동하는 코드를 작성할 차례입니다.

3.1. 필요 라이브러리 설치

터미널 또는 명령 프롬프트에서 다음 명령어를 실행하여 gspread 라이브러리와 인증 관련 라이브러리(oauth2client)를 설치합니다. gspread는 Google Sheets API를 파이썬에서 쉽게 사용할 수 있도록 도와주는 강력한 라이브러리입니다.

pip install gspread oauth2client

3.2. 파이썬 코드 작성 예시

다운로드한 JSON 파일(예: credentials.json)이 파이썬 스크립트와 같은 디렉토리에 있다고 가정하고 다음 코드를 작성합니다.

 


import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 1. Google Sheets API에 접근하기 위한 Scope 설정
# 일반적으로 두 가지 Scope를 모두 사용하는 것이 좋습니다.
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]

# 2. 서비스 계정 인증 정보 로드
# 다운로드한 JSON 파일의 경로를 지정합니다.
creds = ServiceAccountCredentials.from_json_keyfile_name('json파일이름으로 수정해주세요.json', scope)

# 3. gspread 클라이언트 인증
client = gspread.authorize(creds)

# 4. 스프레드시트 열기 (방법 1: 이름으로 열기)
# my_spreadsheet_name을 실제 스프레드시트 이름으로 변경하세요.
try:
    spreadsheet = client.open_by_url("구글 시트 url 주소를 입력해 주세요.")
    print(f"'{spreadsheet.title}' 스프레드시트를 성공적으로 열었습니다.")
except gspread.exceptions.SpreadsheetNotFound:
    print("지정된 이름의 스프레드시트를 찾을 수 없습니다. 이름이 정확한지 확인하세요.")
    exit()

# 5. 워크시트 선택 (방법 1: 첫 번째 워크시트 선택)
worksheet = spreadsheet.sheet1
print(f"'{worksheet.title}' 워크시트를 선택했습니다.")

# 6. 데이터 읽기 예시
# 모든 값 읽기
all_values = worksheet.get_all_values()
print("\n모든 값:")
for row in all_values:
    print(row)

# 특정 셀 값 읽기 (예: A1 셀)
cell_a1 = worksheet.acell('A1').value
print(f"\nA1 셀의 값: {cell_a1}")

# 7. 데이터 쓰기 (업데이트) 예시
# 특정 셀 업데이트 (예: A1 셀을 'Hello, Python!'으로)
for i in range(1, 10):    
    worksheet.update_acell(f'A{i}', 'Hello, Python!')
    print(f"\nA{i} 셀이 'Hello, Python!'으로 업데이트되었습니다.")

# 새로운 행 추가
# worksheet.append_row(['New Data 1', 'New Data 2', 'New Data 3'])
# print("\n새로운 행이 추가되었습니다.")

# 여러 셀 한 번에 업데이트 (Batch Update)
# update_cells() 함수는 셀 객체 리스트를 받습니다.
# cell_list = worksheet.range('A2:C2')
# cell_list[0].value = 'Updated A2'
# cell_list[1].value = 'Updated B2'
# cell_list[2].value = 'Updated C2'
# worksheet.update_cells(cell_list)
# print("\nA2:C2 셀이 업데이트되었습니다.")


이 가이드를 통해 Google Cloud Platform 설정부터 gspread 라이브러리 활용까지, 파이썬으로 구글 스프레드시트 데이터를 자동화하는 모든 과정을 익히셨습니다. 이제 반복적인 수작업에서 벗어나 데이터 처리 효율을 극대화할 수 있습니다. 정기 보고서 생성, 웹 스크래핑 데이터 저장 등 다양한 분야에 이 기술을 적용하여 업무 생산성을 높여보세요. 궁금한 점은 언제든 질문해주시고, 여러분의 스마트한 데이터 관리 여정을 응원합니다!