Google API 6개 + Claude Code로 개인 운영 체계 자동화하기

1. 소개

1) 시도하고자 했던 것: 흩어진 Google 서비스들을 하나의 명령 체계로 통합하고, 실제 일상 데이터를 자동으로 관리하는 시스템 구축

2) 그 이유:

저는 매일 아침 이렇게 시작했습니다:

  • 캘린더, 미리알림 앱 열어서 오늘 일정 확인

  • Gmail 앱 열어서 중요 메일 확인

  • Google Tasks 앱 열어서 할 일 확인

  • 달리기 기록은 굿노트에 수동 입력

  • 습관 체크는 머릿속으로...

모든 것이 분산되어 있었고, 매일 여러 앱을 돌아다니는 것이 비효율적이었습니다. 특히 3년간 Google Tasks에 쌓아둔 독서/영화 기록은 완료 처리하면 API에서 조회도 안 되어 사라질 위기였습니다.

3) 목표: Claude Code에서 /daily-note 한 번으로 오늘의 일정 + 할 일 + 메일 현황을 한눈에 파악하고, 달리기/습관 기록이 자동으로 Google Sheets에 쌓이는 시스템

2. 진행 방법

- 사용한 도구

  • Claude Code - 자연어 명령으로 자동화 스킬 실행

  • Google API Python Client - 공식 라이브러리, 6개 서비스 연동

  • OAuth 2.0 Desktop App - 한 번 인증으로 모든 서비스 접근

  • Python venv - 시스템 Python 오염 없이 독립 환경

  • CleanShot - 스크린샷 OCR로 사라진 데이터 복구

Day 1: Google 생태계 통합 기반 구축 (2/2 월요일)

1) 시작점

서비스

상태

Google Calendar

gcalcli로 연동

Gmail

프로모션 삭제만 가능

Tasks, Sheets, Drive, Docs

미연동

2) 작업 과정

1단계: Claude Code 스킬 생성

# .claude/skills/google-tasks/SKILL.md
Google Tasks 할 일 관리 스킬

## 사용 가능한 작업
- 태스크 조회: `python services/tasks.py list`
- 태스크 추가: `python services/tasks.py add "제목"`
- 태스크 완료: `python services/tasks.py complete <task_id>`

2단계: 실제 데이터 연동

습관 트래커 시트와 달리기 기록 시트를 생성하고 실제 데이터를 넣었습니다:

# 달리기 기록 7개 동기화
records = [
    ["2026-02-01", 649, "5.13", "27:45", "5'24\"", 153, 174],
    ["2026-02-02", 650, "5.14", "28:12", "5'29\"", 155, 176],
    # ...
]
sheets_service.spreadsheets().values().update(
    spreadsheetId=SHEET_ID,
    range='일별기록!A2:G8',
    valueInputOption='USER_ENTERED',
    body={'values': records}
).execute()

3단계: 결과물

서비스

상태

Google Calendar

기존 gcalcli 유지 + /daily-note 통합

Google Tasks

API 연동 완료, /daily-note에 미완료 태스크 자동 표시

Google Sheets

API 연동 완료, 습관 트래커 + 달리기 기록 시트 생성

Google Drive

API 연동 완료, 파일 업로드/다운로드/검색

Gmail

API 연동 완료, 메일 검색/조회/읽지 않은 수 확인

Google Docs

API 연동 완료, 문서 생성/읽기/편집

/google-sync 실행 결과 - 6개 서비스 상태가 한눈에 보이는 터미널 화면


Day 2 오전: 실사용 중 버그 발견 & 시스템 안정화 (2/3 화요일)

1) 656회째 달리기 기록 처리 중 버그 발견

/running-daily를 실행했는데 Daily Note를 찾지 못하는 버그가 발생했습니다.

원인 추적:
- SKILL.md 47행: `YYYY-MM-DD(요일).md`로 정의
- 실제 파일명: `YY-MM-DD(요일).md` (예: 26-02-03(화).md)
- 패턴 불일치로 파일을 찾지 못한 것

교훈: 파일명 규칙이 바뀌었는데 스킬 문서는 업데이트되지 않았습니다. 매일 사용하는 것 자체가 테스트입니다.

스킬 중복 문제 발견 및 정리

시스템 스킬 목록에 google-calendar, voice-memo가 중복 표시되고 있었습니다.

2) 원인 분석: Claude Code는 스킬을 3곳에서 로드합니다:

  • ~/.claude/skills/ (사용자 레벨)

  • ~/.claude/commands/ (사용자 레벨)

  • ~/workspace/.claude/skills/ (프로젝트 레벨)

같은 이름이 여러 곳에 있으면 중복 표시됩니다.

중복 항목

위치 1

위치 2

조치

voice-memo

~/.claude/commands/ (구버전)

~/.claude/skills/ (상세)

commands/ 삭제

google-calendar

~/.claude/skills/ (101행)

~/workspace/.claude/skills/ (339행)

사용자 레벨 삭제

3) 정리 원칙 수립:

  • 범용 스킬~/.claude/skills/ (달리기, 음성메모, 회고 등)

  • 프로젝트 전용~/workspace/.claude/skills/ (Google 연동 등)

4) Gmail 41개 일괄 정리

google-integration의 Gmail API를 활용해서 정리했습니다:

  • 프로모션 37개 → 휴지통

  • 스팸성 18개 → 휴지통

  • 나머지 19개 → 읽음 처리

  • 결과: 읽지 않은 메일 41개 → 0개

Day 2 오후: 3년치 독서/영화 기록 정리 (2/3 화요일)

1) 데이터 수집의 어려움

Google Tasks API의 한계를 발견했습니다:

  • 완료된 항목은 일정 기간 후 API에서 조회 불가

  • 3년간 읽은 책들이 완료 처리되어 사라질 위기

2) 해결 방법:

  1. Google Tasks API로 현재 목록 조회 (10개 목록)

  2. CleanShot 스크린샷 OCR로 완료된 항목 복구

  3. 다이어리 캡쳐에서 2025년 기록 추출

3) 파일 구조 설계

45-reviews/
├── books/
│   ├── book-list-2023.md      # 연도별 읽은 책
│   ├── book-list-2024.md
│   ├── book-list-2025.md
│   ├── books-completed.md     # 전체 통합
│   └── books-to-read.md       # 읽을 책
└── movies/
    ├── movie-list-2024.md
    ├── movie-list-2025.md
    ├── movies-completed.md
    └── movies-to-watch.md

4) 메타데이터 보강

단순 제목 목록이 아닌, 저자/감독, 출판/개봉년도를 추가했습니다:

| 제목 | 저자 | 출판년도 |
|------|------|----------|
| 사피엔스 | 유발 하라리 | 2011 |
| 총, 균, 쇠 | 재레드 다이아몬드 | 1997 |
| 특이점이 온다 | 레이 커즈와일 | 2005 |
  • 확실한 책: 직접 지식으로 입력

  • 불확실한 책: 웹 검색으로 확인

  • 사용자 정정: 부트2024(효라클), 입지센스(훨훨) 등

5) 독서 패턴 발견

3년치를 모아보니 패턴이 보였습니다:

연도

권수

주요 주제

2023

15권

재테크/부동산 (돈의속성, 부의 추월차선, 청약)

2024

8권

세계관 형성 (사피엔스, 총균쇠, 특이점이 온다)

2025

12권

뇌과학 + 투자 (클루지, 정리하는 뇌, 비트코인)

📸 books-completed.md 파일 내용

2020년 한국 가수 순위

시스템 구조 (최종)

~/.credentials/
├── calendar_credentials.json    # OAuth 클라이언트 (기존)
├── calendar_token.json          # gcalcli용 토큰 (기존)
└── google_integration_token.json # 6개 서비스 통합 토큰 (신규)

20-operations/22-automation/google-integration/
├── .venv/                       # 가상환경
├── auth.py                      # 통합 인증
└── services/
    ├── tasks.py
    ├── sheets.py
    ├── drive.py
    ├── gmail.py
    └── docs.py

.claude/skills/
├── google-tasks/
├── google-sheets/
├── google-drive/
└── running-daily/              # Sheets 동기화 추가

.claude/commands/
├── google-sync.md              # 전체 상태 확인
└── daily-note.md               # Calendar + Tasks + Gmail 통합

40-personal/45-reviews/
├── books/                      # 독서 기록
└── movies/                     # 영화 기록

3. 결과와 배운 점

1) 숫자로 보는 성과

항목

Day 1

Day 2

합계

통합한 Google 서비스

6개

-

6개

작성한 Python 래퍼

5개

-

5개

생성한 Claude Code 스킬

3개

-

3개

생성한 Google Sheets

2개

-

2개

동기화한 달리기 기록

7개

1개

8개

정리한 Gmail

-

55개

55개

해결한 버그/중복

-

3개

3개

정리한 독서 기록

-

55권

55권

정리한 영화 기록

-

23편

23편

2) 달성한 것

  • /daily-note 한 번으로 오늘의 일정 + 할 일 + 메일 현황 확인

  • /running-daily 실행 시 Google Sheets 자동 동기화

  • /google-sync로 6개 서비스 상태 한눈에 파악

  • 3년간 35권 읽었다는 사실을 처음 인지

  • "읽을 책 20권" 큐 생성 → 우선순위 결정 가능

3) 배운 점

1. Google Tasks API 한계

완료된 항목은 일정 기간 후 API에서 조회가 안 됩니다. 중요한 기록은 완료 전에 백업하거나, 스크린샷으로 보관해야 합니다.

2. 쓰면서 고치기가 최고의 QA

처음 만들 때 완벽할 수 없습니다. /running-daily를 매일 쓰면서 Daily Note 연동 버그를 발견했습니다. 매일 사용하는 것 자체가 테스트입니다.

3. 설정의 단일 진실 원천(Single Source of Truth)

같은 설정이 여러 곳에 있으면 반드시 문제가 생깁니다. 스킬을 정리할 때 한쪽으로 통합하는 원칙이 필요합니다.

4. 데이터의 아카이빙이 중요하다.

구조만 만들지 말고 실제 데이터를 즉시 흘려보내야 합니다. 그래야 의미있는 데이터가 만들어진다.

4) 앞으로의 계획

단기 (1주)

  • [ ] 습관 트래커 매일 기록하여 데이터 축적

  • [ ] 인상 깊었던 책 3권에 평점·한줄평 작성

중기 (1개월)

  • [ ] 습관 달성률 월별 분석 자동화

  • [ ] 달리기 기록 차트 생성 (Sheets 차트 기능)

  • [ ] 월 1권 독서 리뷰 작성 시작

장기 (3개월)

  • [ ] Google Forms로 모바일 습관 체크 간소화

  • [ ] 투자 포트폴리오 Sheets 자동 업데이트

  • [ ] 블로그에 독서 리뷰 시리즈 시작

  • [ ] 700회 달리기 달성 회고

📸 습관 트래커 Google Sheets 화면, 달리기 기록 시트

4. 핵심 교훈 5가지

  1. 구조보다 데이터가 먼저 - 완벽한 시스템을 만들기보다 실제 데이터를 하나라도 흘려보내는 것이 더 가치있다

  2. 쓰면서 고치기가 최고의 QA - 매일 사용하는 것 자체가 테스트. 발견 즉시 고치는 것이 시스템 유지의 핵심

  3. 자동화의 진짜 가치는 꾸준함에 있다 - 시스템을 만드는 것보다 매일 사용하는 것이 더 중요하다


5. 도움 받은 글(사례)

  • 진여진 스터디장님 제공 자료 및 인사이트

6. (참고) Google Sheets

2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요