API가 뭔가요? 🤔
코딩을 처음 배우면 "API"라는 단어를 자주 듣게 됩니다. 하지만 API가 정확히 무엇인지 이해하기 어려울 수 있어요. 이 가이드에서는 API를 아주 쉽게 설명해드릴게요!
API를 일상생활로 비유하면?
API를 레스 토랑으로 비유해볼까요?
레스토랑 이야기 🍽️
레스토랑에 가면:
- 손님(여러분): 음식을 주문하고 싶어요
- 웨이터: 손님의 주문을 받아서 주방에 전달해요
- 주방: 음식을 만들어요
- 웨이터: 완성된 음식을 손님에게 가져다줘요
여기서 웨이터가 바로 API 역할을 합니다!
손님(앱) → 웨이터(API) → 주방(서버)
↓
손님(앱) ← 웨이터(API) ← 완성된 음식(데이터)
API의 정식 정의
API (Application Programming Interface)
프로그램들이 서로 대화하고 정보를 주고받을 수 있게 해주는 중간 다리 역할을 합니다.
실제 예시로 이해하기
예시 1: 날씨 앱 ☀️
날씨 앱을 켜면 오늘의 날씨가 나타납니다:
1. 날씨 앱이 날씨 서버에게 "오늘 서울 날씨 알려줘!" 요청
2. API가 이 요청을 전달
3. 서버가 날씨 정보를 찾음
4. API가 정보를 받아서 앱에 전달
5. 앱 화면에 "서울, 맑음, 23°C" 표시
예시 2: 로그인 🔐
구글 계정으로 다른 웹사이트에 로그인할 때:
1. 웹사이트가 구글에게 "이 사람 확인해줘" 요청
2. 구글 API가 사용자 정보 확인
3. 확인되면 웹사이트에 "OK" 응답
4. 로그인 완료!
예시 3: 지도 앱 🗺️
배달 앱에서 지도를 볼 수 있는 이유:
배달 앱은 지도를 직접 만들지 않고,
구글 지도 API를 사용해서 지도를 가져옵니다!
API 요청은 어떻게 생겼을까?
API에게 요청하는 것은 주소를 입력하는 것과 비슷합니다:
https://api.weather.com/weather?city=Seoul
↑ ↑ ↑
서버 주소 뭘 원하는지 어디의?
API의 장점 🌟
1. 바퀴를 다시 발명하지 않아도 돼요
이미 잘 만들어진 기능을 API로 가져다 쓸 수 있어요.
예시:
- 결 제 기능: 토스페이먼츠 API 사용
- 지도 기능: 카카오맵 API 사용
- 로그인 기능: 구글/네이버 로그인 API 사용
2. 안전하게 정보를 주고받을 수 있어요
직접 데이터베이스에 접근하지 않고 API를 통해서만 접근하니까 안전해요.
3. 여러 프로그램이 함께 사용할 수 있어요
스마트폰 앱, 웹사이트, 태블릿 앱 모두 같은 API를 사용할 수 있어요.
웹 API의 종류
REST API (가장 흔함)
웹에서 가장 많이 사용하는 API 방식입니다.
특징:
- URL로 요청
- 간단하고 배우기 쉬움
- 대부분의 웹 서비스가 사용
예시:
가져오기(읽기): GET https://api.example.com/users
만들기(쓰기): POST https://api.example.com/users
수정하기: PUT https://api.example.com/users/123
삭제하기: DELETE https://api.example.com/users/123
GraphQL
필요한 데이터만 정확히 요청할 수 있는 방식입니다.
SOAP
옛날 방식의 API입니다. 요즘은 잘 안 씁니다.
API 사용해보기
우리 사이트의 API Tester 도구로 실제 API를 사용해볼 수 있어요!
간단한 실습
- API Tester로 이동
- URL에 입력:
https://api.github.com/users/github - Method는
GET선택 - Send 버튼 클릭!
GitHub의 공개 정보를 받아올 수 있을 거예요.
API 응답은 어떻게 생겼을까?
API는 보통 JSON 형식으로 데이터를 보내줍니다:
{
"name": "GitHub",
"location": "San Francisco",
"public_repos": 344
}
팁
JSON이 뭔지 궁금하다면? JSON 데이터 형식 이해하기 문서를 확인해보세요!
실전 활용 예시
블로그 만들기
블로그 포스트 목록 보기:
GET https://myblog.com/api/posts
새 포스트 작성:
POST https://myblog.com/api/posts
쇼핑몰 만들기
상품 목록 보기:
GET https://myshop.com/api/products
장바구니에 추가:
POST https://myshop.com/api/cart
주요 용어 정리
| 용어 | 의미 | 예시 |
|---|---|---|
| 요청 (Request) | 서버에게 뭔가를 달라고 부탁하는 것 | "날씨 정보 주세요" |
| 응답 (Response) | 서버가 보내주는 대답 | "서울은 맑음입니다" |
| 엔드포인트 (Endpoint) | API의 주소 | /api/weather |
| 메소드 (Method) | 어떤 동작을 할지 | GET, POST, PUT, DELETE |
| JSON | 데이터를 주고받는 형식 | {"city": "Seoul"} |