Application Programming Inerface(응용 프로그래밍 인터페이스)의 약자로, 사용자 요청에 따라 원하는 데이터를 Serving 해주는 서버를 얘기합니다. 영어가 너무 많이 나오니 어렵죠? 우선 API부터 차근차근 설명해드릴게요. 그럼 'Serving'이라는 말이 나왔으니 API를 '캣의 생선가게'로 예로 들어보겠습니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/53ccddaf-bbfe-4e87-a0c9-e1e76917d46d/--.png

위 그림에서 점원은 손님에게 주문을 받고, 그 주문을 손질하고 포장하는 직원에게 요청한 뒤, 포장된 생선을 전달해주는 역할을 하죠? API는 점원과 같은 역할을 수행합니다.

프로그램에서는 점원(API)이 손님(프로그램)에게 주문(명령)을 받고, 그 주문(명령)을 손질&포장직원(프로그램)과 상호작용하여 포장된 생선(명령 수행 후 나오는 데이터)을 전달합니다.

즉, API는 프로그램끼리 소통 할 수 있도록 도와주는 인터페이스를 뜻합니다.

그렇다면 API Server는 무엇을 의미할까요?

앞서 API가 프로그램끼리 소통할 수 있도록 하는 인터페이스라고 했죠? API server는 앱이나 웹 서비스를 개발 할 때 다른 서비스에 소스코드는 공개하지 않으면서 권한에 따라 기능을 제공하려고 할때 사용하는 기능입니다.

다시 캣의 생선가게에서 예를 들어보자면, 손님에게 주문을 받고 주문을 전달하는 '점원'을 복사하여 캣의 생선가게 2호점, 3호점, .... n호점에 똑같은 기능을 제공하도록 하는 것으로 비유할 수 있겠네요.

출처 : https://apis.map.kakao.com/

출처 : https://apis.map.kakao.com/

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>지도 생성하기</title>
    
</head>
<body>
<!-- 지도를 표시할 div 입니다 -->
<div id="map" style="width:100%;height:350px;"></div>

<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY를 사용하세요"></script>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div 
    mapOption = { 
        center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
        level: 3 // 지도의 확대 레벨
    };

// 지도를 표시할 div와  지도 옵션으로  지도를 생성합니다
var map = new kakao.maps.Map(mapContainer, mapOption); 
</script>
</body>
</html>

그럼 구체적인 예시는 카카오맵 api로 설명해 보겠습니다. 위 코드는 카카오 지도를 생성해주는 api 입니다.

이 코드(자바스크립트)를 원하는 곳에 넣게되면 지도를 표시할 수 있습니다. 이곳에서 설명하기엔 내용이 길어지기 때문에 아래 페이지에서 직접 실습 해보시는 걸 추천드릴게요!(https://apis.map.kakao.com/web/guide/) 카카오 계정만 있으시면 쉽게 해보실 수 있답니다.

📢 다만, API 키가 외부에 노출되면 예상치 못한 청구나 할당량 변경 등과 같은 상황이 발생하실 수 있으니 주의해주세요!

즉, 어떤 기능을 미리 만들어 두고 필요할 때 제공하는 것을 API 서버라고 합니다.