Gem을 대체하는 Gemini 스킬: 주간 인기 게시물 요약 만들기
Gemini Gem이 11월 17일부터 읽기 전용으로 바뀝니다. 주간 인기 게시물 요약을 예로 Gemini 스킬로 옮기는 방법을 소개합니다. SKILL.md, 세 가지 데이터 경로, 인기 목록 API 4종의 실제 테스트를 담았습니다.

지금 할 일: 개인 Google 계정(만 18세 이상)에서는 2026년 11월 17일부터 Gemini Gem이 읽기 전용으로 바뀝니다. Google은 2026년 12월 17일에 Gem을 삭제합니다. 읽기 전용 전환까지는 오늘로부터 13일 남았습니다. 매주 쓰는 Gem은 지금 스킬로 다시 만들고, 지식 파일을 내려받으세요.
직장·학교 계정의 일정은 더 늦습니다. 직장 계정은 빨라도 2027년 3월 1일, 학교 계정은 빨라도 2027년 6월 1일입니다. Workspace 앱 안의 스킬도 "추후 공지가 있을 때까지 연기"됐습니다. 이 날짜는 모두 Google의 Workspace Updates 블로그와 Gemini 도움말 페이지에서 가져왔습니다. 각 날짜의 출처는 첫 섹션에 정리했습니다.
이 글은 실제 작업 하나로 이전 과정을 보여 줍니다. 주간 인기 게시물 요약을 SKILL.md 파일로 만듭니다. 매주 월요일 Gemini가 일주일 치 Reddit 인기 게시물, Zhihu 인기 목록, Weibo 인기 검색어, X 트렌드를 읽고 한 페이지짜리 보고서를 작성합니다. 그 과정에서 Gemini 앱의 가장 중요한 제약에 부딪힙니다. 스킬 스크립트는 인터넷에 접속하거나 외부 웹사이트로 요청을 보낼 수 없습니다. 따라서 데이터 수집은 스킬 밖에서 처리해야 합니다.
Gemini에 데이터를 넣는 세 가지 방법을 소개합니다. 로컬 스냅샷을 업로드하는 방법, 커스텀 Connected App, 트리거를 건 Gemini API 에이전트입니다. 같은 SKILL.md가 Claude와 Codex에서도 동작하는지도 확인합니다.
데이터 쪽은 실제로 호출했습니다. 2026년 11월 4일 00:13–00:59 SGT에 EveryInfra reddit/trending_posts, zhihu/hot_list, weibo/trending, twitter/trending을 3회차에 걸쳐 호출했습니다. 그중 한 번은 원격 MCP의 tools/call 메서드를 거쳤습니다. 02:05 SGT에는 실패한 두 목록을 한 번 더 시도했습니다. 핵심 결과는 목록이 빠르게 바뀐다는 점입니다. 44분 뒤에는 Weibo 목록의 86%만 남아 있었습니다.
X 목록은 44분 뒤 74%만 남아 있었습니다. 3회차를 합치면 스냅샷 한 번보다 고유 주제가 각각 16%, 26% 더 많이 나왔으므로, 주간 요약에는 하루 여러 번의 스냅샷이 필요합니다.
테스트 중에는 Zhihu 인기 목록과 Reddit 인기 게시물을 가져올 수 없었습니다. Zhihu 요청 8건은 모두 503을 반환했고, Reddit은 1회차에만 데이터를 줬습니다. 실패한 호출에는 과금되지 않았습니다. 따라서 아래 요약 수치는 Weibo와 X에서만 나온 것입니다. 스킬에 "데이터가 없으면 없다고 밝힐 것"을 명시해야 하는 이유도 여기에 있습니다. 카탈로그 가격 기준으로, 예시처럼 하루 네 번 스냅샷을 찍으면 네 목록 전체에 월 $0.297가 듭니다.
테스트 머신에서는 Gemini에 로그인하지 않았습니다. 그래서 스킬 업로드, 커스텀 앱, Gemini API 트리거는 실제 실행이 아닌 설정 예시입니다. 11월 4일 기준 공식 문서를 바탕으로 했습니다.
지금 할 일: Gemini Gem, 11월 17일부터 읽기 전용
기능보다 날짜가 중요하므로 날짜부터 살펴봅니다. 전환에 관한 Gemini 앱 도움말 페이지는 명확합니다. 만 18세 이상 사용자의 개인 Google 계정에서는 2026년 11월 17일부터 Gem이 읽기 전용이 됩니다. 열어 볼 수는 있지만 사용, 수정, 새로 만들기는 할 수 없습니다. 2026년 12월 17일에는 Gem이 Gemini 앱에서 사라져 더 이상 접근할 수 없습니다(Gemini Apps Help: About the transition from Gems to skills).
직장 계정에는 시간이 더 있습니다. 같은 페이지에는 Workspace 비즈니스, 엔터프라이즈, 비영리 계정은 2027년 3월, 교육 계정은 2027년 6월로 나와 있습니다. Workspace 관리자 도움말 페이지는 정확한 날짜를 2027년 3월 1일과 2027년 6월 1일로 밝힙니다(Admin Help). Workspace Updates 게시물은 두 날짜 모두에 "no sooner than"(빨라도 해당 날짜부터)이라는 표현을 씁니다(Workspace Updates, 2026년 9월 30일).

한 가지 세부 사항이 혼란을 일으킵니다. 9월 30일 Workspace Updates 게시물에는 "Key dates" 목록이 있습니다. 이 목록의 11월 17일 항목에 따르면 Gem은 설정 패널로 옮겨지며 사용자는 계속 만들고, 수정하고, 사용할 수 있습니다. 반면 개인 계정용 도움말 페이지는 같은 날짜에 "읽기 전용"이라고 합니다. 두 항목은 서로 다른 계정에 관한 것입니다.
블로그 항목은 Workspace 일정에 속합니다. 도움말 페이지 항목은 만 18세 이상 사용자의 개인 계정에만 해당합니다. 많은 2차 기사가 두 항목을 합쳐 "11월 17일부터 모두 읽기 전용"이라고 전하지만, 출처에 적힌 내용과 다릅니다.
| 계정 유형 | 읽기 전용 또는 설정으로 이동 | Gem 작동 중지 | Gem 삭제 | 출처 |
|---|---|---|---|---|
| 개인 Google 계정, 만 18세 이상 | 2026-11-17, 읽기 전용 | 2026-11-17 | 2026-12-17 | Gemini 앱 도움말 |
| 개인 계정, 만 18세 미만 | "더 늦은 날짜" | 명시되지 않음 | 명시되지 않음 | Gemini 앱 도움말 |
| Workspace 비즈니스, 엔터프라이즈, 비영리 | 2026-11-17, 설정으로 이동, 계속 사용 가능 | 빨라도 2027-03-01 | 같은 날, 남은 Gem은 초안 스킬로 전환 | Workspace Updates, Admin Help |
| Workspace 교육 | 위와 같음 | 빨라도 2027-06-01 | 같은 날, Classroom과 LTI도 포함 | 위와 같음 |
개인 계정이라면 이 글을 쓴 날로부터 13일이 남았습니다. 해야 할 일은 세 가지입니다. 첫째, 아직 쓰는 Gem마다 지침과 지식 파일을 내려받으세요. 스킬 하나에는 최대 100 MB의 파일을 담을 수 있습니다.
Gem이 이보다 크면 자동 이전 과정에서 가장 큰 파일부터 제외됩니다. 오디오, 동영상, 압축 파일, GitHub 파일, 레거시 Office 파일(.doc, .xls, .ppt)은 아예 옮겨지지 않습니다. 12월 17일 이후에는 되찾을 수 없습니다(같은 도움말 페이지, "Limits on files during the transition").
둘째, 매주 쓰는 Gem은 직접 스킬로 다시 만드세요. 자동 이전을 기다리지 마세요. 자동 이전은 "비활성 초안"을 만들며, 사용하거나 공유하려면 하나씩 검토하고 활성화해야 합니다(Admin Help, "How automated migration will work"). 셋째, 각 Gem에 필요한 도구를 확인하세요. 도움말 페이지에 따르면 스킬은 아직 Create video, Create music, Canvas, Deep Research, Guided learning과 함께 동작하지 않습니다. Gem이 이 도구 중 하나에 의존한다면 다른 방법을 계획하세요.
직장 계정은 시간이 있지만, 이미 달라진 점이 하나 있습니다. Workspace Studio에서는 새 흐름에 "Ask a Gem" 단계를 추가할 수 없습니다. 기존 흐름은 2027년까지 계속 동작합니다. 또한 Workspace 앱 안의 스킬은 늦어지고 있습니다. 10월 13일 업데이트에 따르면 Rapid Release 및 Scheduled Release 도메인으로의 출시가 "추후 공지가 있을 때까지 연기"됐습니다(Workspace Updates, 2026년 10월 13일).
Gemini 앱의 스킬은 예정대로 진행 중입니다. 10월 13일에 출시가 시작됐고 11월 중순까지 완료될 예정입니다. 같은 게시물에 따르면 스킬은 Gemini 앱과 Workspace 앱 사이에 동기화되지 않습니다. 두 곳에서 각각 스킬을 만들어야 합니다.
Gemini 스킬 vs Gem: 무엇이 달라졌나
Gem은 별도로 맞춤 설정한 Gemini 버전입니다. Gem을 열고 전용 창에서 채팅합니다. 스킬은 어느 채팅에든 불러올 수 있는 지침 묶음입니다. /와 스킬 이름을 입력하며, 도움말 페이지에 따르면 이 단축키는 @로 바뀔 예정입니다.
이름과 설명이 프롬프트와 맞으면 Gemini가 스스로 스킬을 고를 수도 있습니다. 한 채팅에서 여러 스킬을 겹쳐 쓸 수 있습니다(Create & manage skills for Gemini Apps). Workspace Updates에 따르면 스킬은 "개방형 Markdown 네이티브 SKILL.md 표준을 전적으로 기반으로" 만들어졌습니다. 따라서 다른 플랫폼의 스킬을 Gemini로 복사해 쓸 수 있습니다(Workspace Updates, 2026년 9월 30일).
| 항목 | Gem | Gemini 앱의 스킬(2026년 11월 4일 기준) |
|---|---|---|
| 사용 방법 | 전용 창에서 Gem 열기 | 어느 채팅에서든 /(이후 @) 입력, 또는 Gemini가 자동 적용 |
| 동시 사용 개수 | 1개 | 여러 개, 스킬이 다른 스킬을 참조할 수도 있음 |
| 형식 | 웹 양식 | 웹 양식 작성 또는 SKILL.md, 폴더, .zip 업로드 |
| 이름 규칙 | 자유 형식 | 모두 소문자, 하이픈으로 연결(예: my-new-skill) |
| 파일 | 지식 파일 | 총 100 MB, 일반 텍스트 형식 파일만 가능, 오디오·동영상·압축 파일 불가 |
| 도구 | 동영상, 음악, Canvas, Deep Research 등 | Connected Apps와 연동 가능. 동영상·음악·Canvas·Deep Research·Guided learning은 아직 미지원 |
| 스크립트의 인터넷 접속 | 해당 없음 | 불가: 업로드한 스크립트는 인터넷에 접속하거나 외부 웹사이트로 요청을 보낼 수 없음 |
| 필요한 플랜 | Free | 스킬은 무료, 예약된 Tasks에는 Google AI Pro 또는 Ultra 필요 |
| 공유 | 예 | "향후 몇 주 내" |
스크립트 관련 행에 나온 제약이 바로 이 글이 해결하려는 문제입니다. 주간 인기 게시물 요약에는 Reddit 인기 게시물, Zhihu 인기 목록, Weibo 인기 검색어, X 트렌드 같은 외부 데이터가 필요합니다. Claude Code나 Codex에서는 스킬이 API를 호출하는 스크립트를 실행하거나, 에이전트가 MCP 도구를 호출할 수 있습니다. 하나의 SKILL.md를 AI 도구 4종에서 쓰는 방법을 다룬 글에서 이 방식을 소개했습니다. Gemini 앱은 다릅니다.
Gemini 앱 도움말 페이지의 업로드 섹션에는 두 가지 제약이 있습니다. 인터넷 접속이 필요한 스크립트는 지원되지 않습니다. "Security restrictions" 항목에 따르면 스크립트는 외부 웹사이트에서 작업을 수행하거나 요청을 보낼 수 없습니다. 따라서 Gemini 앱에서는 스킬이 데이터를 가져오지 않습니다. 데이터는 다른 곳에서 들어와야 합니다.

이 제약이 글의 구성을 정합니다. 스킬은 Gemini에게 요약 작성 방법을 알려 줍니다. 데이터는 별도 경로로 들어옵니다. 먼저 작업을 설명한 다음, Gemini에 데이터를 넣는 세 가지 경로를 소개합니다.
Gem을 스킬로 옮기는 방법
도움말 페이지는 수동 단계 세 가지를 안내합니다. Gem을 열고 지식 파일을 하나씩 내려받습니다. 새 스킬을 만들고 Gem의 이름, 설명, 지침을 복사합니다. 파일을 추가하려면 스킬을 폴더로 내려받아 파일을 넣은 뒤 폴더 전체를 업로드합니다(도움말 페이지). 실제로는 네 부분을 그대로 복사하지 말고 다시 쓰는 것이 좋습니다.
첫째는 이름입니다. Gem 이름은 자유롭게 정할 수 있습니다. 스킬 이름은 weekly-hot-posts-digest처럼 하이픈으로 연결한 소문자 영어 단어여야 합니다. 효과적인 스킬 작성에 관한 도움말은 이름을 동사로 시작하라고 권합니다. helper, tools, data처럼 의미 없는 단어도 피하라고 합니다(Write effective skills).
둘째는 설명입니다. Gem 설명은 사람을 위한 것이지만, 스킬 설명은 Gemini를 위한 것입니다. Gemini는 이름과 설명만 읽고 스킬을 적용할지 판단하기 때문입니다. 3인칭으로 작성하십시오. 스킬이 하는 일을 먼저 쓰고, 이어서 "Use when…"과 함께 사용 상황을 적으십시오.
제한은 1,024자입니다. 같은 도움말은 단계를 체크리스트로 쓰고, 데이터가 없을 때 무엇을 할지 Gemini에게 알려 주라고 권합니다. 요약 작업에서는 두 번째 사항이 매우 중요합니다. 예를 들어 "이번 주에 데이터가 없는 플랫폼은 그렇다고 밝히고 기억으로 채우지 말 것" 같은 규칙을 둡니다.
셋째는 지식 파일입니다. Gem은 큰 참고 파일 하나를 매번 읽는 경우가 많습니다. 스킬은 필요할 때만 콘텐츠를 불러옵니다. Gemini는 먼저 이름과 설명을 읽습니다.
스킬이 관련 있어 보일 때만 전체 지침을 읽고, 단계에서 필요할 때만 첨부 파일을 엽니다. 따라서 긴 템플릿과 샘플 보고서는 references/ 폴더에 넣으십시오. 그런 다음 지침에 "5단계에서 references/report-template.md를 사용할 것"이라고 적으십시오.
넷째는 도구입니다. Gem이 Deep Research나 Canvas를 썼다면 그 부분은 아직 스킬에서 동작하지 않습니다. 이 요약 작업에는 해당 도구가 필요 없습니다. Gemini가 표를 읽고, 항목을 묶고, 글을 쓰기만 하면 됩니다.
작업 정의: 주간 인기 게시물 요약에는 스냅샷이 몇 번 필요할까
결과물은 한 페이지짜리 주간 보고서입니다. 보고서는 Reddit, Zhihu, Weibo, X의 지난 7일에 대해 세 가지 질문에 답합니다. 어떤 주제가 며칠 동안 인기 목록에 머물렀는가? 어떤 주제가 빠르게 올라왔다가 사라졌는가?
같은 이야기가 여러 플랫폼에 나타났는가? 독자는 콘텐츠 기획자, 브랜드·PR 팀, 시장 분석가입니다. 이들은 월요일 아침에 페이지 하나만 열면 되고, 인기 목록 네 개를 따로 읽을 필요가 없습니다.
보고서 작성은 쉬운 부분입니다. 어려운 부분은 일주일 치 데이터를 확보하는 일입니다. 인기 목록은 로그가 아니라 스냅샷입니다. 각 플랫폼은 현재 상위 항목만 보여 주고, 목록은 몇 분만 지나도 바뀝니다. "이번 주 목록에 올랐던 모든 항목"을 제공하는 플랫폼은 없습니다. 플랫폼들도 자체 규칙에서 이를 밝히고 있습니다.
Weibo는 인기 검색어 목록이 1분마다 갱신되며 상위 50개를 보여 준다고 밝힙니다(Weibo 인기 검색어 규칙). Zhihu는 인기 목록이 10분마다 갱신되며 상위 30개를 보여 준다고 밝힙니다(Zhihu 인기 목록 소개). Reddit과 X는 갱신 주기를 공개하지 않습니다. 저희 카탈로그에서 reddit/trending_posts는 페이지당 게시물을 약 25개 반환하며, 페이지 토큰은 24시간 동안 유효합니다. twitter/trending은 한 지역의 목록을 반환하며, 각 행에는 collected_at 시각이 있습니다. 필드 설명에 따르면 트렌드는 빠르게 바뀌므로, 이 시각을 기준으로 각 행이 얼마나 최신인지 판단하십시오.
| 인기 목록 | EveryInfra 기능 | 호출당 행 수 | 플랫폼 순위 기준 | 갱신 주기 | 카탈로그 가격(2026년 11월 4일) |
|---|---|---|---|---|---|
| Reddit 인기 게시물 | reddit/trending_posts | 페이지당 약 25개, 토큰으로 추가 페이지 조회 | 공개되지 않음 | 공개되지 않음 | 페이지당 $0.000556 |
| Zhihu 인기 목록 | zhihu/hot_list | 최대 30개 | 검색, 열람, 상호작용, 클릭률 | 10분마다 | 호출당 $0.000806 |
| Weibo 인기 검색어 | weibo/trending | 기본 20개, 최대 200개(목록 자체는 50개) | (검색 + 토론 + 확산) × 상호작용률 | 1분마다 | 호출당 $0.000556 |
| X 트렌드 | twitter/trending | 한 지역당 약 50개 | 공개되지 않음 | 공개되지 않음 | 호출당 $0.000556 |
따라서 주간 요약을 만드는 올바른 방법은 한 주 동안 스냅샷을 여러 번 찍은 뒤 병합하는 것입니다. 보고서에는 항목마다 세 가지 수치가 필요합니다. 몇 번의 스냅샷에 등장했는지, 최고 순위, 최고 인기도입니다. 네 목록의 스냅샷 1회 비용은 $0.002474입니다(3 × $0.000556 + $0.000806, 카탈로그 필드 price_usd 기준). 진짜 문제는 스냅샷이 몇 번 필요한가입니다.
스냅샷이 너무 적으면 주제를 놓치고, 너무 많으면 쓰지 않을 데이터에 비용을 냅니다. 이 질문에 답하려고 실제 호출을 3차례 진행했습니다. 결과는 아래 테스트 섹션에 있습니다.
가격을 비교해 보면 이 작업에 공식 플랫폼 API를 권하지 않는 이유도 알 수 있습니다. X 개발자 문서에는 종량제 가격이 나와 있으며, Trends 엔드포인트는 요청당 $0.010입니다(X API pricing). twitter/trending 카탈로그 가격의 약 18배입니다. Reddit 자체 API는 먼저 승인을 받아야 합니다. 자세한 내용은 제한 사항 섹션의 “플랫폼 약관” 항목을 참고하십시오.
미국 독자라면 X 지역 설정이 중요합니다. 기본값인 country=world 목록은 전 세계 트렌드가 섞인 목록입니다. 2회차에서는 country=us도 호출했는데, 50행이 아닌 70행이 반환되었습니다. 독자가 미국에 있다면 us를 사용하십시오. 다른 지역 값은 카탈로그에 나와 있습니다.
SKILL.md 기본 골격: weekly-hot-posts-digest
아래는 전체 폴더 구성과 SKILL.md 파일입니다. 이 스킬은 한 가지 일만 합니다. 일주일 치 인기 목록 스냅샷을 표 하나로 받아 한 페이지 분량의 요약을 작성합니다. Gemini 앱의 스킬 스크립트는 인터넷에 접속할 수 없으므로 데이터를 직접 가져오지 않습니다.
지침은 영어로 작성했습니다. Gemini, Claude, Codex 도움말 페이지의 예시가 영어로 되어 있고, 세 플랫폼 모두 영어 지침을 읽습니다. 요약을 다른 언어로 받으려면 스킬을 호출할 때 그렇게 요청하십시오.
weekly-hot-posts-digest/
├── SKILL.md # required: name, description, instructions
└── references/
└── report-template.md # output template for step 5---
name: weekly-hot-posts-digest
description: Builds a one-page weekly digest of hot posts and trending topics from Reddit, Zhihu, Weibo and X snapshot data. Use when the user uploads this week's weekly.csv or snapshots.jsonl, or asks for a weekly trending summary across these four platforms.
---
# Weekly hot posts digest
## Inputs
- weekly.csv: one row per post or topic. Columns: platform, key, title, url, community, first_seen, last_seen, times_seen, snapshots_total, best_rank, max_heat.
- If the user gives snapshots.jsonl instead, group rows by platform and key first, then work from the grouped rows.
## Steps
Copy this checklist and track progress:
- [ ] 1. For each platform, count snapshots_total and the date range. Write them at the top of the digest.
- [ ] 2. Rank items by times_seen / snapshots_total first, then by best_rank. An item seen in most snapshots is a "week topic". An item seen once is a "spike".
- [ ] 3. Pick 5 week topics and 3 spikes per platform. Keep the original title. For Zhihu and Weibo, add a one-line English gloss after the title.
- [ ] 4. Group the picked items into at most 6 themes across platforms. A theme needs items from 2 or more platforms.
- [ ] 5. Fill the template in references/report-template.md.
## Rules
- max_heat is only comparable inside one platform. Do not compare Weibo hot_value with Zhihu hot_value or Reddit like_count.
- X trends may have an empty volume. Write "no volume" instead of 0.
- Do not guess why a topic is hot. If the title is not enough, write "reason unclear" and give the url.
- Remove user names from Reddit titles and text if they appear. Keep brand and organization names.
## Missing information
- If a platform has 0 snapshots this week, write "no data for <platform> this week" and continue with the others. Do not fill it from memory or web search.
- If snapshots_total is below 5 for a platform, add the line "low coverage: N snapshots".템플릿 파일은 짧습니다. SGT 기준 주간 날짜가 들어간 제목 줄과 커버리지 줄이 있고, 이어서 테마 표, 플랫폼별 “주간 화제” 섹션, “급상승” 섹션, 참고 사항이 나옵니다. 전체 파일은 399바이트입니다. 점진적 공개(progressive disclosure)를 위해 별도 파일로 분리했습니다. Gemini는 5단계에서만 이 파일을 열기 때문에, 스킬 적용 여부를 판단하는 동안에는 이 파일을 처리하는 데 토큰을 사용하지 않습니다.
지침에 담긴 규칙은 모두 실제 호출에서 확인한 내용을 바탕으로 합니다. "max_heat는 같은 플랫폼 안에서만 비교할 수 있다"는 규칙은 카탈로그의 필드 노트에서 나왔습니다. Weibo의 hot_value는 "목록 안에서만 비교할 수 있는" Weibo 자체 지표입니다. Zhihu의 hot_value는 "5.97 million heat" 같은 페이지 텍스트를 정수로 변환한 값입니다.
두 플랫폼은 서로 다른 공식을 씁니다. Weibo 규칙은 “(검색 인기도 + 토론 인기도 + 확산 인기도) × 상호작용률”입니다. Zhihu 페이지에는 검색 인기도, 열람 인기도, 상호작용 인기도, 클릭률이 나와 있습니다(Weibo hot search rules, Zhihu hot list introduction). 두 목록을 합쳐 정렬하는 것은 의미가 없습니다.
“X 트렌드의 volume은 비어 있을 수 있다”는 규칙은 테스트에서 나왔습니다. 구체적인 수치는 아래 필드 섹션에 있습니다. “데이터가 없으면 없다고 쓴다”는 규칙은 Zhihu 인기 목록에서 나왔습니다. 이번 테스트에서 이 목록은 모든 시도에 HTTP 503을 반환했습니다. 이 규칙이 없으면 Gemini가 기억 속 예전 인기 목록 항목으로 빈자리를 채울 수 있습니다. 그러면 요약은 완성된 것처럼 보이지만 일부는 지어낸 내용이 됩니다.
| 스킬의 규칙 | 근거가 된 테스트 결과 또는 문서 | 규칙이 없을 때 |
|---|---|---|
| max_heat는 한 플랫폼 안에서만 비교 | Weibo와 Zhihu는 인기도 공식이 다르며, 카탈로그에 따르면 Weibo 인기도는 해당 목록 안에서만 비교 가능 | 의미 없는 플랫폼 간 “인기도 순위” |
| X 볼륨이 비어 있으면 “볼륨 없음”으로 표기 | 모든 X 스냅샷에서 X volume이 비어 있음 | 모델이 빈 값을 0으로 해석 |
| 추측하지 않고 “이유 불명”으로 표기 | 인기 목록은 제목과 링크만 제공 | 모델이 기억에 의존해 이유를 지어냄 |
| 데이터가 없으면 “데이터 없음”으로 표기 | 이번 테스트에서 Zhihu 인기 목록은 모든 요청에 503 반환 | 모델이 예전 항목으로 빈자리를 채움 |
| 스냅샷이 5개 미만이면 “커버리지 낮음”으로 표기 | 각 목록의 일부가 44분 안에 바뀜 | 독자가 요약이 한 주 전체를 반영한다고 오해 |
Claude와 Codex도 같은 SKILL.md를 쓸 수 있을까?
쓸 수 있습니다. Gemini, Claude Code, Codex, Antigravity 모두 자사 스킬이 개방형 표준인 Agent Skills를 따른다고 밝히고 있습니다. 이 사양의 필수 필드는 두 개뿐입니다. name은 영문 소문자, 숫자, 하이픈으로 최대 64자이고, description은 최대 1,024자입니다(Agent Skills specification).
Claude Code는 호출 제어, 서브에이전트 실행 같은 확장 필드를 추가로 지원합니다(Claude Code docs). Codex는 name과 description을 모두 요구합니다(Codex: Build skills). Antigravity는 name을 생략할 수 있으며, 이 경우 폴더 이름을 사용합니다(Antigravity docs). 이 글의 스킬은 두 필드를 모두 갖추고 확장 필드는 쓰지 않으므로, 네 도구 모두 수정 없이 읽을 수 있습니다.
다른 점은 하나뿐입니다. Claude Code, Codex, Antigravity CLI에서는 같은 스킬이 EveryInfra 원격 MCP 서버를 호출해 인기 목록을 가져올 수 있습니다. Gemini 앱에서는 스킬이 인터넷에 접속할 수 없으므로 데이터를 미리 준비해야 합니다. SKILL.md 하나로 AI 도구 네 개 돌리기: 경쟁사 리뷰 분석 테스트 글에서는 스킬 폴더, 호출 방식, 네트워크 규칙을 비교합니다. 그 글은 MCP 호출과 함께 실행되는 스킬을 다룹니다. 이 글은 스킬이 인터넷에 접속할 수 없을 때 데이터와 지침을 나누는 방법을 다룹니다.

Gemini 앱이 외부 데이터를 받는 세 가지 경로
스킬이 데이터를 가져오지 않으므로 데이터는 외부에서 들어와야 합니다. 2026년 11월 4일에 공식 문서를 검토해 세 가지 경로를 찾았습니다. 경로마다 요구 사항이 다르고 적합한 사용자도 다릅니다. 아래 각 경로는 구성 예시입니다. 테스트 머신에서는 Gemini에 로그인하지 않았고, Gemini 쪽 단계는 하나도 실행하지 않았습니다.
| 경로 | 사용 가능 대상 | 데이터 유입 방식 | 주간 자동화 | 테스트 항목 |
|---|---|---|---|---|
| A. 로컬 스냅샷, 주말에 표 업로드 | 스킬을 쓸 수 있는 모든 계정 | 채팅 첨부 파일로 weekly.csv 전달 | 수집은 자동, 파일 업로드는 사람이 직접 | 데이터 API 호출(저희가 진행한 3차례) |
| B. 맞춤 Connected App(원격 MCP) | 만 18세 이상, 미국 내, 개인 계정, 영어 | Gemini가 MCP 도구 호출 | 도움말 페이지에 따르면 맞춤 앱은 Tasks에서 작동 | EveryInfra MCP 쪽만 |
| C. Gemini API: Antigravity 에이전트와 트리거 | Gemini API 키가 있는 개발자 | 에이전트가 샌드박스에서 mcp_server 도구 호출 | 가능, 트리거가 cron 일정에 따라 실행 | EveryInfra MCP 쪽만 |
사용할 수 있는 경로는 현재 있는 지역과 계정에 따라 다릅니다.
| 상황 | 경로 | 이유 |
|---|---|---|
| 미국 내, 개인 계정, 영어 | A, B, C | 맞춤 앱은 미국 내 개인 계정에서만 사용 가능 |
| 다른 국가의 개인 계정(예: 캐나다, 싱가포르) | A, C | 맞춤 앱 불가, Tasks는 AI Pro 또는 Ultra 필요 |
| EEA, 스위스, 영국 | A(사람이 업로드), C | 해당 지역에서는 Gemini 예약 Tasks 사용 불가 |
| Workspace 업무용 계정 | A, C(Workspace 스킬 출시 후) | Workspace 스킬은 출시가 지연되었고, 두 종류의 스킬은 동기화되지 않음 |
경로 A: 로컬 스냅샷, 주말 업로드. 요구 사항이 가장 적고 통제권은 가장 큰 경로입니다. 컴퓨터나 소형 서버에서 수집 스크립트를 하루 한 번 이상 실행합니다. 스크립트는 4개 인기 목록의 원본 결과를 snapshots.jsonl에 추가합니다.
주말에는 병합 스크립트가 일주일 치 스냅샷을 weekly.csv로 정리합니다. 이 파일을 Gemini 채팅에 업로드하고 /weekly-hot-posts-digest를 입력합니다. CSV는 Gemini 도움말 페이지의 지원 파일 형식 목록에 포함되어 있습니다(Create & manage skills).
이 경로의 장점은 수집과 작성이 완전히 분리된다는 점입니다. 수집은 고정된 프로그램이 맡고, 모든 과금과 실패를 파일에 기록합니다. 다이제스트를 쓰는 모델은 표 하나만 보므로 “검색해서 빈자리를 채울” 수 없습니다. 단점은 매주 사람이 파일을 업로드해야 한다는 점입니다. 다음 섹션의 실제 호출도 같은 API 호출을 사용합니다.
경로 B: 맞춤 Connected App. Gemini 웹 앱에서 MCP 서버 URL로 “맞춤 앱”을 추가할 수 있습니다. 연결하고 나면 모바일 앱, 웹, Tasks에서 작동합니다(맞춤 앱 도움말 페이지). 요구 사항은 명확합니다. 만 18세 이상이어야 하고, 미국에 있어야 하며, 개인 Google 계정으로 로그인하고 Keep Activity를 켜 두어야 합니다. 현재 이 기능은 영어만 지원하며, 앱은 웹에서만 추가할 수 있습니다.
Developer Mode 문서에서는 인증에 Dynamic Client Registration(RFC 7591)을 사용합니다. Gemini가 MCP 서버와 연동할 때 클라이언트 및 사용자 자격 증명을 설정하는 방식을 구성합니다. 별도의 OAuth 2.1 가이드도 있습니다(Gemini Apps Developer Mode overview). 따라서 이 경로는 OAuth 로그인을 사용합니다.
요청 헤더에 API 키를 붙여 넣는 방식이 아닙니다. EveryInfra 원격 MCP 서버의 OAuth 진입점은 https://api.everyinfra.com/mcp/all이고, 메타데이터는 /.well-known/oauth-protected-resource/mcp/all에 있습니다. Gemini에서 실제로 연결해 보지는 않았으므로 연결된다고 단언할 수는 없습니다. 미국에서 이 경로를 시도하다 연결에 실패하면 오류 내용을 보내 주세요.
경로 B에는 문서에서 추론할 수 있지만 테스트하지 않은 세부 사항이 하나 더 있습니다. Developer Mode 페이지에 따르면 Gemini는 각 MCP 도구의 readOnlyHint, destructiveHint 어노테이션을 읽습니다(MCP tools specification). 그리고 채팅 맥락과 함께 이 값을 근거로 확인 카드를 먼저 보여 줄지 결정합니다. 도움말 페이지에는 Gemini가 쓰기 액션에 대해 항상 확인을 요청한다고도 나와 있습니다. 11월 4일에 tools/list로 EveryInfra MCP 도구 목록을 조회했습니다.
이 호출은 키 없이 작동하며 과금되지 않습니다. 범용 데이터 도구 everyinfra_call_api는 호출마다 과금되므로 readOnlyHint: false, destructiveHint: true 어노테이션이 붙어 있습니다. 문서대로라면 Gemini는 인기 목록을 호출할 때마다 확인을 요청할 가능성이 높습니다. 따라서 무인 예약 작업이 확인 단계에서 멈출 수 있습니다. 앱을 연결할 때 이 부분을 확인하세요.
경로 C: Gemini API Antigravity 에이전트와 트리거. Python 코드를 몇 줄 쓸 수 있다면 이 경로를 사용하세요. 수집, 작성, 예약이 모두 Google 쪽에서 처리되는 유일한 경로입니다. Gemini API Interactions 엔드포인트는 원격 MCP 서버를 도구로 사용할 수 있습니다. 필드는 type: "mcp_server", name, url, headers, allowed_tools입니다. SSE는 지원하지 않고 Streamable HTTP만 지원하며, 이름에 하이픈을 넣을 수 없습니다(Gemini API: Function calling, Remote MCP section).
Antigravity 에이전트는 Google이 관리하는 Linux 샌드박스에서 실행되는 범용 에이전트입니다. AGENTS.md와 .agents/skills/ 아래의 스킬을 샌드박스에 마운트할 수 있습니다(Gemini API: Antigravity agent). Interactions API 레퍼런스에는 inline 소스로 SKILL.md 파일을 .agents/skills/<name>/SKILL.md에 쓰는 예시가 있습니다(Interactions API reference). “Triggers” 섹션에 따르면 트리거는 에이전트, 환경, 프롬프트, cron 일정을 하나의 영구 리소스로 묶습니다. 매 실행이 같은 환경을 쓰므로 지난 실행의 파일이 그대로 남아 있습니다. 이 페이지는 무인 실행에 요청에 토큰을 넣는 대신 저장된 자격 증명을 쓰도록 권장합니다.
이 세 가지를 조합하면 매주 월요일 아침에 다이제스트를 작성하는 구성을 만들 수 있습니다. 아래는 구성 예시입니다. 필드 이름은 공식 문서에서 그대로 가져왔지만 코드를 실행해 보지는 않았습니다.
# Configuration example (not run): one snapshot each day at 08:00 SGT,
# and on Mondays also the digest for the last week.
# Sources: ai.google.dev/gemini-api/docs/antigravity-agent (MCP servers, Triggers, Budget controls)
# ai.google.dev/api/interactions-api (inline sources for an environment)
from google import genai
client = genai.Client() # reads GEMINI_API_KEY from the environment
SKILL_MD = open("weekly-hot-posts-digest/SKILL.md", encoding="utf-8").read()
TEMPLATE = open("weekly-hot-posts-digest/references/report-template.md", encoding="utf-8").read()
everyinfra = {
"type": "mcp_server",
"name": "everyinfra", # lowercase letters and digits only
"url": "https://api.everyinfra.com/mcp",
"headers": {"Authorization": "Bearer " + EVERYINFRA_API_KEY}, # read from a secret store
"allowed_tools": ["everyinfra_call_api"],
}
environment = {
"type": "remote",
"sources": [
{"type": "inline", "content": SKILL_MD,
"target": ".agents/skills/weekly-hot-posts-digest/SKILL.md"},
{"type": "inline", "content": TEMPLATE,
"target": ".agents/skills/weekly-hot-posts-digest/references/report-template.md"},
],
}
PROMPT = (
"Step 1: call everyinfra_call_api four times: reddit/trending_posts, zhihu/hot_list (limit 30), "
"weibo/trending (limit 50), twitter/trending (country us). Append one JSON line per call to "
"/workspace/snapshots.jsonl with taken_at, platform, http status, charged_usd and results. "
"If a call fails, write the error and continue. "
"Step 2: only if today is Monday in Asia/Singapore, use the weekly-hot-posts-digest skill on the "
"last 7 days of /workspace/snapshots.jsonl and save the digest to /workspace/digests/."
)
trigger = client.triggers.create(
schedule="0 8 * * *", time_zone="Asia/Singapore", display_name="hot-lists-weekly",
interaction={
"agent": "antigravity-preview-09-2026",
"agent_config": {"type": "antigravity", "model": "gemini-3.5-flash-lite",
"max_total_tokens": 300000},
"environment": environment,
"tools": [everyinfra],
"input": PROMPT,
},
)
print(trigger.id, trigger.next_run_time)이 예시에서 설명이 필요한 부분은 세 가지입니다. 첫째, 수집과 작성을 트리거 하나에 넣었습니다. 문서에 따르면 매 실행은 “같은 환경을 재사용”하므로 지난 실행의 파일을 볼 수 있습니다. 이 설명은 트리거 하나에 해당합니다. 트리거를 두 개로 나누면 두 번째 트리거가 스냅샷을 읽기 위해 환경 ID로 해당 환경을 참조해야 합니다. Environments 섹션을 보면 env_abc123 같은 기존 ID를 넘길 수 있지만, 실패할 수 있는 단계가 하나 늘어납니다.
둘째, 모델은 가장 저렴한 gemini-3.5-flash-lite를 쓰고, 예시에서 max_total_tokens 한도를 설정했습니다. Antigravity 에이전트는 자율 루프로 실행됩니다. 문서는 “리서치 및 요약” 작업에 입력 토큰 100,000~500,000개가 든다고 추정합니다. 실행당 약 $0.30~$1.00이며, 복잡한 작업은 최대 약 $5입니다. 실행이 한도에 도달하면 중단되고 status: "incomplete"를 반환합니다.
셋째, 키를 코드에 넣지 마세요. Triggers 섹션은 무인 실행에 저장된 자격 증명을 참조하라고 안내합니다. 아웃바운드 프록시가 실행할 때마다 자격 증명을 읽으므로, 트리거를 수정하지 않고도 키를 바꿀 수 있습니다. 예시의 headers 줄은 처음 수동으로 테스트할 때만 씁니다.
경로 C를 쓴다면 Gemini API 변경 내역에서 세 가지 항목도 살펴보세요(Gemini API changelog). 2026년 10월 26일부터 새 유료 등급 프로젝트는 generateContent 요청을 기본으로 저장합니다(store=true). 다이제스트 텍스트에 사용자 데이터가 들어간다면 요청마다 store=false를 설정할지 결정하세요. 2026년 10월 27일에는 상태를 저장하지 않는 명령줄 클라이언트 gemini-api가 공개 베타로 출시되었습니다. Interactions 엔드포인트에서 관리형 에이전트를 실행할 수 있지만, 트리거 지원 여부는 확인하지 않았습니다.
2026년 11월 2일 지원 중단 공지에 따르면 12월 1일부터 gemini-2.5-flash 요청은 gemini-3.5-flash-lite로 전달됩니다. 함수 호출에는 하위 호환되지 않는 변경 사항이 있습니다. 기존 다이제스트 스크립트가 2.5 모델을 고정해 쓰고 있다면 그 전에 모델 이름을 바꾸고 다시 테스트하세요.
경로 하나 더: Antigravity CLI. 이미 터미널에서 작업한다면 Antigravity CLI를 쓸 수 있습니다. Google이 Gemini CLI를 대체하려고 내놓은 도구입니다. 이 도구도 .agents/skills/ 아래의 스킬을 읽습니다. 원격 MCP 서버를 mcp_config.json에 넣고, 시스템 스케줄러(cron 또는 launchd)로 agy -p를 실행합니다. 전체 설정은 Antigravity CLI로 영상 댓글 모니터링하기: 테스트와 구성 글에 있습니다.
경로 C와의 차이는 실행 위치입니다. CLI는 사용자 컴퓨터에서 실행되므로 컴퓨터가 꺼지면 멈춥니다. 경로 C는 Google 샌드박스에서 실행됩니다. 원격 MCP 서버와 Gemini Deep Research API를 다룬 글은 다른 용도를 다룹니다. 예약 스냅샷이 아니라 인용이 포함된 리서치입니다.
테스트: 네 인기 목록을 각각 한 번씩 실제로 호출해 본 결과
이 섹션은 실제 테스트 내용입니다. 2026년 11월 4일 00:13–00:59(SGT)에 네 인기 목록을 3회에 걸쳐 호출했습니다. 02:05(SGT)에는 Zhihu 인기 목록과 Reddit 인기 게시물을 한 번 더 시도하고, 대체 엔드포인트 두 개를 호출했습니다(이 섹션 끝 참고).
총 27건의 요청을 보냈습니다. 그중 13건이 성공해 과금되었고, 합계는 $0.007228입니다. 실패한 14건은 과금되지 않았습니다. 요청마다 원본 응답, 헤더, 시각을 보관했으므로 이 글의 모든 수치는 원본 응답으로 확인할 수 있습니다.
스냅샷 하나는 호출 네 번으로 이루어집니다. curl로 보면 다음과 같습니다. 키는 스크립트가 아닌 환경 변수에 두세요.
# One snapshot: one call to each of the four hot lists (as tested on 2026-11-04)
API=https://api.everyinfra.com/api/v1/social
for body in \
'{"platform":"reddit","action":"trending_posts","params":{}}' \
'{"platform":"zhihu","action":"hot_list","params":{"limit":30}}' \
'{"platform":"weibo","action":"trending","params":{"limit":50}}' \
'{"platform":"twitter","action":"trending","params":{"country":"us"}}'
do
curl -s -X POST "$API" -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' -d "$body" \
| jq -c '{platform, action, count, charged: .billing.charged_usd, error: .error.code}'
sleep 7 # stay under 10 calls per minute
done응답 구조는 네 플랫폼 모두 같습니다. results는 항목 배열, count는 항목 수, billing.charged_usd는 해당 호출의 과금액입니다. 실패한 호출에는 results가 없고 error가 있습니다. 여기에는 fault(어느 쪽 문제인지), retryable, retry_after(대기할 초), 다음 조치가 담깁니다. 항목 필드는 플랫폼마다 다릅니다. 일주일 치 데이터를 병합할 때 가장 중요한 점입니다.
| 기능 | 항목 키 | 순위 | 인기도 필드 | 첫 정상 스냅샷의 행 수 | 텍스트, 이미지, 볼륨 |
|---|---|---|---|---|---|
reddit/trending_posts | id | 응답 순서 | like_count, comment_count | 25 | 18행에서 text 비어 있음 |
zhihu/hot_list | id | rank | hot_value(페이지에 표시된 "10k heat"를 정수로 변환한 값) | 0 | — |
weibo/trending | 제목(id 없음) | rank | hot_value | 50 | 26행에서 label 비어 있음 |
twitter/trending | 이름(고정 id 없음) | rank | volume | 50 | 50행 중 50행에서 volume 비어 있음 |
일일 수집 스크립트는 같은 네 호출을 Python으로 작성한 것입니다. 스냅샷마다 snapshots.jsonl에 한 줄씩 추가합니다.
아래는 영어 주석이 달린 collect.py 예시입니다. 3회에 걸친 테스트와 같은 API 호출을 보냅니다. Python 표준 라이브러리(urllib.request)만 사용하고, 키는 환경 변수에서만 읽습니다. 재시도 가능한 503을 받으면 retry_after만큼 기다린 뒤 한 번 더 시도합니다. 다시 실패하면 오류를 파일에 기록합니다.
#!/usr/bin/env python3
"""Run once (or a few times) a day: fetch four hot lists and append one snapshot line each to snapshots.jsonl. The key comes only from the EVERYINFRA_API_KEY environment variable."""
import json, os, sys, time, urllib.request, urllib.error
from datetime import datetime, timezone, timedelta
API = "https://api.everyinfra.com/api/v1/social"
LISTS = [
("reddit", "trending_posts", {}),
("zhihu", "hot_list", {"limit": 30}),
("weibo", "trending", {"limit": 50}),
("twitter", "trending", {"country": "world"}),
]
SGT = timezone(timedelta(hours=8))
def call(platform, action, params):
body = json.dumps({"platform": platform, "action": action, "params": params}).encode()
req = urllib.request.Request(API, data=body, method="POST", headers={
"Authorization": "Bearer " + os.environ["EVERYINFRA_API_KEY"],
"Content-Type": "application/json", "User-Agent": "hot-digest/1.0"})
try:
with urllib.request.urlopen(req, timeout=120) as r:
return r.status, json.loads(r.read())
except urllib.error.HTTPError as e:
return e.code, json.loads(e.read() or b"{}")
def main(out_path):
taken_at = datetime.now(SGT).isoformat(timespec="seconds")
with open(out_path, "a", encoding="utf-8") as out:
for platform, action, params in LISTS:
status, data = call(platform, action, params)
if status == 503 and (data.get("error") or {}).get("retryable"):
time.sleep(int(data["error"].get("retry_after", 60)))
status, data = call(platform, action, params)
row = {"taken_at": taken_at, "platform": platform, "action": action, "http": status,
"charged_usd": (data.get("billing") or {}).get("charged_usd", 0),
"error": (data.get("error") or {}).get("code"), "results": data.get("results", [])}
out.write(json.dumps(row, ensure_ascii=False) + "\n")
print(platform, action, status, len(row["results"]), row["charged_usd"])
time.sleep(7) # stay under 10 calls per minute
if __name__ == "__main__":
main(sys.argv[1] if len(sys.argv) > 1 else "snapshots.jsonl")주말에는 merge.py가 일주일 치 스냅샷을 표 하나로 합칩니다. 규칙은 간단합니다. Reddit과 Zhihu 항목은 id로 매칭합니다. Weibo와 X는 고정 id가 없으므로 제목으로 매칭합니다.
각 행에는 첫 등장, 마지막 등장, 등장 횟수, 최고 순위, 최고 인기도가 기록됩니다. 표에는 플랫폼별로 그 주의 정상 스냅샷 수(snapshots_total)도 기록됩니다. 스킬은 이 수로 커버리지를 확인합니다. 출력은 표준 CSV(RFC 4180)이며, Gemini 도움말 페이지에도 CSV가 지원 업로드 형식으로 나와 있습니다.
#!/usr/bin/env python3
"""Merge one week of snapshots.jsonl into weekly.csv: one row per post or topic, with first and last seen, times seen, best rank and highest heat."""
import csv, json, sys
from collections import defaultdict
def key_of(platform, r):
return r.get("id") if platform in ("reddit", "zhihu") else (r.get("title") or r.get("name"))
def heat_of(platform, r):
if platform == "reddit": return r.get("like_count")
if platform in ("zhihu", "weibo"): return r.get("hot_value")
v = r.get("volume") # X volume can be an empty string
return v or None
def main(src, dst):
rows = [json.loads(l) for l in open(src, encoding="utf-8") if l.strip()]
snaps = defaultdict(set); items = {}
for s in rows:
if s["http"] != 200: continue
p = s["platform"]; snaps[p].add(s["taken_at"])
for i, r in enumerate(s["results"], 1):
k = key_of(p, r)
if not k: continue
it = items.setdefault((p, k), {"platform": p, "key": k, "title": r.get("title") or r.get("name"),
"url": r.get("url", ""), "community": r.get("community", ""), "first_seen": s["taken_at"],
"last_seen": s["taken_at"], "times_seen": 0, "best_rank": None, "max_heat": None})
it["last_seen"] = max(it["last_seen"], s["taken_at"]); it["first_seen"] = min(it["first_seen"], s["taken_at"])
it["times_seen"] += 1
rank = r.get("rank") or i
it["best_rank"] = rank if it["best_rank"] is None else min(it["best_rank"], rank)
h = heat_of(p, r)
if isinstance(h, (int, float)): it["max_heat"] = h if it["max_heat"] is None else max(it["max_heat"], h)
out = sorted(items.values(), key=lambda x: (x["platform"], -x["times_seen"], x["best_rank"] or 999))
for it in out: it["snapshots_total"] = len(snaps[it["platform"]])
with open(dst, "w", newline="", encoding="utf-8") as f:
w = csv.DictWriter(f, fieldnames=["platform", "key", "title", "url", "community", "first_seen", "last_seen",
"times_seen", "snapshots_total", "best_rank", "max_heat"])
w.writeheader(); w.writerows(out)
print(dst, len(out), {p: len(v) for p, v in snaps.items()})
if __name__ == "__main__":
main(sys.argv[1], sys.argv[2])같은 기능은 원격 MCP 서버로도 쓸 수 있습니다. MCP 클라이언트에 https://api.everyinfra.com/mcp를 추가하고, 범용 도구 everyinfra_call_api를 위 요청 본문과 같은 인수로 호출하면 됩니다. 아래 이미지는 00:37:15(SGT)에 weibo/trending으로 보낸 실제 MCP tools/call 요청이며, 2행과 짧은 링크만 표시했습니다. 응답은 0.6초 만에 왔고 과금액은 $0.000556이었습니다.

3회에 걸친 테스트와 그 결과는 아래와 같습니다. 매 회차 네 목록을 같은 순서로 호출했고, 분당 10회 미만을 유지하도록 호출 사이에 몇 초씩 간격을 두었습니다. 실패하면 retry_after 안내대로 60초를 기다린 뒤 한 번 더 시도했습니다.
| 회차(SGT) | Reddit 인기 게시물 | Zhihu 인기 목록 | Weibo 인기 검색 | X 트렌드 | 추가 호출 |
|---|---|---|---|---|---|
| 1회차, 00:13–00:15 | 25행 | 503 ×3 | 50행 | 50행 | — |
| 2회차, 00:35–00:37 | 503 ×3 | 503 ×2 | 50행 | 50행 | X us 70행 |
| 3회차, 00:58–00:59 | 503 ×2 | 503 ×2 | 50행 | 50행 | X mx 100행, X es 100행 |
| 추가, 00:37 | — | — | 5행(MCP, limit=5) | — | API 응답 스크린샷에 해당하는 호출 |
| 재시도, 02:05 | 503 ×1 | 503 ×1 | — | — | 대체: reddit/subreddit_posts 게시물 25개, zhihu/search 20행 |
테스트 동안 Zhihu 인기 목록과 Reddit 인기 게시물은 사용할 수 없었습니다. 00:13부터 02:05까지 Zhihu 요청 8건은 모두 fault: service, retryable: true와 함께 503을 반환했고, 모두 과금되지 않았습니다. Reddit 인기 게시물은 1회차에 25행을 반환했습니다. 이후 요청 6건은 데이터를 반환하지 않았습니다. REST 호출 4건은 503을, MCP 호출 2건은 isError를 반환했습니다. 모두 과금되지 않았습니다.
02:05에 목록마다 한 번 더 시도했지만 역시 503이 반환되었습니다. 따라서 다음 섹션의 유지율, 병합, 필드 수치는 weibo/trending과 twitter/trending에서만 나온 것입니다. Zhihu와 Reddit 인기 목록 열은 비어 있습니다.
다이제스트에서는 이 부분이 중요합니다. 인기 목록 엔드포인트는 오랫동안 사용할 수 없을 수 있습니다. 수집 스크립트는 모든 실패를 파일에 기록해야 합니다. 스킬은 다이제스트에 “이번 주 Zhihu 데이터 없음”이라고 써야 하며, 모델이 빈자리를 채우게 해서는 안 됩니다.
인기 목록 하나를 쓸 수 없으면 다른 엔드포인트로 그 열을 채울 수 있습니다. 단, 새 출처를 명시해야 합니다. 02:05(SGT)에 대체 엔드포인트 두 개를 각각 $0.000556에 호출했습니다. r/GeminiAI에 대한 reddit/subreddit_posts(sort=top, date_range=past_week)는 게시물 25개를 반환했습니다. 게시 시점은 2026년 10월 28일부터 2026년 11월 3일(SGT)까지였고, 추천 수는 156~1,583개였습니다. 제목에 “Carbon”이 들어간 게시물이 11개, text가 빈 게시물이 21개였고, 25개 모두 flair가 있었습니다.
“Gemini”로 zhihu/search를 호출해 최신순으로 정렬하자 20행이 반환되었습니다. 아티클 13개와 답변 7개입니다. 게시 시점은 2026년 10월 23일부터 2026년 11월 4일(SGT)까지였습니다. 최고 like_count는 294였고, 좋아요가 0인 행이 4개였습니다.
두 엔드포인트 모두 인기 목록이 아닙니다. 첫 번째는 한 커뮤니티의 일주일간 상위 게시물을, 두 번째는 키워드 검색 결과를 시간순으로 제공합니다. 따라서 다이제스트에서 “Reddit 인기 게시물”이나 “Zhihu 인기 목록”이라고 부르면 안 됩니다. 스킬에 규칙을 하나 추가하세요. 대체 엔드포인트를 쓸 때는 열 제목 뒤에 엔드포인트 이름을 적습니다.
테스트 결과: 목록은 얼마나 빨리 바뀌고, 일주일에 스냅샷은 몇 번 필요할까
질문은 이것이었습니다. 주간 인기 게시물 다이제스트라면 일주일에 한 번 가져오는 것으로 충분할까요? 호출 전에 판단 기준을 정했습니다. 수십 분이 지나도 목록이 거의 그대로라면 일주일에 한두 번이면 충분합니다. 목록의 상당 부분이 바뀐다면 하루에 여러 번 스냅샷을 찍어 병합해야 합니다.
답은 후자입니다. 플랫폼별 첫 정상 스냅샷을 기준으로 삼았습니다. 44분 뒤 Weibo 인기 검색 목록에는 86%만 남아 있었습니다. X 트렌드 목록(world)은 44분 뒤 74%만 남아 있었습니다. 44분 동안 3회차를 합치면 Weibo 주제는 58개, X 트렌드는 63개로 서로 다른 항목이 나왔습니다. 스냅샷 하나의 50행보다 각각 16%, 26% 많습니다.
바뀐 항목의 위치에서도 패턴이 보입니다. 첫 회차부터 마지막 회차까지 Weibo 목록에서 빠진 항목 7개 중 5개는 하위 절반에 있었습니다. X는 13개 중 12개였습니다. 목록의 하위 절반이 가장 빨리 바뀝니다.
하지만 새 항목이 모두 하위에서 시작하지는 않습니다. 새로 등장한 Weibo 항목 2개와 X 항목 3개는 처음 나타났을 때 이미 상위 20위 안에 있었습니다. 다이제스트가 가장 잡아내고 싶은 “급상승” 항목입니다. 이런 항목은 두 스냅샷 사이에 순위가 올랐다가 내려가므로, 월요일 아침 목록 하나로는 보이지 않습니다.
이 결과로 스냅샷 빈도를 정할 수 있지만, 어디까지나 예시입니다. 측정 시간이 44분뿐이므로 이 수치를 일주일 전체로 확장할 수는 없습니다. 6시간이나 24시간 뒤의 유지율도 측정하지 않았습니다. 말할 수 있는 것은 하한선뿐입니다. 44분 동안 X 목록의 약 26%가 바뀌었습니다.
하루 한 번 스냅샷을 찍으면 스냅샷 간격이 24시간이 되고, 그 사이에 올라왔다 사라지는 주제 일부를 놓칩니다. 예시로 제시하는 빈도는 하루 네 번으로, 예를 들어 사용자 시간대 기준 08:00, 13:00, 18:00, 23:00입니다. 그러면 일주일에 스냅샷이 28개입니다. 예산이 적다면 하루 한 번 찍고 다이제스트에 “하루 중 한 시점만 반영”이라고 쓰세요. 빈도를 직접 정하려면 하루 동안 한 시간마다 스냅샷을 찍으세요. 그런 다음 6시간 뒤와 24시간 뒤에 목록이 얼마나 남아 있는지 확인하고, 대부분 남아 있다면 빈도를 낮추세요.
어떤 필드를 쓸 수 있고, 다이제스트가 보여 줄 수 없는 수치는 무엇인가
비어 있는 필드가 스킬의 규칙을 정합니다. X volume 필드는 세 지역의 스냅샷 6개 모두에서 비어 있었고, period는 항상 “Live”였습니다. 따라서 다이제스트는 X에 대해 토론량은 보여 줄 수 없고 순위와 등장 횟수만 보여 줄 수 있습니다. Reddit 인기 게시물 25개 중 text가 빈 행은 18개(대부분 이미지나 링크 게시물), image_urls가 빈 행은 15개였습니다.
그래서 스킬은 Gemini에게 제목만 읽도록 지시합니다. Weibo label 필드(“신규”, “인기” 같은 표시)는 26행에서 비어 있었습니다. 이 항목들은 목록에 표시가 붙지 않은 항목입니다. 데이터가 누락된 것은 아닙니다.
X 지역을 알맞게 선택하세요. 같은 기간에 country=world 50행과 us 70행이 공유한 항목은 12개뿐이었습니다. mx(100행)와는 13개, es(100행)와는 7개를 공유했습니다. world 목록은 전 세계 트렌드가 섞인 목록입니다.
미국 중간선거는 2026년 11월 3일(미국 시간)이었습니다. 그날 “Election Day”는 us 목록에서 1위, 같은 회차 world 목록에서 6위였습니다. 한 시장을 다루는 다이제스트라면 해당 국가의 목록을 사용하세요.
Gemini에 보내기 전에 데이터를 병합하세요
스킬이 원본 스냅샷이 아닌 weekly.csv를 받는 이유는 무엇일까요? 3회차의 원본 결과를 collect.py 형식으로 snapshots.jsonl에 기록하니 12줄, 약 22,406토큰이었습니다. merge.py를 거친 weekly.csv는 146행, 약 6,425토큰으로 71% 적습니다. 토큰당 약 4자라는 Gemini API의 경험칙을 적용했으며(Understand and count tokens), 중국어 제목은 토큰을 더 씁니다. 하루 네 번 일주일간 스냅샷을 찍으면 Reddit, Weibo, X의 원본 스냅샷만으로 약 304,000토큰입니다(테스트 회차의 목록당 평균 크기 × 28).
병합한 표는 고유 항목 수에 따라서만 커집니다. 반복되는 주제는 행 하나만 쓰기 때문입니다. 더 중요한 점은 정해진 로직에 따라 프로그램이 병합한다는 것입니다. 등장 횟수, 최고 순위, 최고 인기도는 계산된 값입니다. Gemini는 고르고 쓰기만 하며, 직접 세지 않습니다.
주간·월간 비용
API 요금은 주간 스냅샷 수에만 좌우됩니다. 2026년 11월 4일 카탈로그 price_usd 기준으로 스냅샷 하나는 호출 네 번이며 비용은 $0.002474입니다. 하루 한 번이면 주당 $0.017, 월(30일)당 $0.074입니다. 하루 네 번이면 주당 $0.069, 월당 $0.297입니다.
한 시간에 한 번이면 주당 $0.416, 월당 $1.781입니다. Reddit 두 번째 페이지를 가져오면 스냅샷당 $0.000556이 추가됩니다. 실패한 호출은 과금되지 않으므로 Zhihu 실패는 요금에 반영되지 않았습니다.
| 빈도 | 주간 스냅샷 수 | 주간 API 요금 | 월간 API 요금(30일) | 적합한 용도 |
|---|---|---|---|---|
| 하루 1회 | 7 | $0.017 | $0.074 | “이번 주에 사람들이 이야기한 것”만 파악 |
| 하루 네 번(예시) | 28 | $0.069 | $0.297 | 주간 화제와 급상승 항목 구분 |
| 한 시간에 한 번 | 168 | $0.416 | $1.781 | 속보 및 브랜드 모니터링 |
Gemini 쪽에도 별도 비용이 있습니다. Gemini 앱의 스킬은 요금제 없이 쓸 수 있습니다. 예약 실행(Tasks)에는 Google AI Pro 또는 Ultra와 만 18세 이상 사용자의 개인 계정이 필요합니다(Manage your tasks & workflows). Gemini API를 쓰는 경로 C는 토큰 단위로 과금됩니다. 요금 페이지에 따르면 gemini-3.5-flash-lite는 입력 토큰 100만 개당 $0.30, 출력 토큰 100만 개당 $2.50입니다. gemini-3.8-flash는 2026년 12월 31일까지 각각 $0.75와 $3.75이며, 2027년 1월 1일에 가격이 두 배가 됩니다(Gemini API pricing).
2026년 10월 8일부터 gemini-3.7-flash 요청은 gemini-3.8-flash로 전달되므로, 예전 이름을 쓰는 스크립트도 이미 새 가격으로 과금되고 있습니다.
Antigravity 에이전트는 자율 루프로 실행되므로 토큰 대부분이 자체 추론과 도구 호출 및 응답 처리에 쓰입니다. 문서는 “리서치 및 요약” 작업에 입력 토큰 100,000~500,000개가 든다고 추정합니다. Flash-Lite 입력 가격으로 계산하면 실행당 약 $0.03~$0.15입니다. 스냅샷 하나의 API 요금의 약 12~60배입니다. 이 값은 직접 측정하지 않았습니다. 실제 청구서를 기준으로 삼으세요.
한계와 주의할 점
| 한계 | 다이제스트에 미치는 영향 | 대응 방법 |
|---|---|---|
| Gemini 앱의 스킬은 인터넷 접속 불가 | 스킬이 직접 목록을 가져올 수 없음 | 스킬 밖에서 수집(경로 A, B, C) |
| 맞춤 앱은 미국 개인 계정 전용 | 다른 국가에서는 경로 B 불가 | 경로 A 또는 C 사용 |
| EEA, 스위스, 영국, 나이지리아에서는 Tasks 사용 불가 | Gemini가 매주 스스로 실행할 수 없음 | 시스템 스케줄러나 Gemini API 트리거 사용 |
| 인기 목록 엔드포인트가 오랫동안 503을 반환할 수 있음 | 이번 주에 특정 플랫폼 데이터가 없을 수 있음 | 실패를 기록하고, 스킬이 “데이터 없음”으로 표기 |
| X 트렌드에는 토론량 없음 | 순위와 등장 횟수만 표시 | 토론량이 필요하면 twitter/search 호출 |
Gemini 쪽 단계는 하나도 실행하지 않았습니다. Skills 페이지, 맞춤 앱, Tasks, Gemini API 트리거는 모두 구성 예시입니다. 2026년 11월 4일에 읽은 도움말 페이지와 개발자 문서를 바탕으로 작성했습니다. Google은 지난 두 달 동안 이 제품들을 자주 바꿨습니다(스킬 단축키마저 /에서 @로 바뀌는 중입니다). 직접 시도할 때 인터페이스가 이 글과 다르면 그날의 공식 페이지를 따르세요.
스킬은 데이터를 가져오지 않으며, 빈자리를 채워서도 안 됩니다. 이는 Gemini 앱의 명확한 제약이며, 스킬에 “데이터가 없으면 없다고 쓴다”는 규칙을 넣은 이유이기도 합니다. 요약 작업의 주된 위험은 글을 못 쓰는 것보다, 모델이 기억 속 예전 인기 목록 항목을 이번 주 데이터처럼 쓰는 것입니다. 채팅마다 상기시키는 것보다 스킬에 규칙을 넣는 편이 더 확실하지만, 그래도 매주 월요일 “커버리지” 줄은 직접 읽어야 합니다.
인기 목록은 플랫폼이 매긴 순위이며 “실제 인기”와 같지 않습니다. Weibo 공식에는 상호작용률 가중치가 들어가고, 목록에는 유료 노출 표시가 따로 있습니다. Zhihu 점수에는 클릭률이 포함됩니다. 두 플랫폼 모두 알고리즘에 조작 방지 장치가 있다고 밝히지만 가중치는 공개하지 않습니다. 따라서 다이제스트의 순위는 하나의 신호일 뿐 시장 점유율로 볼 수 없습니다. 그래서 이 스킬은 “등장 횟수”와 “최고 순위”로 순위를 매기고, 플랫폼 간 인기도 값은 비교하지 않습니다.
테스트 회차에서 X 트렌드에는 토론량이 없었습니다. twitter/trending의 카탈로그 필드 설명에는 대체 소스가 언급되어 있습니다. 다른 소스를 쓸 수 없을 때 이 대체 소스에서 결과를 가져오며, 이때는 volume이나 period가 반환되지 않습니다. 모든 회차에서 X 목록의 모든 행은 volume이 비어 있었고, period는 “Live”였습니다. 따라서 다이제스트는 X에 대해 순위와 등장 횟수만 보여 줄 수 있습니다. 토론량이 필요하다면 다이제스트가 고른 몇몇 주제에 대해 twitter/search를 호출하세요.
일부 목록은 한동안 사용할 수 없을 수 있습니다. 테스트에서 zhihu/hot_list 요청 8건은 모두 HTTP 503을 반환했고, reddit/trending_posts는 1회차 이후 요청 6건에서 데이터를 반환하지 않았습니다. 당시에는 목록을 사용할 수 없었고, 이 호출들은 모두 과금되지 않았습니다.
수집 스크립트는 실패를 기록하고 계속 진행해야 합니다. 기록 없이 건너뛰지 마세요. 기록이 없으면 주말에 Zhihu 주제가 “목록에 없었는지” “수집되지 않았는지” 구분할 수 없습니다.
Reddit 목록은 페이지당 25개입니다. reddit/trending_posts는 페이지당 약 25개 게시물을 반환합니다. 더 받으려면 next_page_token을 넘기세요. 페이지마다 따로 과금되며, 토큰은 24시간 동안 유효합니다. 사이트 전체 목록에는 여러 커뮤니티가 섞여 있고 엔터테인먼트와 일반 주제에 치우쳐 있습니다. 1회차에서는 게시물 25개가 커뮤니티 24곳에서 나왔습니다. 한 업계를 다루는 다이제스트라면 몇몇 고정 커뮤니티에 reddit/subreddit_posts를 쓰는 편이 더 적합합니다.
플랫폼 약관. Reddit의 Responsible Builder Policy에 따르면 모든 개발자는 데이터에 접근하기 전에 승인을 받아야 하며, 상업적 이용에는 서면 승인이 필요합니다.
이 정책은 AI 학습, 상업적 이용, 민감한 사용자 특성 추론에도 명확한 제한을 둡니다. X 개발자 약관도 데이터 사용 규칙을 정하고 있습니다. 제목, 링크, 순위, 공개 수치만 쓰고 사용자 프로필을 만들지 않는 다이제스트가 더 안전한 방법입니다. 약관이 귀사 비즈니스에 어떻게 적용되는지는 원문을 읽거나 변호사와 상담하세요. 이 글은 법률 자문을 제공하지 않습니다.
최근 변경 사항: 다이제스트에 영향을 주는 네 가지 날짜
이 목록에는 주간 인기 게시물 다이제스트에 영향을 주는 변경 사항만 담았습니다. 날짜순으로 정리했으며, 날짜는 공식 페이지에 적힌 날짜입니다.
2026년 9월 30일: Gemini 채팅에 스킬 도입, Gems 대체. Google 블로그에 따르면 이날 Gemini 채팅의 스킬이 전 세계에 출시되었습니다. Workspace 고객은 “앞으로 몇 주 안에” 사용할 수 있습니다. 같은 글에 따르면 개인 계정의 Gems는 11월부터 사라집니다. Opal도 같은 시기에 서비스를 종료합니다(Google blog). 의미: 주간 보고서를 Gem으로 만들어 두었다면 지금 옮기세요.
2026년 10월 13일: Workspace 스킬 출시 지연. 이날 Gemini 앱의 스킬이 순차 배포를 시작했습니다. Workspace Studio와 Workspace 앱의 스킬은 “추후 공지가 있을 때까지 지연”됩니다. 공유와 Google Drive 연동은 나중에 제공된다고 합니다(Workspace Updates, October 13, 2026). 의미: 팀에서 같은 다이제스트 스킬을 Docs나 Sheets에서 바로 쓰려면 기다려야 합니다. 우선 Gemini 앱에서 사용하세요.
2026년 10월 28일: Connected Apps 플랫폼 프리뷰 공개. 이제 개발자는 클라우드 MCP 서버로 자신의 앱을 Gemini와 Search에 연결할 수 있습니다. Google Connected Console에서 앱을 등록하고 테스트한 뒤 심사를 위해 제출합니다(Google blog). 의미: 경로 B의 개인용 “맞춤 앱” 외에도, 앞으로 데이터 서비스가 심사를 거친 앱으로 Gemini에 등장할 수 있습니다.
2026년 11월 17일(13일 후): 개인 계정의 Gems가 읽기 전용으로 전환. 이 글의 첫 섹션을 참고하세요.
빠른 시작
- EveryInfra에 회원가입하고 API 키를 발급받으세요.
- 빠른 시작을 따라 curl로
weibo/trending을 한 번 호출하세요. - 응답에
results와billing.charged_usd가 있는지 확인하세요. - 파라미터와 필드를 확인하세요: Reddit 인기 게시물, Zhihu 인기 목록, Weibo 인기 검색, X 트렌드.
- 매일 켜져 있는 컴퓨터에
collect.py를 두고, 키를EVERYINFRA_API_KEY에 설정하세요. - cron이나 launchd로 스크립트를 하루 1~4회 실행하세요.
- 일주일 뒤
snapshots.jsonl의 각 줄에서http와charged_usd를 확인하세요. weekly-hot-posts-digest/폴더를 ZIP 파일로 압축해 Gemini 스킬 페이지에 업로드하세요.- 주말에
merge.py를 실행하고,weekly.csv를 채팅에 업로드한 뒤/weekly-hot-posts-digest를 입력하세요.
각 플랫폼 페이지에서 모든 기능을 확인할 수 있습니다. Reddit 스크래핑 API와 Zhihu 스크래핑 API를 참고하세요. Weibo 스크래핑 API와 X (Twitter) 스크래핑 API도 있습니다. 완전 자동화가 필요하면 경로 C 예시를 사용하세요. Antigravity CLI 글처럼 자신의 컴퓨터에서 작업을 실행할 수도 있습니다.
연결 방법은 MCP 서버 페이지에, 과금 방식은 요금 페이지에 있습니다. 다른 도구에서 같은 방법을 쓰는 사례는 Claude Code 예약 작업으로 Reddit 페인 포인트 찾기를 읽어 보세요. ChatGPT 예약 작업을 수요 레이더로 활용하기도 참고하세요.
| 단계 | 사용 위치 | API 비용 | 시점 |
|---|---|---|---|
| 1. 호출 한 번 테스트 | 터미널(curl) | $0.000556 | 1회 |
| 2. 네 목록 수집 | cron 또는 launchd로 collect.py 실행 | 주당 $0.017–$0.069(하루 1~4회 스냅샷) | 매일 |
| 3. 다이제스트 작성 | 스킬을 적용한 Gemini 채팅 | API 비용 없음, 스킬은 요금제 불필요 | 매주 월요일 |
| 4. 전체 자동화 | Gemini API 트리거 | 실행당 Gemini 토큰 사용량(비용 섹션 참고) | 선택 |
FAQ
질문은 Google 추천 검색어와 Gemini 도움말 커뮤니티의 공개 스레드에서 가져왔습니다. 답변은 2026년 11월 4일에 확인한 공식 페이지를 기준으로 합니다.
Gemini 스킬과 Gems 비교: 지금 Gems를 바꿔야 하나요?
개인 계정이라면 그렇습니다. 2026년 11월 17일부터 Gems는 읽기 전용이 되어 사용하거나 수정할 수 없습니다. 12월 17일에는 삭제됩니다. 자동 마이그레이션은 각 Gem을 비활성 상태의 초안 스킬로 바꾸며, 하나씩 검토하고 활성화해야 합니다. 100 MB 제한을 넘는 파일, 오디오, 동영상, 압축 파일, 구형 Office 파일은 옮겨지지 않습니다. 매주 쓰는 Gems는 지금 직접 다시 만드세요.
이때 각 설명도 “무엇을 하는지”에 “Use when…”을 더한 형태로 바꾸세요. 직장 및 학교 계정은 시간이 더 있습니다. 비즈니스 및 엔터프라이즈 계정은 빨라도 2027년 3월 1일, 교육용 계정은 빨라도 2027년 6월 1일부터 적용됩니다. (추천 검색어 “gemini skills vs gems”, “claude skills vs gemini gems”에서 나온 질문입니다.)
Gemini Gems 읽기 전용: 11월 17일 이후에도 내보낼 수 있나요?
Gems를 보고 파일을 다운로드할 수는 있지만 사용할 수는 없습니다. 도움말 페이지에 따르면 11월 17일 이후에도 Gems에 접근할 수는 있지만 사용하거나 수정할 수 없고, 새로 만들 수도 없습니다. 또한 개인 계정 사용자에게 마이그레이션되지 않는 파일을 12월 17일 전에 다운로드하라고 안내합니다. 즉, 읽기 전용으로 바뀐 한 달이 지식 파일을 되찾을 마지막 기회입니다. (추천 검색어 “gemini gems read only mode”에서 나온 질문입니다.)
Gemini 스킬과 MCP: Gemini 앱의 스킬이 MCP를 직접 호출할 수 있나요?
스킬 자체는 인터넷에 접속할 수 없습니다. 도움말 페이지에 따르면 업로드한 스크립트는 인터넷에 접근하거나 외부 웹사이트로 요청을 보낼 수 없습니다. 하지만 스킬은 Connected Apps와 함께 동작할 수 있고, “맞춤 앱(custom app)”은 MCP 서버 URL입니다. 이를 사용하려면 만 18세 이상이어야 하고, 미국에 있어야 하며, 개인 계정과 영어를 사용해야 합니다.
이 요건을 충족하지 않으면 데이터를 로컬에서 가져와 표로 업로드하세요. Gemini API의 Antigravity 에이전트(mcp_server 도구 지원)나 Antigravity CLI를 써도 됩니다. (추천 검색어 “gemini skills mcp”, “gemini cli skills mcp”에서 나온 질문입니다.)
Claude처럼 쓰는 Gemini 스킬: Claude 스킬을 Gemini에 업로드할 수 있나요?
형식만 보면 가능합니다. 둘 다 개방형 Agent Skills 표준을 기반으로 하며, Gemini 도움말 페이지에 따르면 SKILL.md, 폴더, .zip을 업로드할 수 있습니다. 세 가지를 확인하세요. 이름은 소문자와 하이픈으로 구성해야 합니다.
Gemini는 호출 제어나 서브에이전트 실행처럼 Claude Code 전용 확장 필드를 읽지 않습니다. 스킬에 인터넷에 접속하는 스크립트가 있으면 그 스크립트는 Gemini 앱에서 실행되지 않습니다. 저희 스킬은 name과 description만 사용하며, 데이터 수집은 스킬 밖에서 처리합니다. (추천 검색어 “gemini skills like claude”에서 나온 질문입니다.)
Gemini가 내 스킬을 자동으로 사용하지 않는 이유는 무엇인가요?
도움말 페이지에 따르면 Gemini는 켜져 있는 스킬만 적용합니다. 스킬 페이지에서 스킬을 끄거나 다시 켤 수 있습니다. Gemini는 이름과 설명만 보고 판단합니다. 설명이 너무 일반적이면(예: “data helper”) Gemini는 언제 이 스킬을 써야 할지 알 수 없습니다.
가장 확실한 방법은 채팅에 /(또는 @)를 입력하고 스킬을 선택하는 것입니다. 또한 도움말 페이지에 따르면 스킬은 현재 만 18세 이상 사용자의 개인 계정에서 사용할 수 있고, 직장 및 학교 계정에는 “곧” 제공됩니다. Workspace 계정에 스킬 페이지가 보이지 않는다면 아직 해당 계정에 배포되지 않았을 수 있습니다. (Gemini 도움말 커뮤니티 스레드 “Will a Skill have an always on state”에서 나온 질문입니다.)
참고 자료
아래 페이지는 모두 2026년 11월 4일(SGT)에 확인했습니다.
- Gemini Apps Help: About the transition from Gems to skills
- Workspace Admin Help: About the transition from Gems to skills
- Workspace Updates(2026년 9월 30일): “skills in the Gemini app and Workspace”
- Workspace Updates(2026년 10월 13일): “an update on the skills launch”
- Google 블로그(2026년 9월 30일): “automate tasks with skills”
- Gemini Apps Help: “release updates”(2026년 9월 30일, 10월 13일)
- Gemini Apps Help: Create & manage skills
- Gemini Apps Help: Write effective skills
- Gemini Apps Help: “Manage your tasks & workflows”(지역 및 요금제 제한)
- Gemini Apps Help: limits and upgrades for Google AI subscribers
- Gemini Apps Help: Connect & manage custom apps
- Gemini Help Community: Will a Skill have an always on state
- Google Connected Apps 개발자 문서
- Gemini Apps Developer Mode overview
- Google 블로그(2026년 10월 28일): “the Connected Apps platform preview”
- MCP specification: Tools(readOnlyHint, destructiveHint 어노테이션)
- MCP specification: Transports (Streamable HTTP)
- RFC 7591: OAuth 2.0 Dynamic Client Registration
- RFC 9728: OAuth 2.0 Protected Resource Metadata
- IETF draft: The OAuth 2.1 Authorization Framework
- Gemini API: “Function calling”(Remote MCP 섹션)
- Gemini API: Antigravity agent (MCP, Triggers, Budget)
- Gemini API: managed agents overview
- Gemini API: Interactions API overview
- Gemini API reference: Interactions (inline environment sources)
- Gemini API pricing
- Gemini API: Understand and count tokens
- Gemini API changelog
- Gemini API: deprecations
- Gemini API CLI (gemini-api) guide
- Gemini API: Computer Use
- Gemini API: Coding agent setup
- GitHub: google-gemini/gemini-skills
- Agent Skills specification
- GitHub: agentskills/agentskills
- Antigravity: Agent skills
- Antigravity: MCP
- Antigravity CLI: headless mode
- Claude Code: Extend Claude with skills
- Claude docs: Agent Skills overview
- Claude Help: Use skills in Claude
- Codex: Build skills
- Weibo 인기 검색 규칙
- Zhihu 인기 목록 소개
- X API pricing
- X API: Trends
- X Developer Agreement and Policy
- Reddit Responsible Builder Policy
- Reddit Data API Terms
- EveryInfra 기능 카탈로그(price_usd 및 필드 설명, 2026년 11월 4일 확인)
- Python docs: urllib.request
- RFC 4180: the CSV format
- Apple developer docs: scheduling timed jobs with launchd
참고 BL-82