테마
OPEN API 선정과 연동
학습 목표
- OPEN API를 선정할 때 반드시 확인해야 할 기준을 설명할 수 있다.
- WeatherAPI.com을 선택한 이유를 이해한다.
- API KEY를 발급받고 안전하게 관리하는 방법을 익힌다.
- API KEY 보안 원칙을 실무에 적용할 수 있다.
OPEN API란?
OPEN API = 다른 서비스의 데이터를 내 사이트에서 사용할 수 있게 해주는 통로
날씨 데이터, 환율 정보, 뉴스 헤드라인 등을 우리가 직접 수집하는 것은 불가능하다. OPEN API를 사용하면 이미 잘 정리된 데이터를 요청 한 번으로 가져올 수 있다.
OPEN API 선정 기준
무료 API라고 아무거나 사용하면 안 된다. 광고 수익화 사이트에 사용하려면 아래 조건을 반드시 확인해야 한다.
체크리스트 상세
| 순서 | 확인 항목 | 기준 | 이유 |
|---|---|---|---|
| 1 | 무료 여부 | 무료 플랜 제공 | 초기 비용 최소화 |
| 2 | 상업적 사용 | 광고 게재 허용 | 애드센스 연동 예정 |
| 3 | 호출 횟수 | 하루 최소 10,000회 이상 | 트래픽 증가에 대비 |
| 4 | 속도 제한 | 초당/분당 제한 확인 | 동시 접속 처리 가능 여부 |
팁: GPT나 Grok의 웹 검색 기능을 활용하면, "무료이면서 상업적 사용이 가능한 날씨 API"처럼 조건을 입력하여 후보군을 빠르게 찾을 수 있다.
WeatherAPI.com 선택 이유
여러 후보 중에서 WeatherAPI.com을 선택한 이유는 다음과 같다.
| 항목 | WeatherAPI.com | 기타 날씨 API |
|---|---|---|
| 가격 | 무료 | 일부 유료 |
| 월 호출 한도 | Free 플랜 기준 10만 회 | 제품별로 차이 큼 |
| 상업적 사용 | 허용 | 일부 제한 |
| 데이터 범위 | 전 세계 | 일부 지역 제한 |
| 응답 속도 | 빠름 | 보통 |
WeatherAPI.com은 현재 공식 가격 페이지 기준 Free 플랜에서 월 10만 회 호출을 제공한다. 초기 검증 단계에는 충분한 편이지만, 호출량이 빠르게 늘 수 있는 서비스라면 도입 전에 최신 한도와 요금제를 다시 확인해야 한다.
API KEY 발급
발급 과정
- weatherapi.com 접속
- Sign Up 클릭하여 회원가입
- 로그인 후 대시보드에서 API Key 확인
- KEY를 복사하여 안전한 곳에 보관
API KEY란?
API KEY = API를 사용할 때 필요한 비밀번호
식당에 들어갈 때 예약 번호를 보여주듯이, API를 호출할 때 KEY를 함께 보내야 한다. 이 KEY가 있어야 "이 사람은 정당한 사용자"라고 인증받을 수 있다.
API KEY 보안 원칙
API KEY는 절대로 외부에 노출되어서는 안 된다.
이것은 단순한 권고가 아니라 반드시 지켜야 할 원칙이다. KEY가 노출되면 다른 사람이 내 명의로 API를 무제한 호출할 수 있고, 요금이 청구되거나 서비스가 차단될 수 있다.
보안 원칙 정리
| 규칙 | 설명 | 위반 시 위험 |
|---|---|---|
| 환경변수로 관리 | .dev.vars 또는 Cloudflare 환경변수 사용 | KEY가 코드에 남아 유출 |
| 서버사이드에서만 사용 | Edge Function 등 서버 코드에서만 KEY 사용 | 브라우저에서 KEY 노출 |
| 클라이언트 코드에 포함 X | React 컴포넌트 등에 직접 넣지 않기 | 개발자도구로 즉시 확인 가능 |
| Github Public Repo에 노출 X | Private Repo 사용 또는 .gitignore 설정 | 전 세계에 KEY 공개 |
경고: Github에 실수로 API KEY를 올리면, 봇이 수 초 내에 탐지하여 악용한다. 한 번이라도 올렸다면, 해당 KEY를 즉시 폐기하고 새로 발급받아야 한다.
API 호출 예시
WeatherAPI.com의 현재 날씨 API를 호출하는 URL 형태이다.
https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=Seoul&lang=ko| 파라미터 | 의미 | 예시 |
|---|---|---|
| key | API KEY | (발급받은 키) |
| q | 지역 이름 | Seoul, Busan, Tokyo |
| lang | 응답 언어 | ko (한국어) |
응답 예시
json
{
"location": {
"name": "Seoul",
"country": "South Korea"
},
"current": {
"temp_c": 15.0,
"condition": {
"text": "맑음"
},
"humidity": 45,
"wind_kph": 12.0
}
}핵심 정리
| 순서 | 할 일 | 결과 |
|---|---|---|
| 1 | API 선정 기준 확인 (무료, 상업적 사용, 호출 한도) | 체크리스트 완성 |
| 2 | WeatherAPI.com 회원가입 | 계정 생성 |
| 3 | API KEY 발급 | KEY 확보 |
| 4 | KEY를 환경변수로 안전하게 저장 | 보안 확보 |
다음 단계: 발급받은 API KEY를 사용하여 Supabase Edge Function에서 안전하게 API를 호출하는 방법을 알아본다.