“API 연동 좀 해 주세요.” IT 쪽 사람이 아니면 이 한 마디에 머리가 하얗게 되죠. 네이버 로그인, 카카오 결제, 배달의민족 지도 — 사실 여러분이 매일 쓰는 모든 앱이 뒤에서는 API로 연결되어 있습니다. 개념만 정확히 잡으면 비개발자도 기획·마케팅·제휴 협의에서 쓸 수 있는 수준까지 이해할 수 있습니다.
이 글에서는 식당 비유부터 실제 공공데이터 API 호출 예시까지, API가 왜 중요하고 어떻게 쓰이는지 하나씩 풀어보겠습니다.
1. API를 한 문장으로 — “웨이터”다
API(Application Programming Interface)는 프로그램끼리 대화하는 창구입니다. 식당으로 비유하면:
- 손님(내 앱)이 주방에 들어가서 요리하지 않고, 웨이터(API)에게 주문
- 웨이터가 주문을 주방(서버)에 전달
- 주방에서 만든 요리(데이터)를 웨이터가 다시 손님에게 전달
- 손님은 주방이 어떻게 돌아가는지 알 필요가 없음 — 메뉴판(API 문서)만 보면 됨
즉 API는 “이런 요청을 보내면, 이런 응답을 돌려줄게”라는 계약서입니다. 한쪽이 계약서만 지키면 서로의 내부 구현을 전혀 몰라도 협업할 수 있습니다.
2. 일상 속 API 예시 — 이미 매일 쓰고 있다
| 서비스 | API 활용 | 누가 제공 |
|---|---|---|
| 카카오/네이버 로그인 | 다른 앱에서 내 카카오·네이버 계정으로 로그인 | 카카오·네이버 |
| 배달앱 지도 | 음식점 위치를 지도에 찍음 | 네이버지도·카카오맵 API |
| 날씨 위젯 | 현재 위치 날씨를 실시간으로 가져옴 | 기상청 공공데이터 API |
| 증권 앱 주가 | 실시간 KOSPI/KOSDAQ 시세 | 한국거래소·증권사 API |
| 쇼핑몰 결제 | 카드사 결제 처리 | PG사(이니시스·토스페이먼츠) API |
| 택배 조회 | 송장번호로 배송 현황 확인 | 각 택배사 API |
| 구글 번역 | 웹페이지·앱 안에서 번역 처리 | Google Translate API |
이 사이트(nalkkul.com)의 도구들도 대부분 공공데이터 API를 씁니다. 아파트 실거래가 조회는 국토교통부 실거래가 API, 약국 찾기는 보건복지부 의료기관 API를 호출해 그 결과를 보기 좋게 가공한 것입니다.
3. API 종류 — 용어 3개만 알면 충분
REST API — 가장 흔한 형태
HTTP 방식으로 URL에 요청을 보내고 JSON으로 응답을 받는 구조. 지금 쓰이는 API의 80% 이상이 여기에 해당합니다. 동작 동사는 네 가지만 기억하면 됩니다.
| 동사 | 의미 | 예시 |
|---|---|---|
GET | 조회 | 글 목록 가져오기 |
POST | 생성 | 새 글 쓰기 |
PUT / PATCH | 수정 | 글 내용 변경 |
DELETE | 삭제 | 글 휴지통으로 |
GraphQL — 필요한 것만 콕 집어 요청
REST는 “글 정보 주세요” 하면 제목·본문·작성자·댓글 수 등을 다 받아 옵니다. GraphQL은 “제목과 작성자만 주세요”가 가능해 모바일 앱처럼 대역폭이 중요한 환경에서 유리합니다. 페이스북·깃허브·쇼피파이가 대표적 사용처.
WebSocket — 실시간 양방향 통신
REST는 매번 새로 물어봐야 합니다. WebSocket은 연결을 계속 열어 두고 서버가 먼저 말을 걸 수도 있는 방식입니다. 채팅, 주식 실시간 시세, 배달앱의 기사 위치 추적 등에 씁니다.
4. 실제로 API 호출해 보기 (기상청 날씨 API)
터미널이 있는 분은 아래 명령 하나로 “정말 그렇구나”를 체감할 수 있습니다. 한국 공공데이터 포털에서 무료로 발급받는 키를 쓰는 예시입니다.
# 공공데이터포털(data.go.kr)에서 "기상청 초단기예보" 신청 후 받은 키 사용
curl -G "https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst" \
--data-urlencode "serviceKey=발급받은_키" \
--data-urlencode "dataType=JSON" \
--data-urlencode "base_date=20260420" \
--data-urlencode "base_time=0800" \
--data-urlencode "nx=60" \
--data-urlencode "ny=127"
# 응답(요약):
# "response": { "body": { "items": { "item": [
# { "category": "T1H", "obsrValue": "18.5" }, ← 기온 18.5℃
# { "category": "RN1", "obsrValue": "0" }, ← 1시간 강수량 0mm
# ...
# ] } } }
코드 한 줄로 기상청이 가진 실시간 날씨 데이터가 내 터미널에 찍힙니다. 바로 이것이 API의 힘이고, 이 응답을 HTML로 예쁘게 꾸미면 “날씨 앱”이 됩니다.
5. 기획자·마케터가 API를 알아야 하는 이유
① 일정 예측이 현실적으로 가능해진다
“이 서비스 만드는 데 얼마 걸릴까요?” API 이해도가 없으면 개발자가 내놓는 수치에 휘둘립니다. 아는 사람은 “외부 API 3개 연동이면 2주, 자체 구현이면 2달” 같은 합리적 질문이 가능합니다.
② 비용 견적이 달라진다
대부분의 API는 호출 횟수·사용량 기반 요금입니다. “이 기능이 월 100만 건 호출된다면 네이버 API 비용이 월 X만 원” 같은 계산이 기획 단계에서 가능해야 서비스 단가가 나옵니다.
③ 제휴 협상이 구체적이 된다
“귀사 데이터를 우리 서비스에 연동하고 싶습니다”는 말보다 “GET /v1/products 엔드포인트를 Read 권한으로 1초당 10회까지 호출하는 조건으로 제휴 제안드립니다”가 훨씬 설득력 있습니다.
6. API 보안 기초 — 키 관리가 전부
대부분의 API는 API 키로 “누가 호출했는지” 식별합니다. 이 키가 유출되면 남이 내 이름으로 호출하고, 비용까지 내 계정에 청구됩니다. 실제로 깃허브에 API 키를 실수로 커밋해 하룻밤 사이 수백만 원 과금 폭탄을 맞은 사례가 매년 반복됩니다.
- ✅ 프론트엔드(브라우저)에 키 노출 금지 — 서버를 경유해야 함
- ✅ 깃 저장소에 절대 커밋 금지 —
.env+.gitignore조합 - ✅ 키별 권한 최소화 — 읽기 전용이면 충분한데 관리자 키 쓰지 말 것
- ✅ 정기 교체 — 6개월에 한 번 재발급 루틴
- ✅ 사용량 알림 설정 — 이상 호출 급증 시 즉시 알림 받기
FAQ
Q. API 하나 만드는 데 개발 기간이 얼마나 걸리나요?
단순한 REST API(조회/생성/수정/삭제) 한 세트라면 1~2일이면 충분합니다. 하지만 인증, 권한 관리, 사용량 제한, 문서화, 모니터링까지 포함한 “운영 가능한 수준”이라면 2~4주는 잡아야 합니다.
Q. API와 웹훅(Webhook)의 차이는?
API는 내가 먼저 물어봅니다(pull). 웹훅은 상대가 사건 발생 시 먼저 알려줍니다(push). 결제 완료, 주문 상태 변경 같은 “이벤트” 처리에는 웹훅이 훨씬 효율적입니다.
Q. Open API / 공공 API는 무료인가요?
한국 공공데이터포털(data.go.kr)의 대부분 API는 완전 무료이고 상업적 용도까지 허용됩니다. 다만 일일 트래픽 제한(보통 1만~10만 건)이 있어 대규모 서비스는 운영기관에 별도 연장 신청이 필요합니다.
Q. API를 배우려면 어디서 시작해야 하나요?
개발자가 되실 거라면 Postman 같은 도구로 실제 공공 API를 눌러보는 것이 가장 빠릅니다. 비개발자라면 Swagger/OpenAPI 문서 읽는 법을 아는 것만으로도 협업 수준이 확 올라갑니다.
마무리 — API는 “연결”이다
API의 본질은 복잡한 기술이 아니라 서로 다른 시스템을 연결해 가치를 증폭시키는 언어입니다. 내가 직접 기상청 서버를 만들 필요 없이, 한국거래소 시세 데이터를 내 앱에 녹일 수 있는 이유죠. 다음 회의 때 “그 기능 API로 되나요?”라는 질문 하나만 던져도, 논의의 수준이 한 단계 올라갑니다.
실제로 공공 API가 어떻게 쓸만한 서비스로 변하는지 궁금하다면, 이 사이트의 아파트 실거래가 조회, 주식 분석 대시보드, 식품 영양정보 검색 같은 도구가 그 실제 예시입니다.