Communitygithub.com

금융 및 환율 데이터

실시간 또는 과거 금융 데이터가 필요할 때 사용합니다 - "USD를 EUR로 변환", "현재/과거 환율", "특정 날짜/범위의 FX 환율", 또는 "비트코인/이더리움의 현재 가격, 시가총액, 24시간 변동률" 등을 처리합니다. Frankfurter(ECB 기준 금리, 키 불필요)가 FX 기본값이며, CoinGecko의 무료 키리스 티어가 암호화폐를 다룹니다. 주식 시세에는 사용하지 마십시오 - 키리스 주식 API는 검증을 통과하지 못하며, 추측 대신 그렇게 말하십시오; GDP나 인플레이션 같은 국가 경제 지표에는 사용하지 마십시오 - 대신 government-open-data를 사용하십시오; 요청이 모호한 "실시간 데이터 필요"인 경우 public-data-api-picker를 통해 라우팅하십시오.

금융 및 환율 데이터란 무엇인가요?

이 스킬은 개발자와 AI 에이전트가 외부 API 키 없이도 실시간 및 과거 환율과 암호화폐 가격 데이터를 가져올 수 있도록 설계되었습니다. Frankfurter API(ECB 기준 금리, 약 30개 주요 통화, 1999년 이후 데이터)를 fiat FX의 기본 소스로 사용하며, CoinGecko 무료 티어(수천 개 코인, 분당 5-15회 호출 제한)를 암호화폐 데이터에 사용합니다. 주요 기능으로는 최신/과거 환율 조회, 시간 범위 데이터, 암호화폐 시세 및 시가총액, 시장 테이블 조회 등이 포함됩니다. 이 스킬은 키가 필요한 exchangerate.host, Fixer, Alpha Vantage 같은 서비스를 대체하며, 주식 시세나 국가 경제 지표에는 사용하지 말라고 명시합니다. 모든 요청은 결과와 함께 날짜, 출처, 정확한 URL을 반환하며, 금융 산술 연산을 투명하게 보여줍니다. Frankfurter의 30통화 제한을 존중하고, CoinGecko 호출은 배치 처리되며 429 오류 발생 시 백오프 메커니즘을 적용합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SkillMedev/skills/tree/HEAD/skills/finance-fx

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

금융 및 환율 데이터은(는) 무엇을 하나요?

키가 필요 없는 호출로 환율과 암호화폐 가격을 가져옵니다. 이 스킬이 방지하는 실수: 학습 메모리에서 exchangerate.host, Fixer, Alpha Vantage를 떠올려 사용하는 것(모두 현재 키가 필요함), 또는 학습 데이터의 오래된 환율을 실제 계산에 사용하는 것.

순위별 API

  1. Frankfurter (api.frankfurter.dev) - fiat FX의 기본값. 유럽 중앙은행(ECB) 기준 금리, 약 30개 주요 통화, 1999년 이후 과거 데이터, 시계열, 키 불필요, 걱정할 만한 속도 제한 없음.
  2. CoinGecko 무료 티어 (api.coingecko.com) - 수천 개 코인의 암호화폐 가격, 시가총액, 24시간 변동률. 키 불필요하지만 엄격한 제한 있음: 익명 IP에서 분당 약 5-15회 호출. 여러 id를 한 번의 호출로 배치 처리; 429 오류 발생 시 60초 대기.

절차

  1. fiat인가 암호화폐인가? Fiat → Frankfurter. 암호화폐 → CoinGecko. 암호화폐→fiat 변환은 CoinGecko 호출 한 번(vs_currencies=eur)으로 처리, 두 번의 호출 필요 없음.
  2. 날짜를 확인하세요. ECB 기준 금리는 영업일 기준 약 16:00 CET에 업데이트됨; 응답의 date 필드가 실제로 받은 날짜를 알려줍니다. 주말/공휴일 요청은 이전 영업일의 데이터를 반환 - 그 날짜를 인용하고, 오늘 날짜인 것처럼 제시하지 마십시오.
  3. CoinGecko id, ticker가 아닌 것을 사용하세요. ids 매개변수는 bitcoin, ethereum, solana 등이 필요하며, BTC/ETH가 아닙니다. 익숙하지 않은 코인의 경우 /api/v3/search?query={name} → coins[0].id를 통해 한 번 확인하세요.
  4. 절대 메모리에서 FX 계산을 하지 마세요. 작업이 금액에 환율을 곱하는 경우, 환율은 이들 호출 중 하나에서 가져와야 하며, 날짜가 첨부되어야 합니다.

누락된 정보(통화 쌍 또는 코인(기본값 없음), 날짜/범위(기본값: 최신), 금액(기본값: 1))가 있는 경우에만 사용자에게 물어보세요.

URL 템플릿 + 실제 응답 형식

최신 환율:

https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP,JPY
{"amount":1.0,"base":"USD","date":"<마지막 영업일>","rates":{"EUR":0.87352,"GBP":0.74878,"JPY":161.15}}

&amount=250을 사용하여 서버 측에서 금액을 변환하면 rates가 미리 곱해져 반환됩니다.

과거 데이터 / 시계열:

https://api.frankfurter.dev/v1/2024-01-15?base=USD&symbols=EUR          ← 특정 날짜
https://api.frankfurter.dev/v1/2024-01-02..2024-01-31?base=USD&symbols=EUR   ← 범위
https://api.frankfurter.dev/v1/currencies                               ← 코드 → 이름 매핑

범위 형식: {"rates":{"2024-01-02":{"EUR":0.91274},"2024-01-03":{"EUR":0.91583}}} - 날짜 키, 영업일만 포함(1년 전체 기준 약 256개의 일일 포인트; 주말 키는 없으므로 누락을 데이터 부재로 취급하지 마십시오). 종료 날짜를 생략(/2024-01-02..)하면 현재까지 조회됩니다.

암호화폐 현물 가격:

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd&include_24hr_change=true
{"bitcoin":{"usd":63289,"usd_24h_change":1.19},"ethereum":{"usd":1790.89,"usd_24h_change":1.90}}

알 수 없는 id는 응답에서 자동으로 제외됩니다 - 키가 없다는 것은 가격이 0이 아니라 잘못된 id를 의미합니다.

암호화폐 시장 테이블 (순위, 시가총액, 공급량):

https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=20&page=1

{"id","symbol","name","current_price","market_cap","market_cap_rank","price_change_percentage_24h","circulating_supply","ath"} 배열 - 한 번의 호출로 스무 번의 /simple/price 호출을 대체합니다; 목록에는 이를 선호하세요.

산출물

해당 날짜/타임스탬프와 출처가 명시된 환율 또는 가격, 그리고 사용된 정확한 URL을 포함합니다. 모든 변환은 산술 연산을 보여줍니다: 250 USD × 0.87352 (ECB, <환율 날짜>) = 218.38 EUR.

사용하지 마십시오 - 대신 X를 사용하세요

  • exchangerate.host - 모든 요청에 이제 access_key가 필요하며, 키리스 사용 불가가 확인됨. Frankfurter가 이를 대체합니다.
  • Fixer, Alpha Vantage, Finnhub, Polygon, OpenExchangeRates - 키 필요; Frankfurter/CoinGecko로 충분할 때 사용자에게 가입을 요청하지 마십시오.
  • 주식/지분 시세 - 키리스로 검증을 통과하는 API가 없습니다. 솔직하게 말하고 유료 옵션을 언급하되 가격을 조작하지 마십시오.
  • GDP, 인플레이션, 실업률, 무역 시계열 - government-open-data를 사용하세요.
  • 재정 조언 - 이 스킬은 숫자를 가져옵니다; 매수/매도/할당 판단은 범위를 벗어납니다. 데이터를 제시하고, 추천은 하지 마십시오.

품질 기준

  • 모든 숫자는 날짜와 출처를 포함합니다; 어떤 환율이나 가격도 학습 메모리에서 비롯되지 않습니다.
  • Frankfurter의 약 30통화 제한이 존중됨 - 희귀 통화 쌍(예: NGN, VND)은 지원되지 않는다고 선언하고, 근사치를 사용하지 않습니다.
  • CoinGecko 호출은 배치 처리됩니다; 429 오류 발생 시 재시도 루프 대신 백오프합니다.

public-apis 프로젝트(MIT 라이선스)에서 가져와 활성 상태를 확인했습니다.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

SkillMedev/skills

Designs REST API surfaces - resource naming, HTTP method and status-code semantics, error shapes, pagination, and filtering - and delivers an endpoint spec a consumer can build against without asking questions. Use when someone asks "how should I name this endpoint", "what status code should this return", "should this be PUT or PATCH", "how do I paginate this list", or is reviewing an API before it ships to external consumers. Do NOT use for planning breaking-change rollouts and deprecation windows - use api-versioning-strategist instead; for GraphQL type and resolver design - use graphql-schema instead; for generating client SDKs from an existing spec - use api-client-generator instead; for designing inbound webhook endpoints - use webhook-receiver-hardener instead.

SkillMedev/skills

Produce an accurate, properly timed caption track (SRT or WebVTT) from a video's audio - transcribing or aligning to the voiceover script, timing cues to speech, and enforcing line-length and reading-speed rules so captions are readable and in sync. Use when someone says "generate captions", "make subtitles from the audio", "transcribe and caption this", "export an SRT or VTT", "the captions are out of sync", or "the subtitles flash by too fast to read". Do NOT use to burn-in, style, reframe, or position an existing caption track for a platform (9:16, brand styling, safe areas) - that is social-video-formatter; do NOT use to animate text word-by-word as a motion graphic - that is kinetic-typography; do NOT use to write the spoken script in the first place - that is narration-script.

SkillMedev/skills

Turns data and charts into a decision-driving narrative structured as headline finding, trend, implication, and recommended action - with finding-led chart titles, context for every number, annotation guidance, and honest flags on any conclusion the data cannot support. Use when someone says "turn these numbers into a story", "what's the takeaway from this data", "help me present these results to leadership", or has charts but no narrative. Do NOT use for compressing a long document into a one-pager - use executive-summary instead - or for running the analysis that produces the findings - use eda-playbook instead.

SkillMedev/skills

Builds a driver-based FP&A operating model linking business inputs to P&L, balance sheet, and cash flow outputs. Use when building an annual plan, preparing investor materials, running scenario analysis, or stress-testing the business.

SkillMedev/skills

Use when a task needs live geographic lookups - "geocode this address", "what's at these coordinates" (reverse geocoding), "lat/lon for this city", "which country/state is this ZIP or postal code in", or "country facts: capital, currency, population, flag". Nominatim (OpenStreetMap) is the geocoding default; Zippopotam for postal codes; APICountries for country facts. All keyless. Do NOT use for weather at a location - use weather-climate instead; do NOT use for country-level statistics over time (GDP, population trends) - use government-open-data instead; if the request is a vague "I need live data", route through public-data-api-picker.

SkillMedev/skills

Runs the full Getting Things Done loop - capture, clarify, organize, reflect, engage - building a trusted system of context lists, a projects list with defined next actions, and a weekly review habit. Use when someone says "I'm overwhelmed and things are slipping through the cracks", "set up GTD for me", "help me do a brain dump and organize it", or "my to-do list is a mess". Do NOT use for just running the weekly review ritual itself - use weekly-review instead - or for clearing an email backlog - use inbox-zero.

SkillMedev/skills

Processes any email backlog to zero using the 4Ds - Delete, Delegate, Defer, Do - with a mass-archive strategy for the obvious, a touch-each-email-once discipline, and a keep-it-clear system of batched processing windows, ruthless unsubscribing, filters, and a minimal folder setup. Use when someone says "I have 5,000 unread emails", "help me get to inbox zero", "email is eating my whole day", or treats their inbox as a to-do list. Do NOT use for drafting the reply emails themselves or prioritization rules for an ongoing support queue - use email-triage instead - or for protecting focus time around the email windows - use deep-work-planner instead.

SkillMedev/skills

Write landing-page copy section by section - hero, social proof, features-as-benefits, objections, CTA - leading with one promise and proving it down the page. Use when someone asks "write my landing page", "improve my hero headline", "what should the homepage say", "turn these features into benefits", or is shipping a new page for a launch or campaign. Do NOT use for testing and optimizing an existing page's conversion rate - use landing-page-cro instead; for the one-line claim itself use positioning-statement; for the full message ladder use messaging-hierarchy.

SkillMedev/skills

Improves an existing landing page's conversion rate through evidence-first CRO - audit heatmaps and recordings, write structured hypotheses, prioritize with ICE scoring, and run one-variable tests to statistical significance. Use when someone asks "why isn't my landing page converting", "audit this page before we scale spend", "which A/B test should we run first", or after a CVR drop or ahead of a paid-traffic push. Do NOT use for writing a new landing page from scratch - use landing-page-copy instead. Do NOT use for auditing the ad accounts sending the traffic - use paid-acquisition-audit instead. Do NOT use for reading the results of a finished experiment - use ab-test-analyzer instead.

SkillMedev/skills

Runs structured coaching sessions using values clarification and the GROW model, ending every session with one committed action, a deadline, and an if-then plan for the likely obstacle. Use when someone says "I feel stuck in my life", "help me figure out what I want", "hold me accountable to my goals", or "coach me through this decision". Do NOT use for building a stress toolkit - use stress-management instead - or a journaling practice - use journal-framework; for a standing goal-tracking system, use goals-accountability. Coaching, not therapy: signs of clinical distress route to a licensed professional.

SkillMedev/skills

Adapts English content for a target language and region - swapping idioms, setting the right formality register, replacing cultural references, converting dates, units, and currency - and delivers the localized text with a notes column explaining each adaptation and flagging what needs a native reviewer. Use when someone asks "localize this copy for the Japanese market", "adapt our marketing copy for the Mexican market", "make this translation sound native instead of literal", or a literal translation reads foreign, stiff, or risky. Do NOT use for auditing in-product UI text quality - use ux-writing-audit instead.

SkillMedev/skills

Turns a natural-language video brief into a complete, ready-to-preview Remotion composition - extracts duration, scenes, brand colors, aspect ratio, and real copy; plans the frame budget; and writes data-driven React/TypeScript using useCurrentFrame, interpolate, spring, AbsoluteFill, and Sequence, registered in Root.tsx. Use when someone says "build a 20-second product demo video", "animate a feature walkthrough", "write the Remotion code for this marketing clip", or wants a scene-by-scene composition they can scrub in Studio. Do NOT use for rendering, iterating, or batching the finished MP4 - use remotion-render instead - or for installing and scaffolding the project - use remotion-setup instead.

SkillMedev/skills

Scaffolds a new Remotion video project wired for Claude Code Agent Skills - Node check, create-video scaffold, skills install, folder conventions, Google Fonts, and a smoke-test render. Use whenever someone wants to start making videos with Remotion and Claude, even just "make product videos with Claude.

SkillMedev/skills

Classifies incident severity (SEV1-4) using impact, scope, and urgency signals and decides who to page. Use when an alert fires or a report comes in and a severity call must be made quickly.

SkillMedev/skills

Use the Skill Me catalog from inside any conversation - discover, install, and manage Claude skills through the Skill Me MCP, and load installed skills automatically each session.

SkillMedev/skills

Write one platform-native caption from a topic and brand voice, with a front-loaded hook, native length, and a single earned CTA. Use when the user gives a topic (and optionally brand voice or a described image/video) and asks for an Instagram, LinkedIn, X/Twitter, or TikTok caption. Do NOT use when the user wants a dedicated standalone LinkedIn post - use linkedin-post-writer instead; or a multi-post X thread - use tweet-thread-builder instead; or to adapt one existing piece of content into versions for several channels - use cross-platform-reformatter instead.

SkillMedev/skills

Reframe and export a finished video for social platforms - 9:16 ↔ 16:9 cropping, burned-in captions, a platform-native first frame, loop design, and per-platform specs (aspect, length, safe areas) for TikTok, Reels, Shorts, X, and LinkedIn. Use when someone says "make this vertical", "crop to 9:16", "format for TikTok/Reels/Shorts", "add captions/subtitles", "why is my video cut off on mobile", "resize for Instagram", or "export for social". Do NOT use when the question is about the storyboard or shot order before any video exists (use video-storyboard); the animation craft of how elements move (use motion-design-principles); animated word-by-word caption styling (use kinetic-typography); palette, contrast, or lighting (use motion-color-and-light); directing the product-demo content and screen choreography (use product-demo-director); or scoring, beat-syncing, or audio (use sound-and-music-sync) - this is the craft layer that decides WHAT to format for the feed, then hands a concrete spec to remotion-compo...

SkillMedev/skills

Writes and tunes PySpark jobs - join strategy and broadcast size limits, shuffle-partition sizing, skew diagnosis and salting, UDF avoidance, caching, and output file layout - with concrete size and skew thresholds. Use when someone asks "why is my Spark job slow", "should I broadcast this join", "one task takes forever while the rest finish", "my job OOMs during a join", or is writing a new PySpark ETL job. Do NOT use for Kafka topic, consumer-group, or streaming-pipeline design - use kafka-pipelines instead; do NOT use for single-machine dataframe work that fits in memory - use pandas-expert instead.

SkillMedev/skills

Builds clean, performant, accessible SwiftUI views with correct state ownership, scoped invalidation, and smooth list scrolling, and reviews existing SwiftUI code against a concrete frame-time and re-render budget. Use when someone asks "why does my SwiftUI list stutter", "should this be @State or @Observable", "my whole screen re-renders when one row changes", "how do I animate this transition", or wants a SwiftUI view built or refactored. Do NOT use for cross-platform React Native apps - use react-native-pro instead; do NOT use for Flutter widget trees - use flutter-widget-architect instead; do NOT use for Android Compose UIs - use jetpack-compose-builder instead.

관련 스킬