아침마다 반복되는 그 10분, AI로 없앨 수 있습니다
저는 요즘 매일 아침, 눈을 뜨면 어김없이 하루 일과업무와 이슈 브리핑을 해주는 비서 때문에 도움을 많이 받고 있습니다. 예상되는 오늘 있을 강의장소의 교통체증, 동선을 고려한 도착시간, 수업에서 언급하면 좋은 뉴스/계절/역사등의 팁까지 큰 만족감을 느낍니다. 만들었던 과정을 글로 소개하며 여러분에게 도움이 되었으면 좋겠습니다.
브리핑 시스템을 구축하기 전에는 구글 캘린더, Gmail 확인, 놓친 메일 훑기, 오늘 일정 머릿속으로 정리하기. 이 루틴이 끝나고 보면 어느새 10분이상이 쓰였습니다. 별것 아닌 것 같아도, 그 시간이 쌓이면 한 달에 300분, 1년이면 60시간 이상이 사라지는 셈입니다.
AI 생산성 관점에서 보면 이건 전형적인 비효율입니다. 반복적이고, 구조화돼 있고, 자동화가 충분히 가능한 작업이니까요.
이 글은 그 10분을 없앤 실제 경험을 담았습니다. Google Apps Script + Gemini API + Telegram을 연결해, 매일 아침 7시에 오늘 일정과 주요 메일 이슈를 자동으로 브리핑해주는 AI 비서를 구축하는 과정입니다.
특별한 코딩 경험이 없어도 괜찮습니다. AI에게 어떻게 물어보면 되는지, 프롬프트 중심으로 풀어드립니다.
전체 구조 한눈에 보기
복잡해 보이지만 흐름은 단순합니다.
Google Calendar + Gmail ↓Google Apps Script (매일 오전 7시 자동 실행) ↓Gemini API (브리핑 문장 생성) ↓Telegram Bot → 내 폰으로 발송
비용은 사실상 0원입니다. Gemini API 무료 티어가 하루 최대 1,500회 요청을 허용하는데, 이 브리핑은 하루 단 1번만 호출합니다. 구글 계정과 텔레그램 계정만 있으면 바로 시작할 수 있습니다.
사전 준비물 3가지
시작 전 아래 세 가지를 확인합니다.
- Google 계정 (Gmail + Google Calendar 사용 중인 것)
- Telegram 계정
- Google AI Studio 계정 (무료, aistudio.google.com)
AI 생산성을 높이는 핵심: 프롬프트로 코드 만들기
코드를 외울 필요가 없는 이유
이 자동화 시스템의 핵심은 Google Apps Script(GAS)입니다. JavaScript 기반의 구글 자동화 도구인데, 직접 코드를 작성하지 않아도 됩니다.
ChatGPT, Claude, Gemini 같은 AI에게 원하는 기능을 설명하면, 바로 사용할 수 있는 코드를 만들어줍니다. 중요한 것은 어떻게 요청하느냐입니다.
아래는 이 시스템을 만들 때 실제로 사용한 프롬프트입니다. 그대로 복사해서 AI에게 붙여넣으면 됩니다.
AI 생산성 구현을 위한 단계별 프롬프트
STEP 0 — 텔레그램 봇과 Gemini API 키 먼저 준비하기
코드 작업 전에 두 가지를 먼저 발급받아야 합니다.
텔레그램 봇 생성은 텔레그램 앱에서 @BotFather를 검색해 /newbot 명령으로 만들 수 있습니다. 봇 생성 후 받은 토큰 값과, 봇에 /start를 보낸 뒤 확인하는 Chat ID 두 가지를 메모해 둡니다.
Gemini API 키는 aistudio.google.com에서 좌측 “Get API Key” → “Create API key”를 클릭하면 발급됩니다. 생성 직후에만 전체 값이 표시되므로, 반드시 그 자리에서 복사해 안전한 곳에 보관합니다.
STEP 1 — 전체 구조 설계 프롬프트
script.google.com에서 새 프로젝트를 열고, AI에게 아래와 같이 요청합니다.
📋 프롬프트 1: 전체 구조 설계
추천 프롬프트“Google Apps Script로 다음 기능을 하는 자동화 코드를 작성해줘. 매일 아침 7시에 자동 실행되고, Google Calendar에서 오늘 일정을 가져오고, Gmail에서 최근 3일간 중요 메일(광고·뉴스레터 제외)을 스캔하고, 두 정보를 Gemini API(gemini-2.0-flash 모델)에 보내서 500자 이내의 브리핑을 생성하고, 그 결과를 텔레그램 봇으로 내 폰에 발송하는 구조야. 전체 흐름을 함수 단위로 나눠서 설명해줘.”
이 프롬프트 하나로 전체 시스템의 뼈대가 만들어집니다. AI가 함수 구조와 흐름을 설명해 주면, 다음 단계에서 각 부분을 채워 나갑니다.
STEP 2 — API 키 보안 저장 프롬프트
코드에 API 키를 직접 입력하는 것은 보안상 위험합니다. GAS에는 ‘스크립트 속성’이라는 안전한 저장 방식이 있습니다.
📋 프롬프트 2: 보안 설정
추천 프롬프트“Google Apps Script에서 API 키와 토큰을 코드에 직접 쓰지 않고 PropertiesService를 활용해 안전하게 불러오는 방법을 알려줘. 저장할 항목은 TELEGRAM_TOKEN, TELEGRAM_CHAT_ID, GEMINI_API_KEY, MY_EMAIL 4가지야. 스크립트 속성에 입력하는 방법과 코드에서 불러오는 방법을 함께 설명해줘.”
AI가 설명해 주는 대로 GAS 좌측 메뉴 ⚙️ 프로젝트 설정 → 스크립트 속성에서 4개 항목을 입력합니다.
STEP 3 — Gmail 스캔 로직 프롬프트
가장 핵심적인 부분입니다. 오늘 일정의 키워드를 추출해 관련 메일을 자동으로 연결하는 로직입니다.
📋 프롬프트 3: Gmail 스캔 로직
추천 프롬프트“Google Apps Script에서 GmailApp을 활용해 다음 기능을 구현해줘. 오늘 캘린더 일정 제목에서 핵심 키워드를 추출하고, 그 키워드로 최근 14일간의 메일 제목을 검색해서 미확인 여부, 회신 필요 여부, 발신자, 날짜, 제목을 정리해줘. 일정과 연관된 메일이 없을 때는 최근 3일간의 일반 업무 메일(교육, 강의, 미팅, 제안 관련)을 보여줘. 광고, 프로모션 카테고리는 완전히 제외해줘.”
STEP 4 — Gemini API 연동 프롬프트
수집된 일정과 메일 정보를 자연스러운 브리핑 문장으로 변환하는 단계입니다.
📋 프롬프트 4: Gemini API 연동
추천 프롬프트“Google Apps Script에서 Gemini 2.0 Flash API를 호출하는 코드를 작성해줘. API 키는 URL 파라미터가 아닌 반드시 HTTP 헤더(x-goog-api-key)로 전달해야 해. URL 파라미터 방식은 Google 보안 정책으로 간헐적 오류가 발생하거든. 입력값은 오늘 날짜, 일정 목록, 메일 이슈고, 출력은 이모지 포함 500자 이내의 텔레그램 브리핑 메시지야. 마크다운 문법은 절대 사용하지 않도록 프롬프트에 명시해줘.”
⚠️ 삽질 방지 포인트: API 키 전달 방식은 반드시 헤더 방식을 사용해야 합니다. URL 파라미터 방식(
?key=...)은 처음엔 작동하다가 Google 보안 정책 강화 이후API key not valid오류가 발생합니다. 이것 하나 때문에 며칠을 날릴 수 있습니다.
📢실제로 만난 에러 5가지와 해결법
구축 과정에서 가장 많은 시간을 잡아먹은 것은 코드가 아니라 에러 메시지였습니다. 같은 삽질을 반복하지 않도록 실제로 만난 에러와 해결법을 정리했습니다.(AI는 만들기는 쉬워도 디버깅 과정의 시간싸움입니다.🔨)
① 브리핑 생성 실패: API key not valid
"message": "API key not valid. Please pass a valid API key."
원인은 두 가지입니다.
첫째, API 키를 URL 파라미터 방식(?key=...)으로 전달한 경우입니다. 프롬프트 4번에서 언급한 대로 반드시 HTTP 헤더 방식(x-goog-api-key)으로 바꿔야 합니다.
둘째, 키 자체가 만료되거나 삭제된 경우입니다. aistudio.google.com에서 해당 키 상태를 확인하고, 문제가 있으면 새로 발급한 뒤 GAS 스크립트 속성의 GEMINI_API_KEY 값을 교체합니다.
② 브리핑 생성 실패: 사용 가능한 모델 없음
Gemini 모델명이 바뀌었을 가능성이 높습니다. 특히 preview 모델은 Google이 예고 없이 변경하는 경우가 있습니다.
아래 URL을 브라우저에 붙여넣으면 현재 키가 지원하는 모델 전체 목록을 확인할 수 있습니다.
https://generativelanguage.googleapis.com/v1beta/models?key=여기에_GEMINI_API_KEY
목록에서 flash가 포함된 모델명을 찾아 AI에게 “이 모델명으로 코드를 수정해줘”라고 요청하면 됩니다.(모델명으로 인한 에러 찾는데 시간이 가장 오래 걸렸습니다. 모델명 부터 체크!! 추천합니다.)
③ Bad Request: message text is empty
"description": "Bad Request: message text is empty"
Gemini API가 빈 텍스트를 반환했고, 그 빈 값이 텔레그램으로 전송되려다 발생하는 오류입니다.
아래 프롬프트로 AI에게 방어 코드 추가를 요청합니다.
📋 에러 대응 프롬프트
“sendTelegram 함수에서 message가 비어 있거나 null일 때 ‘[오류] 브리핑 내용이 비어있습니다.’를 대신 발송하도록 방어 코드를 추가해줘.”
④ 일정이 항상 “없음”으로 나올 때
CALENDAR_ID를 primary로 설정했을 때 실제 캘린더와 연결이 되지 않는 경우가 있습니다.
📋 에러 대응 프롬프트
“캘린더 ID를 primary 대신 실제 Gmail 주소로 직접 지정하도록 MY_EMAIL 속성을 캘린더 조회에 활용하는 방식으로 수정해줘.”
yourname@gmail.com 형태의 실제 주소를 직접 쓰는 방식으로 바꾸면 해결됩니다.
⑤ 트리거 실행 시에만 오류가 날 때
testBriefing은 잘 되는데 자동 트리거에서만 실패한다면 권한 문제입니다.
GAS 좌측 메뉴 ⏰ 트리거 → 해당 트리거 오른쪽 ⋮ → 실행 내역에서 정확한 오류 메시지를 확인할 수 있습니다. 대부분 트리거 저장 시 권한 허용을 놓친 경우입니다. setDailyTrigger 함수를 다시 실행하고, 뜨는 권한 팝업에서 허용을 눌러주면 됩니다.
공통 디버깅 팁
문제가 생기면 GAS 에디터 좌측 메뉴 실행 → 실행 내역에서 오류 메시지 전문을 확인하는 것이 가장 빠릅니다.
오류 메시지를 그대로 Claude나 ChatGPT에 붙여넣으면 대부분 즉시 해결책을 얻을 수 있습니다. 에러 메시지 자체가 AI에게 보내는 최고의 프롬프트입니다.
STEP 5 — 자동 트리거 등록 프롬프트
마지막으로 매일 자동 실행되도록 트리거를 등록합니다.
📋 프롬프트 5: 자동 트리거 등록
추천 프롬프트“Google Apps Script에서 dailyBriefing 함수를 매일 오전 6~7시에 자동 실행하는 시간 기반 트리거를 코드로 등록하는 방법을 알려줘. 기존 트리거가 있으면 먼저 삭제하고 새로 등록하도록 해줘. 트리거 등록 함수는 setDailyTrigger라는 이름으로 만들어줘.”
AI가 작성해 준 setDailyTrigger 함수를 한 번 실행하면, 이후 매일 자동으로 작동합니다.
테스트 실행 방법
전체 코드 완성 후, 함수 선택 드롭다운에서 testBriefing 선택 → ▶ 실행합니다.
처음 실행 시 Google 계정 권한 허용 팝업이 뜹니다. 허용을 클릭합니다.
실행 로그에 브리핑 발송 완료: 2026년 X월 X일 (X)가 표시되고, 텔레그램으로 브리핑이 도착하면 성공입니다.
실제 브리핑 결과물 예시
완성된 시스템이 매일 아침 발송하는 브리핑은 이런 형태입니다. 문구는 여러분이 받고 싶은 톤을 반영하시면 만족감이 더 높아질껍니다. 추가로 목록에 오늘의 날씨/추천 명언/영어 표현/밤사이 미국주식 이슈등을 넣어서 맞춤형으로 만들어 보세요.
☀️ 좋은 아침입니다!2026년 3월 28일 (토) 브리핑📅 오늘의 일정오늘 등록된 외부 일정은 없습니다.📬 주요 메일 이슈[회신필요] [3/26] 김OO (**기관) └ RE: **기관 스마트 직무교육 관련[확인] [3/27] 서OO (**기업) └ 생성형AI 활용 교육 제안서 요청🍀 오늘 하루도 한 걸음씩, 충분히 잘 하고 있습니다!
반드시 기억할 것: AI 생성 결과는 사람이 확인해야 합니다
이 시스템의 핵심 가치는 반복 작업을 AI에게 위임하고, 사람은 판단이 필요한 일에 집중하는 데 있습니다.
그러나 한 가지 원칙은 반드시 지켜야 합니다.
AI가 생성한 브리핑은 참고 자료입니다. 최종 판단은 사람이 해야 합니다.
메일 우선순위 결정, 일정 조율, 맥락이 필요한 업무 판단은 AI가 완전히 대체할 수 없습니다. 자동화는 강력한 보조 도구이지, 의사결정자가 아닙니다.
더 발전시킬 수 있는 방향
이 브리핑 에이전트는 출발점입니다. 아래 방향으로 확장이 가능합니다.
- Gmail 연동 강화: 오늘 일정 담당자와의 메일 스레드를 자동 연결, 누락 없이 확인
- 캘린더 다중 연동: 업무 캘린더 외 가족 캘린더, 공휴일 캘린더 통합
- D-Day 카운트다운: 중요 강의·행사까지 남은 일수 자동 표시
- 주간 브리핑 추가: 월요일 아침에는 이번 주 전체 일정 요약 자동 발송
각 기능은 위에서 소개한 프롬프트 방식으로 AI에게 요청하면 코드를 만들어줍니다.
결론: 10분짜리 루틴을 없애는 것이 AI 생산성의 시작입니다
비용 0원, 구축 시간 약 2시간, 매일 아침 절약하는 시간 10분 이상.
숫자만 보면 소소해 보입니다. 하지만 매일 아침 정보를 수집하느라 소비하던 에너지가 중요한 일로 옮겨가는 것, 그것이 AI 생산성이 만들어내는 실질적인 변화입니다.
코드를 처음 다뤄보는 분도 위의 프롬프트를 AI에게 그대로 전달하면 충분히 구현할 수 있습니다. AI가 코드를 작성해 주고, 오류가 나도 함께 잡아주는 시대이니까요.
지금 바로 script.google.com을 열어 보세요. 내일 아침부터 달라진 루틴이 기다리고 있습니다.