API 활용 입문 | REST API 5분 완벽 이해
API 완벽 이해하기 - 초보자 가이드
API는 프로그래머가 자주 쓰는 단어인데, 실은 매우 간단합니다.
API는 요청과 답변
API (Application Programming Interface):
- 앱이 앱과 대화하는 방법
- 마치 전화번호부처럼 어떤 정보를 달라고 요청
- 정보를 받아서 사용
일상 속 API 예시
예 1: 날씨 앱
날씨 앱 → 날씨 서버에 "서울 날씨 알려줘" 요청
날씨 서버 → "25도, 맑음" 응답
날씨 앱 → 화면에 날씨 표시예 2: 지도 앱
지도 앱 → 구글 지도에 "강남역 음식점" 요청
구글 지도 → 주변 음식점 100개 정보 응답
지도 앱 → 지도에 표시예 3: 은행 앱
은행 앱 → 은행 서버에 "내 계좌 잔액 알려줘" 요청
은행 서버 → "5,000,000원" 응답
은행 앱 → 잔액 표시REST API 구조
REST API 4가지 기본 요청:
#### 1. GET - 정보 받기
GET /users/123
응답: {
"id": 123,
"name": "김철수",
"email": "kim@example.com"
}의미: ID 123번 사용자의 정보를 받기
#### 2. POST - 정보 전송
POST /users
데이터: {
"name": "이영희",
"email": "lee@example.com"
}
응답: {
"id": 124,
"status": "created"
}의미: 새로운 사용자 등록하기
#### 3. PUT - 정보 수정
PUT /users/123
데이터: {
"name": "김철수",
"email": "kim2024@example.com"
}의미: ID 123번 사용자 정보 수정하기
#### 4. DELETE - 정보 삭제
DELETE /users/123
응답: {
"status": "deleted"
}의미: ID 123번 사용자 삭제하기
실제 API 활용 사례
예 1: 날씨 API 사용
import requests
# 날씨 정보 요청
response = requests.get("https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=YOUR_KEY")
weather = response.json()
print(f"온도: {weather['main']['temp']}도")
print(f"상태: {weather['weather'][0]['main']}")결과:
온도: 5도
상태: 맑음예 2: 환율 API 사용
response = requests.get("https://api.example.com/exchange-rate")
rates = response.json()
print(f"1달러 = {rates['USD']}원")결과:
1달러 = 1,300원인기 공개 API 10가지
| API | 용도 | 가격 | 제한 |
| OpenWeatherMap | 날씨 정보 | 무료~$200/월 | 매분 60회 |
| Google Maps | 지도/위치 | $7/1000회 | 높음 |
| CoinGecko | 암호화폐 가격 | 무료 | 10회/초 |
| JSONPlaceholder | 테스트용 | 무료 | 무제한 |
| PokéAPI | 포켓몬 정보 | 무료 | 무제한 |
| REST Countries | 국가 정보 | 무료 | 무제한 |
| OpenAI (GPT) | AI 텍스트 생성 | $0.002/1K토큰 | 높음 |
| Spotify | 음악 정보 | 무료 | 제한적 |
| YouTube | 비디오 정보 | 무료 | 10K점수/일 |
| NewsAPI | 뉴스 기사 | 무료~$300/월 | 100회/일 |
API 활용 꿀팁
1. 문서 먼저 읽기
API 사용 순서:
1. 공식 문서 읽기 (매우 중요!)
2. 인증 토큰 발급
3. 테스트 요청 (GET부터)
4. 필요한 데이터 추출
5. 본격 활용2. 인증 토큰 관리
# 잘못된 방법
API_KEY = "sk-abc123xyz" # 노출됨!
# 올바른 방법
import os
API_KEY = os.getenv("OPENAI_API_KEY") # 환경변수3. 에러 처리
try:
response = requests.get(api_url)
response.raise_for_status() # 에러 발생 확인
data = response.json()
except requests.exceptions.RequestException as e:
print(f"API 요청 실패: {e}")API 속도 문제 해결
Rate Limiting (요청 횟수 제한):
- 문제: API마다 초당/분당 요청 제한
- 해결: 요청 사이에 시간 간격 추가
import time
for i in range(100):
response = requests.get(api_url)
time.sleep(1) # 1초 대기 (API 속도 문제 해결)API로 수익 만들기
방법 1: API 판매
- 자신의 데이터/기능을 API로 제공
- 월 $500~5,000 수익 가능
- 여러 API를 조합해 새로운 서비스
- 예: 날씨 + 스포츠 정보 API 조합 → 운동 추천 서비스
- API를 활용한 자동화 봇
- 월 수익: $1,000~10,000
API 학습 로드맵
1주차: HTTP 기초, GET 요청 이해 2주차: JSON 데이터 이해, 실제 API 호출 3주차: POST/PUT/DELETE 요청 4주차: 인증, 에러 처리 5주차: 자신의 API 문서 작성 6주차: 나만의 API 만들기
실습: 첫 API 요청 (5분)
1단계: Python 설치
pip install requests2단계: 날씨 정보 가져오기
import requests
response = requests.get(
"https://api.open-meteo.com/v1/forecast?latitude=37.5665&longitude=126.9780¤t=temperature_2m"
)
print(response.json())3단계: 결과 보기
{
"current": {
"temperature_2m": 5.2
}
}2026년 API 트렌드
GraphQL 확대:
- REST 대신 GraphQL 선호
- 더 유연한 데이터 요청
- OpenAI, Claude API 활용
- AI 기반 자동화 증가
- 작은 API 여럿 조합
- 복잡한 기능 구현
핵심 체크리스트
- [ ] 이 글의 핵심 내용을 이해했는가?
- [ ] 나의 상황에 적용할 수 있는 부분은?
- [ ] 추가로 확인할 사항은?
---
관련 콘텐츠: IT 기술