API (Application Programming Interface)

 

회사에서 일을 하다보면, API 서버 얘기가 여기저기서 들려온다. 도대체 API 가 무엇일까라는 생각을 예전부터 하였고 그에 따라 이것저것 검색하면서 찾아보고 과거에 나름의 생각을 구체화시켜왔다.

 

내가 생각하는  API 란 아래와 같다.

사용자에게 노출되는 프로그램과 사용자에게 노출되지 않는 프로그램 사이의 게이트웨이 역할을 수행한다. 따라서 사용자가 직접적으로 접근하지 못하는 정보들에 대해서 API 를 통해서 손쉽게 정보를 요청하고 접근하며 획득할 수 있다.

 

그리고 오늘 아래의 동영상을 보았다. (5분짜리 동영상이지만 간단하게 API 를 설명하고 있다.)

 

내용을 요약하면,

API 는 프로그램과 프로그램과의 소통을 의미한다. 사용자는 프로그램을 이용하기 위해서 어떤 동작을 수행하고 동작을 받은 프로그램은 요청을 이행하기 위해 다른 프로그램과 소통하는 것이다.

 

API 5분 슥삭 동영상

몇가지 예시를 생각해보자

 

첫번째. 날씨 API

가령 요즘 같은 미세먼지가 날에 날씨에 관한 데이터를 가져오려고 한다면 기상청에서 제공하는 날씨 API 를 이용하는 것이다. 기상청에 있는 전국팔도와 지역별 당일 날씨에 대한 데이터가 존재하고 사용자들은 이 날씨 데이터를 이용하려고 한다. 자신이 거주하는 지역에 대한 날씨 데이터를 가져오기 위해서 직접적으로 접근할 수 없고 날씨 API 를 통해서 접근하고 데이터를 가져오는 것이다.  

 

그럼 날씨 API 서버에서는 사용자의 요청을 받아서 기상청에서 관리하는 내부 서버 혹은 데이터베이스와의 연결을 맺고 데이터를 가져와서 다시 반환한다. 이에 사용자는 반환받은 날씨 데이터를 조회하거나 이용하거나 또다른 서비스를 할 수 있는 것이다.

 

 

두번째. 지도 API

요즘 다수의 기업들이 지도를 통해 본인들만의 서비스를 창출하고 있다. 카카오에서 지도 API 를 제공하고 있으며 해당 API 를 통해서 규격에 맞는 요청만 하면 지도에 대해 원하는 동작을 취할 수 있다. 우리는 내부적으로 이게 어떻게 돌아가고 어떤 방식으로 진행되는지 알 필요 없이 거기서 제공하는 docs 만 보고 우리들만의 서비스를 만들 수 있다.

 

+) 매시업서비스

여러 종류의 API 와 정보들이 결합해서 만들어진 새로운 서비스를 뜻한다. 만약 부동산 정보들과 지도 API 의 정보가 합쳐지면 직방, 다방 등의 부동산서비스를 하고 있듯이.

 

 

세번째. Web API

웹 앱과 웹 콘텐츠가 기기의 하드웨어에 접근하고 기기의 데이터 저장소에 접근할 수 있도록 해주는 기기 호관+ 접근 API 의 모음을 표현하는 단어이다. 이런 API 를 추가함으로써 오늘날의 웹은 기존에 하지 못했던 것들을 많이 수행하고 있다. 가령 웹 상에서 현재 사용자의 위치, 마이크 체크, 오디오 체크 등등이 있다.

 

 

결론

API 는 하나의 개념이다. 결코 기술이 아니다. 

 

 

참고

https://developer.mozilla.org/ko/docs/WebAPI

Posted by doubler
,