세계에는 굉장히 다양한 웹 서비스가 있습니다. 날씨 정보, 상품 데이터, 주가, 환율 등의 다양한 정보를 웹에서 찾을 수 있습니다. 이러한 웹 사이트 중에는 웹 API를 제공하는 곳이 있습니다.

 

웹 API는 어떤 사이트가 가지고 있는 기능을 외부에서도 쉽게 사용할 수 있게 공개한 것을 의미합니다. 원래 API(Application Programming Interface)는 어떤 프로그램 기능을 외부의 프로그램에서 호출해서 사용할 수 있게 만든 것을 의미합니다. 간단하게 서로 다른 프로그램이 기능을 공유할 수 있게 절차와 규약을 정의한 것 입니다.

 

웹 API도 비슷합니다. 이랍ㄴ적으로 HTTP 통신을 사용하는데, 클라이언트 프로그램은 API를 제공하는 서버에 HTTP 요청을 보냅니다. 그러면 서버가 이러한 요청을 기반으로 XML, JSON 형식 등으로 응답합니다.

 

대부분의 클라이언트 프로그래밍 언어는 XML과 JSON 형식의 데이터를 쉽게 처리할 수 있습니다. 따라서 굉장히 쉽게 원하는 형태로 사용할 수 있습니다.

 

하지만 왜? 사이트에서는 API를 제공을 해주는 것일까요? 

 

물론 개발자와 제공자의 공동 이익을 목적으로 선의를 가지고 API를 제공하는 서비스도 있습니다.

 

예를 들면 게임 League of Legend의 경우 과연 전적검색을 위한 자료는 어디서 가져오는 것일까요?

 

전적 검색을 제공하는 사이트에서는 Riot에서 제공하는 API를 제공 받아 게임 유저들에게 필요한 정보만을 추출하고 정리해서 보여주는 것입니다.

 

그 밖에도 그 정보를 바탕으로 승률, 픽률, 상대 상성등도 상황에 맞는 데이터를 추출하여 분석하고 그것을 유저들에게 보여주는 것입니다.

 

게임 말고도 옥션이나 지마켓, 11번가, 아마존(amazon)등의 사이트 역시 상품 검색 API를 제공하는데 이를 제공함으로써 개발자들이 관련된 어플리케이션을 만들면 판매 기회를 조금이라도 올릴 수 있게 됩니다.

 

또 다른 이유는 API를 제공하는 웹 사이트의 경우 좋은 정보를 가지고 있다는 의미가 될 것이고, API 서비스를 제공하지 않는 경우 크롤링의 표적이 되기 때문입니다.

 

만약 크롤링을 많은 사람들이 하게 된다면 서버에 부담이 될 것이기 때문에 미리 웹 API서비스를 제공해 주기도 합니다.

 

방금까지는 장점에 대해서만 말씀드렸습니다. 하지만 웹 API도 단점은 분명히 있는데요, 첫 번째는 웹 API 제공자의 사정으로 인해 웹 API가 없어지거나 사양 변경이 일어날 수 있다는 것입니다. 애플리케이션을 개발할 때는 이를 반드시 고려해야 합니다. 편리하게 사용하던 웹 API가 어느 날 갑자기 사라지면 애플리케이션이 동작하지 않기 때문입니다. 물론 이는 웹 사이트를 직접적으로 스크레이핑할 때도 발생할 수 있는 문제입니다.

 

 

 

'Basic' 카테고리의 다른 글

HTTP, 쿠키, 쎄션이란?  (0) 2021.01.29

+ Recent posts