17. Building Google Skills — Part 2
데이터에서 시간과 행동으로
16편에서 Gmail, Sheets, Drive를 만들었습니다. 이 3개는 데이터를 다루는 스킬입니다. 메일을 읽고, 시트를 조회하고, 파일을 관리합니다.
이번에 만드는 2개는 역할이 다릅니다. Calendar는 시간을 다루고, Tasks는 행동을 다룹니다. 오늘 뭐 해야 하는지, 다음에 뭘 해야 하는지.
프롬프트의 구조는 16편과 같습니다. 공식 문서, 어떤 기능, 인증, 저장 경로, 내 상황 — 5가지.
Step 1. Google Calendar 스킬 만들기
@skills-guide.md 참고해서 Google Calendar 스킬 만들려고 해.
일정 확인하고 등록하는 기능이 필요해.
16편과 같은 방식입니다. Claude Code가 "기간별 조회도 넣을까요?", "캘린더 목록 확인은요?" 물어봅니다. 필요한 것들을 하나씩 답하면 됩니다. Claude Code가 gcal.py와 SKILL.md를 만들었습니다.
테스트와 수정
수정은 2번 했습니다.
1회차 — 일정 제목에 날짜가 중복되었습니다.
일정 등록할 때, 제목에 날짜/시간을 넣지 않게 해줘.
"2월 18일 미팅"이 아니라 "미팅"만 제목으로.
날짜와 시간은 별도 파라미터로 받아야 해.
이건 Google Calendar의 특성 때문입니다. 제목에 날짜를 넣으면 캘린더 UI에서 중복 표시됩니다.
2회차 — 캘린더 분리가 필요했습니다.
Money 캘린더에서 대출 상환일, 카드 결제일을 별도로 가져올 수 있게 해줘.
--calendar 옵션으로 특정 캘린더만 조회.
저는 Google Calendar에 일정용과 금융 알림용, 두 개의 캘린더를 씁니다. 카페 운영자에게 대출 상환일과 카드 결제일은 놓치면 안 되는 일정입니다. 이걸 프롬프트에 넣으면 Claude가 캘린더별 필터 기능을 추가합니다.
이게 16편에서 말한 "내 상황에 맞는 디테일"입니다.
Calendar 스킬은 아침 루틴의 핵심입니다. /daily-note를 실행하면, 이 스킬이 오늘 일정을 가져와서 Daily Note에 삽입합니다. 15편에서 보여드린 아침 루틴 시나리오가 이 스킬에서 시작됩니다.
Step 2. Google Tasks 스킬 만들기
@skills-guide.md 참고해서 Google Tasks 스킬 만들려고 해.
터미널에서 추가한 할 일을 Google Tasks에 동기화하고 싶어.
Tasks 스킬은 다른 4개와 좀 다릅니다. "조회/검색"보다 "동기화"가 핵심입니다. 그래서 처음부터 "동기화하고 싶어"라고 말했습니다. Claude Code가 "양방향인가요, 단방향인가요?", "우선순위 구분이 필요한가요?" 물어봅니다.
터미널에서 /todo로 할 일을 추가하면, 로컬 파일에 저장되고, Google Tasks에 올라가고, 안드로이드 폰 위젯에 바로 뜹니다.
수정은 1번:
동기화할 때 이미 있는 항목은 건너뛰게 해줘. 중복 추가 방지.
왜 단방향인가
로컬 -> Tasks 방향만 있습니다. 양방향 동기화를 안 하는 이유가 있습니다.
할 일을 추가하는 곳은 터미널입니다. 확인하는 곳은 폰(Tasks 위젯)입니다. 적는 곳과 보는 곳이 다릅니다.
이전에는 적을 곳이 여러 군데였습니다. 포스트잇, 메모 앱, 카톡 나에게 보내기. 어디에 적었는지 찾는 게 또 일이었습니다. 매장에 포스트잇을 붙여놓고 다음 날 까먹은 적이 한두 번이 아닙니다.
적는 곳 하나, 보는 곳 하나. 연결은 자동. 이게 핵심입니다.
5개 스킬 전체 정리
| 스킬 | 프롬프트 길이 | 수정 횟수 | 소요 시간 | 만든 편 |
|---|---|---|---|---|
| Gmail | 6줄 | 3회 | ~10분 | 16편 |
| Sheets | 5줄 | 1회 | ~5분 | 16편 |
| Drive | 6줄 | 2회 | ~7분 | 16편 |
| Calendar | 5줄 | 2회 | ~7분 | 17편 |
| Tasks | 6줄 | 1회 | ~5분 | 17편 |
| 합계 | 9회 | ~34분 |
0줄.대화의 패턴 복습
16편에서 발견한 패턴을 5개 전체로 확장합니다:
| 요소 | Gmail | Sheets | Drive | Calendar | Tasks |
|---|---|---|---|---|---|
| 1. 공식 문서 | @skills-guide.md | @skills-guide.md | @skills-guide.md | @skills-guide.md | @skills-guide.md |
| 2. 어떤 기능 | 메일 읽기/검색/발송 | 시트 읽기/쓰기 | 파일 검색/이동 | 일정 조회/등록 | 할 일 동기화 |
| 3. 인증 | google_auth.py | google_auth.py | google_auth.py | google_auth.py | google_auth.py |
| 4. 경로 | gmail/ | google-sheets/ | google-drive/ | google-calendar/ | google-tasks/ |
| 5. 내 상황 | 라벨, 한국식 날짜 | JSON 출력 | 사업장 폴더 | Money 캘린더 | 로컬 파일 동기화 |
1번(공식 문서)과 3번(인증)은 5개가 전부 같습니다. 공식 문서가 대화의 출발점이고, 통합 인증 모듈 하나로 5개 서비스에 접근합니다. 인증 설정은 다음 글(18편)에서 다룹니다.
개별 스킬이 아니라, 조합이 가치다
| 시나리오 | 사용 스킬 |
|---|---|
| 아침 루틴 | Calendar + Gmail |
| 급여 처리 | Gmail + Sheets + Gmail |
| 영수증 관리 | Drive |
| 할 일 관리 | Tasks |
| Daily Note | Calendar + Tasks |
하나의 스킬은 하나의 도구입니다. 도구가 조합되면 워크플로우가 됩니다.
카페에서 에스프레소 머신, 그라인더, 스케일. 각각은 도구입니다. 세 개가 조합되면 "한 잔의 커피"라는 워크플로우가 됩니다. 도구 하나하나의 스펙보다, 어떻게 엮이는지가 가치입니다.
자주 묻는 질문
Q: Calendar를 위한 별도 도구(gcalcli 같은)를 설치해야 하나요?
아닙니다. 이 글에서 보여드린 방법은 5개 서비스 모두 같은 통합 인증 모듈(google_auth.py)을 씁니다. Calendar만 별도 도구를 설치할 필요 없습니다.
Q: Tasks 동기화가 단방향이면 불편하지 않나요?
적는 곳(터미널)과 보는 곳(폰)을 나누는 게 핵심입니다. 폰에서는 확인과 체크만 합니다. 새로운 할 일을 추가하는 건 항상 터미널에서.
Q: 5개 스킬의 코드를 수정하고 싶으면 어떻게 하나요?
코드를 직접 수정할 필요 없습니다. Claude Code에게 "검색 결과를 5개만 보여줘"라고 말하면 됩니다. 추가 기능이 필요하면 "이런 기능도 넣어줘"라고 하면 됩니다. 코드를 이해하는 건 Claude의 몫입니다.
다음 글에서
5개 스킬의 틀이 완성되었습니다. 하지만 아직 Google과 연결되지 않았습니다.
다음 글(18편)에서는 Google에게 "이 앱을 허용해주세요"라고 등록하는 인증 과정을 다룹니다. Google Cloud Console에서 프로젝트를 만들고, API를 활성화하고, OAuth를 설정합니다. 한 번만 하면 5개 서비스가 동시에 연결됩니다.
인증까지 끝나면, 16편과 17편에서 만든 스킬이 실제로 작동합니다.
Tags: #Claude-Code #Season2 #Google-Skills #Google-Calendar #Google-Tasks #스킬만들기 #프롬프트 #비개발자