❔ API 어디까지 쓰이는걸까?
API의 개념
Application Programming Interface, 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 제어할 수 있게 만든 인터페이스입니다. (출처: MDN)
위와 같은 설명만으로는 API가 무엇인지, 개발을 처음 접하는 사람들은 한 번에 이해하기 힘들 수 있습니다. API는 애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스입니다.
🗝️ 여기서 인터페이스란?
인터페이스(interface)는 상호 간의 소통을 위해 만들어진 접점입니다. 서로 다른 소프트웨어가 소통할 수 있도록 도와주는 다리 역할이라고 볼 수 있습니다. 이는 특정 기능이나 데이터를 다른 프로그램에서 사용할 수 있도록 만들어 놓은 "약속" 또는 "규칙"이라고 생각하면 됩니다.
예를 들어, 우리가 카페에서 주문을 할 때 고객은 메뉴판을 보고 바리스타에게 주문을 합니다. 이때 메뉴판에 적힌 메뉴가 고객과 바리스타 간의 인터페이스라고 볼 수 있습니다.
따라서, API는 복잡한 내부 과정을 숨기고 필요한 기능을 쉽게 사용할 수 있게 돕는 도구라고 생각하면 이해하기 쉬울 것입니다.
🚙 API를 자동차에 비유한다면
자동차와 같은 기계에 사람간의 소통에 사용되는 말로 명령을 전달하기는 쉽지 않습니다. 음성인식 기능이 있으면 모를까요? 엔진이 돌아가고, 연료가 소모되고, 브레이크 시스템이 작동하는 등 내부적으로 많은 일이 일어납니다. 운전자는 이러한 모든 복잡한 메커니즘을 알 필요가 없고 운전자가 자동차를 제어하려면 차키, 가속페달, 브레이크 페달을 다루는 방법만 알면 쉽게 자동차를 구동할 수 있습니다.
API도 마찬가지입니다. 개발자가 복잡한 소프트웨어 내부 구조를 몰라도, API라는 인터페이스를 사용하면 필요한 기능을 간단히 사용할 수 있습니다.
HTTP API란 무엇인가요?
우리가 웹개발을 하면서 흔히 접하는 API를 HTTP API라고 합니다. 여기서 HTTP란 인터넷 상에서 데이터를주고 받을 때 사용하는 규칙 즉 통신 방법( = 프로토콜 )을 말합니다. HTTP API는 HTTP 프로토콜을 이용해 데이터와 기능을 요청하고 응답받는 방식으로 작동합니다. 웹 브라우저가 웹사이트에 요청을 보내고 HTML 페이지를 받는 것과 비슷한 방식입니다.
HTTP API의 구성요소는 아래와 같지만 어렵다면 빠르게 훑고 넘어가도 좋습니다.
- 엔드포인트(URL): API에 요청을 보내는 주소입니다.
- HTTP 메서드: 요청의 종류를 나타냅니다.
- GET: 데이터를 요청.
- POST: 데이터를 서버에 전송.
- PUT: 데이터를 업데이트.
- DELETE: 데이터를 삭제.
- 응답(Response): 요청에 대한 결과로 반환되는 데이터입니다. 보통 JSON 형식으로 제공됩니다.
HTTP API는 크게 두 가지로 나뉩니다:
- Private API: 회사 자체 서비스에 사용하기 위해 개발된 API.
- Public API(Open API): 기상청의 날씨 정보 API처럼 누구나 사용할 수 있도록 공개된 API.
🔖 주변에서 볼 수 있는 HTTP API
1. 날씨 앱
날씨 앱은 날씨 정보를 제공하기 위해 HTTP API를 사용합니다. 예를 들어, 날씨 서비스 제공업체의 API에 다음과 같은 요청을 보낼 수 있습니다
GET https://api.weather.com/v1/location/seoul?units=metric&apikey=YOUR_API_KEY
- 요청: 서울의 현재 날씨 정보를 요청.
- 응답: 온도, 습도, 강수량 등의 데이터를 포함한 JSON 응답.
{
"location": "Seoul",
"temperature": "5",
"unit": "Celsius",
"condition": "Cloudy"
}
앱은 이 응답 데이터를 사용자 인터페이스에 표시합니다.
2. 배달 앱
배달 앱에서 "가장 가까운 음식점 찾기" 기능은 지도 API를 활용합니다. 예를 들어, 구글 지도 API에 다음과 같은 요청을 보낼 수 있습니다.
GET https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.5665,126.9780&radius=1000&type=restaurant&key=YOUR_API_KEY
- 요청: 현재 위치(37.5665, 126.9780)에서 반경 1km 이내의 음식점 정보를 요청.
- 응답: 음식점 목록과 위치 데이터가 포함된 JSON 응답.
{
"results": [
{
"name": "한식당",
"location": {"lat": 37.567, "lng": 126.9785},
"rating": 4.5
},
{
"name": "중식당",
"location": {"lat": 37.565, "lng": 126.9775},
"rating": 4.0
}
]
}
배달 앱은 이 데이터를 기반으로 음식점을 지도에 표시합니다.
3. SNS 플랫폼
SNS 앱에서 "게시물 작성" 기능은 HTTP API의 POST 요청을 사용합니다. 예를 들어, 사용자가 새로운 게시물을 작성하면 다음과 같은 요청이 전송됩니다:
POST https://api.snsplatform.com/posts
요청 본문(JSON)
{
"userId": 123,
"content": "오늘 날씨가 너무 좋다!",
"tags": ["#날씨", "#좋은날"]
}
- 요청: 새로운 게시물 데이터 전송.
- 응답: 게시물이 성공적으로 생성되었다는 확인 메시지.
{
"success": true,
"postId": 456
}
마무리
API는 복잡한 소프트웨어 간의 소통을 간단하게 만들어주는 중요한 도구입니다. 특히 HTTP API는 우리가 매일 사용하는 웹 서비스와 모바일 앱의 핵심 구성 요소입니다. 날씨 앱, 배달 앱, SNS 등 다양한 서비스에서 HTTP API가 어떻게 활용되는지 이해하면, 개발자가 API를 통해 기능을 구현하고 데이터를 주고받는 방식을 더욱 쉽게 배울 수 있습니다.
참조
'Web Frontend' 카테고리의 다른 글
HTML Script 태그 type 속성이 필요한 이유? (0) | 2025.01.09 |
---|---|
동기와 비동기 쉽게 이해하기 (0) | 2025.01.06 |
JavaScript this 이제 헷갈리지말자 (0) | 2025.01.05 |
HTML파일에서 JS파일을 효과적으로 가져오는 법 (1) | 2025.01.04 |
DOM과 BOM 차이 바로 알기 (0) | 2025.01.04 |